Author SHA1 Message Date
robbond ffae7df890 17143 pref lang abck in 2025-06-18 09:29:43 +01:00
Robert Bond 18ada0f9b1 Merged PR 1684: 17169 update portal with document location
Related work items: #17169
2025-06-18 08:11:53 +00:00
robbond 6900d02f8c csp update 2025-06-18 09:09:45 +01:00
robbond 4b92f40018 test language switcher 2025-06-18 09:09:06 +01:00
robbond 0df0ad5faa 17169 added consultation response location id 2025-06-18 09:01:41 +01:00
Robert Bond 7eda5ffd37 Merged PR 1681: 17143 switcher fix..
17143 switcher fix..

Related work items: #17143
2025-06-17 10:45:47 +00:00
robbond 65f6b65613 17143 switcher fix.. 2025-06-17 11:40:34 +01:00
Robert Bond 26130d12d4 Merged PR 1679: 17143 language switcher refactor push
17143 language switcher refactor push

Related work items: #17143
2025-06-17 05:46:01 +00:00
robbond e2df26c935 17143 language switcher refactor push 2025-06-17 06:44:53 +01:00
Robert Bond 3b65133ea0 Merged PR 1676: 17124 appeal pdf default ishare location added
17124 appeal pdf default ishare location added

Related work items: #17124
2025-06-13 14:34:01 +00:00
robbond d31002f0ed 17124 appeal pdf default ishare location added 2025-06-13 15:19:34 +01:00
Robert Bond ffd6943aa1 Merged PR 1674: Language switching issues
Related work items: #16185, #16630
2025-06-13 12:55:16 +00:00
robbond 17f516b797 16630 adjusted cookie 2025-06-13 13:43:07 +01:00
robbond 46876cdff6 16185 and 16630 language switching 2025-06-13 12:58:38 +01:00
robbond b4451dc7ee build warning fix 2025-06-13 12:53:51 +01:00
Robert Bond 4cea869256 Merged PR 1668: Contact details for owners and tenants
Related work items: #16580, #16583
2025-06-11 17:31:34 +00:00
robbond 89f1691c8f 16580 contact fields for owners and tenants 2025-06-11 18:26:14 +01:00
robbond 5fc3b3867c 16583 appeal pdf update 2025-06-11 18:24:03 +01:00
robbond a80fa87ea2 refactor 2025-06-11 13:05:18 +01:00
Robert Bond 19ae9b9f63 Merged PR 1665: 17105 no LIR for applicant and refactor
17105 no LIR for applicant and refactor

Related work items: #17105
2025-06-11 09:46:29 +00:00
robbond 40f7b92dc6 17105 no LIR for applicant and refactor 2025-06-11 10:44:18 +01:00
Robert Bond 9c42fc64f0 Merged PR 1664: 17025 proxy for delete cases
17025 proxy for delete cases

Related work items: #17025
2025-06-10 16:58:04 +00:00
robbond 1514eef343 17025 proxy for delete cases 2025-06-10 17:56:59 +01:00
Robert Bond 5561e9f9bf Merged PR 1663: 17025 viewall unsub fix
17025 viewall unsub fix

Related work items: #17025
2025-06-10 16:17:41 +00:00
robbond e920ea681e 17025 viewall unsub fix 2025-06-10 17:16:42 +01:00
Robert Bond e97f514c3f Merged PR 1662: 17025 unsub getwatchedcases proxy fix csp
17025 unsub getwatchedcases proxy fix csp

Related work items: #17025
2025-06-10 15:58:40 +00:00
robbond 941e030b57 17025 unsub getwatchedcases proxy fix csp 2025-06-10 16:57:01 +01:00
Robert Bond 28eb95018a Merged PR 1660: unsub issue and 14626
Related work items: #14626, #17025
2025-06-10 11:17:08 +00:00
robbond d0c56d1741 14626 reporting decision fields to summary 2025-06-10 12:08:01 +01:00
robbond 193da6af2f 17025 unsub issues 2025-06-10 11:25:32 +01:00
Robert Bond 5dee64dfec Merged PR 1659: 17025 unsub fixes
17025 unsub fixes

Related work items: #17025
2025-06-09 13:14:57 +00:00
robbond f11aa09412 17025 unsub fixes 2025-06-09 14:12:44 +01:00
Robert Bond 3d897e6b26 Merged PR 1657: 17025 email notiofications fixes
17025 email notiofications fixes

Related work items: #17025
2025-06-05 17:08:47 +00:00
robbond d6fd08a8ff 17025 email notiofications fixes 2025-06-05 18:07:52 +01:00
Robert Bond f40514b4ea Merged PR 1655: 16937 updated translation for contact us button
16937 updated translation for contact us button

Related work items: #16937
2025-06-04 09:04:09 +00:00
robbond 408dae0ca3 16937 updated translation for contact us button 2025-06-04 10:03:30 +01:00
Robert Bond c14b0d0a40 Merged PR 1654: welsh language contact us form and mailing list
Related work items: #16937, #16945
2025-06-03 18:05:40 +00:00
robbond cdf48a81a7 16937 welsh contact us form 2025-06-03 19:03:53 +01:00
robbond 954e58ee3f 16945 welsh template for mailing list 2025-06-03 18:38:56 +01:00
Robert Bond 6e764e9364 Merged PR 1653: right click link issues
Related work items: #16185, #16477, #16478, #16630
2025-06-03 16:18:03 +00:00
robbond dedd23dfb1 right click on language switcher 2025-06-03 17:15:11 +01:00
robbond 1220131cfd 16478 right click view all page titles 2025-06-03 16:11:51 +01:00
Robert Bond 3555688e39 Merged PR 1652: 16986 fixed unsubscribe all
16986 fixed unsubscribe all

Related work items: #16986
2025-06-03 04:46:17 +00:00
robbond c38da6c8d8 16986 fixed unsubscribe all 2025-06-03 05:45:23 +01:00
Robert Bond 297a5dfc77 Merged PR 1651: 16986 unsubscribe link
16986 unsubscribe link

Related work items: #16986
2025-06-02 16:43:22 +00:00
robbond 6c7eca581b 16986 unsubscribe link 2025-06-02 17:41:39 +01:00
Robert Bond 8b244ffb94 Merged PR 1648: 16578 link url updated
16578 link url updated

Related work items: #16578
2025-05-30 13:23:49 +00:00
robbond 089c225e4d 16578 link url updated 2025-05-30 14:23:13 +01:00
Robert Bond 0e33718c34 Merged PR 1647: Email notifications
Related work items: #16577, #16578, #16951
2025-05-30 09:20:25 +00:00
robbond 511713eede 16578 mailout api from mailing list 2025-05-30 10:18:50 +01:00
robbond ff85f525a5 update subscribe function 2025-05-30 10:18:14 +01:00
robbond 2cfb06db2a 16951 mail notification subscribe 2025-05-30 10:16:21 +01:00
Robert Bond eb020b014d Merged PR 1646: sprint 8 tasks and app error fix
Related work items: #14627, #16943, #16944
2025-05-28 13:16:02 +00:00
robbond 6354cabde0 14627 ui for email notifications 2025-05-28 14:14:46 +01:00
robbond f725c811b3 16944 logged contact us 2025-05-28 14:12:56 +01:00
robbond 8e6b88984f 16493 routing for PET team send email 2025-05-28 14:12:31 +01:00
robbond e04f87323f App error on selecting case 2025-05-28 13:02:35 +01:00
Robert Bond ea1d530155 Merged PR 1645: 14949 activity from contact us
Related work items: #16290, #16291, #16938
2025-05-27 17:16:21 +00:00
robbond b72df06349 16920 contatus ui 2025-05-27 18:08:41 +01:00
robbond 87812a6bf2 16291 crm activity 2025-05-27 18:05:54 +01:00
Robert Bond 7aa7e2819a Merged PR 1643: right click and language pref bugs
Related work items: #16185, #16478, #16630
2025-05-26 06:08:54 +00:00
robbond 26070426e8 right click bugs 2025-05-26 07:07:12 +01:00
robbond d85b59a25f updated to check language selector cookie and pref language 2025-05-26 06:54:50 +01:00
Robert Bond 0cf344ea85 Merged PR 1640: right click fixes
Related work items: #16478
2025-05-22 15:30:23 +00:00
robbond deb7b12313 right click to open dns applications 2025-05-22 16:28:40 +01:00
robbond 29abd0efd0 rioght mouse click on view all 2025-05-22 14:15:42 +01:00
robbond 3877323b9b removed s from SIPs - is singular not plural 2025-05-20 13:15:06 +01:00
Robert Bond b4bec11fa0 Merged PR 1631: updated the url in next config
updated the url in next config

Related work items: #16477
2025-05-16 13:44:59 +00:00
robbond afa81d8bd6 updated the url in next config 2025-05-16 14:19:17 +01:00
Robert Bond ae25ad4673 Merged PR 1630: added reps/cons details on viewall
added reps/cons details on viewall

Related work items: #16500
2025-05-15 13:05:14 +00:00
robbond ae007d18ad added reps/cons details on viewall 2025-05-15 14:04:27 +01:00
Robert Bond 2fb7895234 Merged PR 1627: added nrw domain as env variable
added nrw domain as env variable

Related work items: #16003
2025-05-15 09:16:20 +00:00
robbond c738d2bde9 added nrw domain as env variable 2025-05-15 10:15:41 +01:00
Robert Bond bfac0d1ff9 Merged PR 1617: package updates
Related work items: #16080
2025-05-12 18:42:10 +00:00
robbond f0059eb949 added ubservr 2025-05-12 19:41:02 +01:00
robbond 50c2feaeba and again 2025-05-12 19:01:28 +01:00
Robert Bond 72ef0f7f40 Merged PR 1616: updated start
updated start

Related work items: #16080
2025-05-12 17:17:29 +00:00
robbond dd0ed06732 updated start 2025-05-12 18:17:00 +01:00
Robert Bond 48f24a6330 Merged PR 1615: update package lock
update package lock

Related work items: #16080
2025-05-12 16:34:12 +00:00
robbond 4fc0917b78 update package lock 2025-05-12 17:33:23 +01:00
Robert Bond 38f7853723 Merged PR 1613: added in package lock to repo
added in package lock to repo

Related work items: #16080
2025-05-12 16:14:22 +00:00
robbond 9dc135ef66 added in package lock to repo 2025-05-12 17:13:14 +01:00
Robert Bond e961a1dff4 Merged PR 1612: added prisma
added prisma

Related work items: #16080
2025-05-12 12:33:18 +00:00
robbond 5ebffe74af added prisma 2025-05-12 13:30:12 +01:00
Robert Bond f498d1a09e Merged PR 1605: set documentlocationid
set documentlocationid

Related work items: #16004
2025-05-08 11:54:32 +00:00
robbond c0b23fff6c set documentlocationid 2025-05-08 12:53:25 +01:00
Robert Bond 7f5fd90a17 Merged PR 1591: Consultation reps to have text area for sips
Consultation reps to have text area for sips

Related work items: #16010
2025-04-30 05:43:26 +00:00
robbond 8f9fd50f36 Consultation reps to have text area for sips 2025-04-30 06:42:32 +01:00
Robert Bond 2e454290c7 Merged PR 1588: 16345 no submit empty rep
Related work items: #16345
2025-04-28 17:02:33 +00:00
robbond eae42c3622 16435 logic to disable continue button so cant submit empty rep 2025-04-28 17:14:59 +01:00
robbond 4bd1cf9744 removed signout link in header on reps page 2025-04-28 17:14:26 +01:00
Robert Bond 0346b57d19 Merged PR 1586: SIPS Sprint 6 280425
16003 Sips Documents, 16010 Role baes reps for sips

Related work items: #16003, #16010
2025-04-28 12:54:29 +00:00
robbond a33018d225 16003 Sips Documents, 16010 Role baes reps for sips 2025-04-28 13:53:25 +01:00
Robert Bond 0f7a9c36df Merged PR 1585: Env Permitting fix and 14624
Related work items: #14624
2025-04-27 13:16:03 +00:00
robbond 372e1bf7ce Fix for eiarequired named wrong on env permittins 2025-04-27 14:14:40 +01:00
robbond ad5c726b54 14624 rep button logic for sips 2025-04-27 14:14:18 +01:00
Robert Bond b6798fbfca Merged PR 1570: DEV merge
Related work items: #12956
2025-04-21 09:10:21 +00:00
robbond 43a194bf98 Merge branch 'development' into SIPS-Development 2025-04-21 10:08:58 +01:00
Robert Bond e7e7aac652 Merged PR 1567: typo on questionnaire after jsonpath update
typo on questionnaire after jsonpath update

Related work items: #12956
2025-04-16 17:09:18 +00:00
robbond 6269ab4c15 typo on questionnaire after jsonpath update 2025-04-16 16:40:47 +01:00
Robert Bond 0433304faf Merged PR 1566: merge of dev csp work
Related work items: #15520
2025-04-16 14:48:21 +00:00
robbond 0d91e75811 csp frame src set for map wales 2025-04-16 15:47:20 +01:00
robbond f586842b39 key in notice banner 2025-04-16 15:47:05 +01:00
robbond 81fe090ce0 Merge branch 'Development' into SIPS-Sprint-5-dev-merge-csp 2025-04-16 15:46:10 +01:00
Robert Bond dabc5a0697 Merged PR 1565: eval fixes
Related work items: #12956
2025-04-16 13:57:17 +00:00
robbond cf0c05ff6a removed comments 2025-04-16 14:55:06 +01:00
robbond 35f19bd975 removed comments 2025-04-16 14:48:15 +01:00
robbond 75467ca55a remove eval funciton in form for CSP fix 2025-04-16 14:44:04 +01:00
Robert Bond 4841fc4984 Merged PR 1564: uodated queries to sort deep recursion
uodated queries to sort deep recursion

Related work items: #12956
2025-04-16 07:48:28 +00:00
robbond d882e65071 uodated queries to sort deep recursion 2025-04-16 08:44:45 +01:00
robbond 2dc8a721ab Merge branch 'Development' into SIPS-Development 2025-04-16 08:27:06 +01:00
Robert Bond 420501dbf1 Merged PR 1563: changes sandbox: {} to eval: true, caused errors in evaluated queries
changes sandbox: {} to eval: true, caused errors in evaluated queries

Related work items: #12956
2025-04-15 16:30:28 +00:00
robbond 87f0dcd811 changes sandbox: {} to eval: true, caused errors in evaluated queries 2025-04-15 17:25:14 +01:00
Robert Bond 0c8f166410 Merged PR 1560: CSP and language preference
Related work items: #16079, #16080
2025-04-15 12:28:39 +00:00
robbond c7c74b6250 language check update 2025-04-15 13:26:53 +01:00
robbond a26313c798 Merge branch 'Development' into SIPS-Development 2025-04-15 13:22:35 +01:00
Robert Bond 854530e605 Merged PR 1559: CSP fixes
Related work items: #12956
2025-04-15 12:03:50 +00:00
robbond 352f146952 tweak to add security headers 2025-04-15 12:59:44 +01:00
robbond 05f791e6a8 update jsonpath for csp fix 2025-04-15 12:59:27 +01:00
Robert Bond e24fe83d0a Merged PR 1558: Language selection
Related work items: #12956
2025-04-15 08:48:19 +00:00
robbond 7c5582f6c2 Merge branch 'Development' into SIPS-Development 2025-04-15 09:29:23 +01:00
Robert Bond 1caab59c05 Merged PR 1557: csp fix removed matcher
csp fix removed matcher

Related work items: #12956
2025-04-15 08:26:42 +00:00
robbond 8f1b2b63b4 csp fix removed matcher 2025-04-14 18:00:30 +01:00
Robert Bond 99e2db34ae Merged PR 1556: Put CSP in to headers and not Meta tags
Put CSP in to headers and not Meta tags

Related work items: #12956
2025-04-14 14:03:13 +00:00
robbond 8f9652003e Put CSP in to headers and not Meta tags 2025-04-14 15:00:14 +01:00
Robert Bond d6206ee2be Merged PR 1553: 15643 Document list showing document publish date
15643 Document list showing document publish date

Related work items: #15643
2025-04-10 12:18:27 +00:00
robbond cb8b7938f5 15643 Document list showing document publish date 2025-04-10 13:17:11 +01:00
Robert Bond 6543161bad Merged PR 1550: signin in fix
signin in fix

Related work items: #12956
2025-04-09 13:00:13 +00:00
robbond 59eaf80af3 signin in fix 2025-04-09 13:58:00 +01:00
Robert Bond 34e964c56c Merged PR 1549: updated git ignore
updated git ignore

Related work items: #12956
2025-04-09 12:41:35 +00:00
robbond 1edf633aae updated git ignore 2025-04-09 13:38:18 +01:00
Robert Bond 13e598c60c Merged PR 1548: Merge Welsh login url fix to SIPS
Related work items: #12956
2025-04-09 09:35:24 +00:00
robbond 2af5c712ab Merge branch 'Development' into SIPS-Development 2025-04-09 10:33:26 +01:00
Robert Bond 4ce6e82de5 Merged PR 1547: updated authentication for welsh url
updated authentication for welsh url

Related work items: #12956
2025-04-09 09:29:14 +00:00
robbond c874bb4f59 updated authentication for welsh url 2025-04-09 10:24:44 +01:00
Robert Bond ed077214bb Merged PR 1535: SIPS Sprint 4 020425
Related work items: #14625, #15419, #15518
2025-04-02 17:09:14 +00:00
robbond ac1c127548 14625 submission ui portal 2025-04-02 18:08:07 +01:00
robbond 9a44e36ceb 15518 Env Statement Location on Summary 2025-04-02 12:03:22 +01:00
robbond 8a24852961 15419 update eia required field 2025-04-02 09:13:09 +01:00
Robert Bond c14c86cdbd Merged PR 1531: 15439 removed double click on dropdowns
15439 removed double click on dropdowns

Related work items: #15439
2025-04-01 15:34:15 +00:00
robbond 46bd30cd76 15439 removed double click on dropdowns 2025-04-01 16:33:27 +01:00
Robert Bond 7d86ac0ca4 Merged PR 1529: 15439 sips advanced search
15439 sips advanced search

Related work items: #15439
2025-03-31 16:20:24 +00:00
robbond 479f30b0a4 15439 sips advanced search 2025-03-31 17:19:50 +01:00
Robert Bond e6498c813d Merged PR 1525: Update SIPS Dev branch
Related work items: #12956
2025-03-28 10:51:32 +00:00
robbond a5df22a486 Merge branch 'SIPS-Development' of https://welshgovernment.visualstudio.com/PEDW%20-%20Planning%20Casework/_git/FrontEnd into SIPS-Development 2025-03-28 10:48:52 +00:00
Robert Bond b912f9ecb8 Merged PR 1523: App error fix
Related work items: #15439
2025-03-28 09:00:01 +00:00
robbond 1a740bd78b 15439 fix for app error in advanced search 2025-03-28 06:38:06 +00:00
robbond cc0e830cf8 Merge branch 'Development' into SIPS-Sprint-3-270325 2025-03-27 13:25:10 +00:00
robbond 927cd70d75 Merge branch 'Development' into SIPS-Development 2025-03-27 13:18:46 +00:00
Robert Bond 0c11bd846b Merged PR 1519: checking mime types by magic sig, extension and headers
checking mime types by magic sig, extension and headers

Related work items: #12956
2025-03-27 13:17:22 +00:00
robbond 2c97986b19 checking mime types by magic sig, extension and headers 2025-03-27 12:48:34 +00:00
robbond 8cca0db6e9 mime type fix for ithc 2025-03-27 11:03:24 +00:00
robbond a09c458aed dmw preliminary work 2025-03-27 11:02:32 +00:00
robbond 93f385e0b0 Merge branch 'Development' into SIPS-Development 2025-03-25 13:14:10 +00:00
Robert Bond a3e7f5736e Merged PR 1512: taking end date of dns fix
taking end date of dns fix

Related work items: #12956
2025-03-25 12:52:09 +00:00
robbond 0ad58a59be taking end date of dns fix 2025-03-25 12:49:26 +00:00
Robert Bond 5c829f1d26 Merged PR 1511: EIA requried fields updating
EIA requried fields updating

Related work items: #15404
2025-03-25 10:48:51 +00:00
robbond 1c65d49110 EIA requried fields updating 2025-03-25 10:47:22 +00:00
Robert Bond f72eaf484a Merged PR 1510: amended display logic for startemtns to fix previous
amended display logic for startemtns to fix previous

Related work items: #12956
2025-03-24 16:08:54 +00:00
robbond 8642608c64 amended display logic for startemtns to fix previous 2025-03-24 16:07:08 +00:00
Robert Bond a7fef58436 Merged PR 1509: added statements and cater for end rep period date
added statements and cater for end rep period date

Related work items: #12956
2025-03-24 12:54:47 +00:00
robbond 74774ddae0 added statements and cater for end rep period date 2025-03-24 12:49:33 +00:00
Robert Bond a6cdec43e1 Merged PR 1507: 14769 search by project type
14769 search by project type

Related work items: #14769
2025-03-21 17:40:49 +00:00
robbond b50f94074b 14769 search by project type 2025-03-21 17:40:11 +00:00
Robert Bond 4d4d1fe995 Merged PR 1504: SIPS Sprint 3 200325
Related work items: #14768, #15085
2025-03-20 11:26:27 +00:00
robbond 11c9df9483 update api for coords for DMW 2025-03-20 11:24:59 +00:00
robbond 19a377f49f 15085 EIA required and remove case officer 2025-03-20 11:24:09 +00:00
robbond cd750a9228 14768 Project type on Sips summary 2025-03-20 11:22:41 +00:00
Robert Bond 98251d5da9 Merged PR 1501: 14759 display logic and welsh translations
14759 display logic and welsh translations

Related work items: #14759
2025-03-18 10:49:19 +00:00
robbond d01d83ecc4 14759 display logic and welsh translations 2025-03-18 10:47:50 +00:00
Robert Bond 626b2720ab Merged PR 1499: SIPS Sprint 3 14760 tabs ui
Related work items: #14758, #15079
2025-03-18 06:07:21 +00:00
robbond 837d7c68f7 14758 tabs ui 2025-03-18 06:06:05 +00:00
robbond f7af4d4bcc 15079 show eia required label 2025-03-18 06:05:26 +00:00
Robert Bond 528c3284c6 Merged PR 1493: updated coords and address fix
updated coords and address fix

Related work items: #14865
2025-03-14 15:20:42 +00:00
robbond 68d03ed93d updated coords and address fix 2025-03-14 15:20:06 +00:00
Robert Bond 9eace1b626 Merged PR 1479: 14430 + 14355 remove fields
14430 + 14355 remove fields

Related work items: #14355, #14430
2025-03-11 12:12:50 +00:00
robbond 34ce7f73a8 14430 + 14355 remove fields 2025-03-11 12:11:54 +00:00
Robert Bond 07f3769d84 Merged PR 1472: SIPS Sprint 2 070325
Related work items: #14656, #14697
2025-03-10 09:25:27 +00:00
robbond f6fdc79ae3 14656 filtering adjust 2025-03-10 09:24:23 +00:00
robbond ebed61f75f 14697 Start and due date for notifications 2025-03-07 11:17:18 +00:00
Robert Bond d9a18f008d Merged PR 1466: pre submssion details on summary
pre submssion details on summary

Related work items: #14283
2025-03-05 15:33:55 +00:00
robbond c5f893f91c pre submssion details on summary 2025-03-05 15:32:54 +00:00
Robert Bond 373a6c0d27 Merged PR 1465: SIPs Sprint 2
Related work items: #14324, #14325, #14326, #14327, #14328, #14329, #14330, #14345
2025-03-05 11:03:43 +00:00
robbond 884c62ee46 banner notification 2025-03-05 11:00:19 +00:00
robbond 73ebd12cd2 Document filtering 2025-03-05 10:39:22 +00:00
Robert Bond 69ed539187 Merged PR 1452: remove www text on reps
remove www text on reps

Related work items: #12956
2025-02-27 13:12:00 +00:00
robbond 4ae78dec72 remove www text on reps 2025-02-27 13:05:16 +00:00
Robert Bond 05b034c328 Merged PR 1449: updated labels and added welsh versions
updated labels and added welsh versions

Related work items: #14360
2025-02-26 09:10:06 +00:00
robbond a458a12c6a updated labels and added welsh versions 2025-02-26 09:09:30 +00:00
Robert Bond bbc1e3f0a1 Merged PR 1448: 13925 SIPs translations
13925 SIPs translations

Related work items: #13925
2025-02-25 16:52:32 +00:00
robbond 83fed387f3 13925 SIPs translations 2025-02-25 16:51:43 +00:00
Robert Bond 1a276be54d Merged PR 1442: 14276 Cancelled spelling
Related work items: #12956, #14276
2025-02-24 13:30:24 +00:00
robbond 422b3ce98c 14276 spelling of canceled 2025-02-24 10:13:14 +00:00
robbond 2c7823f911 Merge branch 'Development' into SIPS-Development 2025-02-24 09:48:05 +00:00
Robert Bond fc63a2f279 Merged PR 1440: lorem ipsum in register complete
lorem ipsum in register complete

Related work items: #12956
2025-02-24 09:43:54 +00:00
robbond f3902e4f9f lorem ipsum in register complete 2025-02-24 09:23:59 +00:00
Robert Bond bef329453a Merged PR 1436: SIPs Sprint 1 200225
Related work items: #14086, #14244
2025-02-21 09:21:07 +00:00
robbond 8d3d356815 14244 GEL updates and rework 2025-02-21 09:19:31 +00:00
robbond baa1f7c4f3 14086 Amend copy for SIPs 2025-02-21 09:18:14 +00:00
Robert Bond 804f3a6f66 Merged PR 1431: Sprint 1 - 14100 & 14115
Related work items: #14100, #14115
2025-02-20 07:36:53 +00:00
robbond 49baec5814 14115 SIPs events under summary pages on myportal 2025-02-20 07:35:32 +00:00
robbond ae5c0b4e39 14115 SIPs events on summary page 2025-02-19 15:00:25 +00:00
robbond e1444887cb 14100 updated copy 2025-02-19 14:59:09 +00:00
Robert Bond 9d6f9c6c49 Merged PR 1426: Sprint 1 tasks
Related work items: #13923, #13924, #13925, #13927, #13928, #13929, #13930, #13931, #13933
2025-02-18 14:30:46 +00:00
robbond b699f1d359 13933 2025-02-18 14:25:39 +00:00
robbond dec96c0546 13933 ui for infrasturcure card 2025-02-18 14:25:13 +00:00
robbond 7fad19452b 13927 sips summary page 2025-02-18 14:21:20 +00:00
robbond 1a102ab6cd 13924 13925 13923 update collections for sips 2025-02-18 14:20:27 +00:00
robbond 202e1efd51 13929 Update advanced search 2025-02-18 14:18:40 +00:00
robbond 4d6ed2d38d 13930 Update address search for SIPS 2025-02-18 14:17:26 +00:00
robbond f9df42f361 13931 upodate DNS list inc sips 2025-02-18 14:16:09 +00:00
robbond 53515afc49 13928 update select query 2025-02-18 13:23:11 +00:00
Robert Bond ae9ee1702d Merged PR 1420: PII-UAT 070225
Related work items: #12956
2025-02-11 12:36:30 +00:00
robbond 4bc4edf537 welsh lang for yes no 2025-02-11 10:18:26 +00:00
robbond e23cdef338 partial updates for welsh in myportal 2025-02-11 08:54:26 +00:00
robbond 130102ad30 welsh text amends on reps 2025-02-10 14:13:39 +00:00
robbond 608348910f rep defect 46 2025-02-07 12:45:30 +00:00
robbond ff83456d03 rep defect 50 2025-02-07 12:44:49 +00:00
robbond f765411992 rep defect 45 2025-02-07 12:44:03 +00:00
Robert Bond 4009fac494 Merged PR 1409: PII UAT defects 050225
Related work items: #12956
2025-02-05 11:25:32 +00:00
robbond 1fe6f48c80 questionnaire defect 67 2025-02-05 11:23:07 +00:00
robbond 60f04787b6 portal ui enhancements 2025-02-05 11:16:48 +00:00
robbond 37b2e1c734 fix fro incorrect month in repfile name 2025-02-05 11:14:36 +00:00
robbond 5c9f4dd854 refactored for correct doc location 2025-02-05 11:14:13 +00:00
Robert Bond d048ca56bf Merged PR 1406: PII-UAT defects anf ITHC fix for upload via api
Related work items: #12956
2025-02-03 17:06:16 +00:00
robbond bedaa79281 rep defect 42, questionnaire defect 67, enf defect 16 2025-02-03 17:04:05 +00:00
robbond f2d02dc7d3 fix show hide for enf exempt fee 2025-02-03 13:29:14 +00:00
robbond c20414b32b uat defect 72 2025-02-03 13:19:59 +00:00
robbond 31366f40ca reps defect 42 2025-02-03 13:16:02 +00:00
robbond 5cadd05364 welsh language updated for errors on uploads 2025-02-03 11:54:27 +00:00
robbond c82732c46d ITHC - restrict filetype uploads via api 2025-02-03 11:53:20 +00:00
Robert Bond 2cde131324 Merged PR 1402: updated s39 details to fix query
updated s39 details to fix query

Related work items: #12956
2025-01-31 10:58:16 +00:00
robbond 1f6f5d31ca updated s39 details to fix query 2025-01-31 10:35:33 +00:00
Robert Bond 9a002d0bcc Merged PR 1400: PII-UAT defects 290125
Related work items: #12956
2025-01-30 14:13:52 +00:00
robbond 6dded01501 reps defect 43 - also handles not submitting reps when date passed 2025-01-30 14:12:15 +00:00
robbond 6fb4f5722a rep defect 42, questionnaire defect 67, enf defect 16 2025-01-30 14:11:17 +00:00
robbond 390758bfd3 noticed date raised incorrect after change in file naming convention.. didnt sort correctly 2025-01-30 14:09:31 +00:00
robbond f91cc1b953 added rep type on view all for clarity 2025-01-30 14:08:48 +00:00
robbond 933e30f626 enf defect 17 2025-01-30 14:07:27 +00:00
robbond 69e61b35d7 uat defect 135,136 2025-01-30 14:06:17 +00:00
robbond 2882330c5d uat defect 136 2025-01-29 13:29:16 +00:00
robbond 8f94b2feb2 uat defect - pdf failing to be generated 2025-01-29 10:32:26 +00:00
Robert Bond 8341404e9c Merged PR 1394: PII-UAT 270125 2025-01-28 13:53:54 +00:00
robbond 3ad21d2c82 questionnaire defect 67, enf 16,reps 42 2025-01-28 12:57:52 +00:00
robbond 8c6d3d84d2 enf defect 13 2025-01-27 10:31:52 +00:00
Robert Bond 9c0dd3069d Merged PR 1384: PII UAT defect 220125
Related work items: #12956
2025-01-23 12:19:39 +00:00
robbond dd72fb7a40 enf defect 24 2025-01-23 07:44:17 +00:00
robbond 775cb4450a enf defect 22 2025-01-22 12:35:35 +00:00
robbond cf7654127b uat defect 61 lang pref for agent 2025-01-22 10:00:22 +00:00
Robert Bond 1537012ece Merged PR 1375: UAT defect 200125
Related work items: #12956
2025-01-21 16:18:09 +00:00
robbond 7d1d34fc4f enf defect 22,questionnaire defect 68 2025-01-21 16:16:02 +00:00
robbond 32a3542f79 rep defect 42,questioinnaire defect 67, enf defect 16 2025-01-21 16:04:52 +00:00
robbond 89c7525ce9 reps defect 19 2025-01-21 15:58:04 +00:00
robbond 5974886411 enf 17 2025-01-20 17:50:25 +00:00
robbond 5708db003a enf defect 19 2025-01-20 16:36:37 +00:00
robbond 1333533611 enf defect 13 2025-01-20 16:35:53 +00:00
robbond 5dbde51f7f uat defect 132 2025-01-20 16:33:22 +00:00
robbond 5b34cdeb1c questionnaire defect 66 & enf defect 18 2025-01-20 09:57:40 +00:00
Robert Bond ea334bf5ef Merged PR 1369: enf defect 17 - removed leftover enf type from questionnaire selection
enf defect 17 - removed leftover enf type from questionnaire selection

Related work items: #12956
2025-01-17 16:55:14 +00:00
robbond 28aec45270 enf defect 17 - removed leftover enf type from questionnaire selection 2025-01-17 16:38:02 +00:00
Robert Bond 51dddf8174 Merged PR 1367: UAT defect 170125
Related work items: #12956
2025-01-17 14:35:18 +00:00
robbond 4badb52921 questionnaire defect 61 and welsh versions of questionnaires 2025-01-17 13:22:45 +00:00
robbond e6a1dbaa89 rep defect 39 2025-01-17 10:34:07 +00:00
robbond 4fb4eaee5f enf defect 11,12,13,14,16 2025-01-17 10:19:39 +00:00
Robert Bond d7850f92a0 Merged PR 1366: Upload and pdf formatting and Enf
Related work items: #12956
2025-01-16 14:29:38 +00:00
robbond 34419733de enf defect 3,5,8,2,6 2025-01-16 14:14:53 +00:00
robbond e109c91b60 enf defect 8, 9,5, 2025-01-16 14:12:06 +00:00
robbond 054e54cda3 enf defect 1,4,7 2025-01-16 14:10:38 +00:00
robbond e539b7054b fix to delay moving on til large pdf completed 2025-01-16 14:06:56 +00:00
robbond 9ab83efedc rep defect 41 update final comments in line 2025-01-16 14:05:52 +00:00
robbond 9980b83d34 rep defect 41 2025-01-16 14:05:31 +00:00
robbond cb39990cb1 questionnaire defect 44,45,46,53, 2025-01-16 14:05:13 +00:00
robbond 06c4b6f5bc reps defect 39 2025-01-16 09:41:34 +00:00
robbond 49e9be181b questionnaire defect 61 2025-01-16 07:53:03 +00:00
robbond c9ef4ffabb questionnaire defect 58 added dates for DNS 2025-01-16 07:51:52 +00:00
robbond e00d614067 questionnaire defect 58 2025-01-16 07:51:13 +00:00
Robert Bond bcb6afa6cc Merged PR 1365: enforcement pdf fixes
enforcement pdf fixes

Related work items: #13012
2025-01-15 16:53:31 +00:00
robbond 3fdb9e8c3a enforcement pdf fixes 2025-01-15 16:36:35 +00:00
Robert Bond 9ba2c523ba Merged PR 1364: UAT defects 140125
Related work items: #13012
2025-01-15 11:34:17 +00:00
robbond 33ab93643d questionnaire defect 60.55,59,57 2025-01-15 11:30:58 +00:00
robbond 49418becf2 uat defect 131 link in new tab 2025-01-15 09:22:23 +00:00
robbond 9c2519f2ce uat defect 129 2025-01-15 09:19:57 +00:00
robbond d0075d6112 questionnaire defect 48 continued 2025-01-14 18:31:36 +00:00
robbond 72e1bfb3ad questionnaire defect 48 2025-01-14 18:18:17 +00:00
robbond ab66b969b4 questionnaire defect 52 2025-01-14 17:24:04 +00:00
robbond 175500a2ce questionnaire defect 50 2025-01-14 17:16:58 +00:00
robbond 63e4e25aab questionnaire defect 47 2025-01-14 17:10:59 +00:00
robbond 232fd4685d uat defect 131 - link in new tab 2025-01-14 16:58:47 +00:00
robbond 9ffbe49777 uat defect 115 2025-01-14 10:57:09 +00:00
Robert Bond 681c89d50a Merged PR 1362: UAT defects from 100125
Related work items: #13013
2025-01-14 08:47:50 +00:00
robbond 665c4bbba5 uat defect 124, rep defect 11, questionnaire defect 26 2025-01-13 18:21:40 +00:00
robbond 59ae2db6c5 questionnaire defect 47 2025-01-13 18:18:47 +00:00
robbond c0f59a9645 client side warnings removed 2025-01-13 17:04:47 +00:00
robbond 463d03f798 questionnaire defect 54 - plus tidying up 2025-01-13 17:04:19 +00:00
robbond dc8cffad33 questionnaire defect 40 - added heading 2025-01-13 17:03:53 +00:00
robbond 23255d496c questionnaire defect 42 2025-01-13 17:02:02 +00:00
robbond e7e24fd299 questionnaire defect 40 2025-01-13 16:46:27 +00:00
robbond df7599fca0 uat defect 38 2025-01-13 16:22:22 +00:00
robbond 8ed6921804 uat defect 37 2025-01-13 16:21:33 +00:00
robbond 8509450ac0 questionnaire defect 41 2025-01-13 14:31:30 +00:00
robbond 85f88eb074 pdf fixes 2025-01-13 14:27:28 +00:00
robbond 42940ebaa6 questionnaire defect 49 2025-01-13 14:26:11 +00:00
robbond 31026ffda6 questionniare defect 39 2025-01-13 14:24:51 +00:00
robbond 61e74a5da8 uat defect 124 amend 2025-01-11 08:22:33 +00:00
robbond 8b175b114d uat defect 124 2025-01-11 08:14:14 +00:00
robbond c627e100e1 uat defect 130, reps 14 2025-01-11 08:13:18 +00:00
Robert Bond adaae7b9b0 Merged PR 1361: uat fixes 080125
Related work items: #12878
2025-01-09 17:05:36 +00:00
robbond 93634ca173 uat defect 117 2025-01-09 16:10:09 +00:00
robbond e80e4433a7 rep defect 31 2025-01-09 16:03:52 +00:00
robbond c0dfed60f9 rep defect 28,29,23,27 2025-01-09 16:03:37 +00:00
robbond df5ee1b2be rep defect 31, 24 2025-01-09 14:14:21 +00:00
robbond e79579a2e2 rep defecty 35 2025-01-09 12:20:06 +00:00
robbond 0b541f8355 rep defect 36 2025-01-09 12:11:36 +00:00
robbond b18e98a2d4 uat defect 93 2025-01-09 11:10:44 +00:00
robbond 48b7ab6298 rep defect 21 2025-01-08 13:04:22 +00:00
Robert Bond f82ac6cd4c Merged PR 1356: UAT defects 070125
Related work items: #12878
2025-01-07 13:56:08 +00:00
robbond 47f99bf65b rep defect 20, 21 2025-01-07 13:40:53 +00:00
robbond c3fcfe60da uat defect 119 2025-01-07 12:02:43 +00:00
robbond b0cafb58be two digit day month on reps doc 2025-01-07 11:23:53 +00:00
robbond b1edb208c6 uat defect 128 file uploads size update and copy change 2025-01-07 09:21:43 +00:00
robbond 8f6f6f4084 uat defect 126 capitalisation of local planning authority 2025-01-07 09:20:34 +00:00
Robert Bond 9fc66fe054 Merged PR 1355: Questionnaire and rep fixes
Related work items: #12878
2025-01-07 08:43:14 +00:00
robbond 086942df7a questionnaire defect 22 and 9 2025-01-07 08:01:25 +00:00
robbond 29d8090630 questionnaire defect 21, rep defect 30,11 2025-01-07 06:56:06 +00:00
robbond 893136addc questionnaire defect 12 2025-01-07 06:50:04 +00:00
robbond 032748d4fe questionnaire defect 11 2025-01-07 06:41:31 +00:00
robbond 021cd9375c questionnaire defect 18 2025-01-07 06:36:19 +00:00
robbond 833eef7405 rep defect 17 english 2025-01-06 16:15:49 +00:00
robbond 942f1aff9f rep defect 17 welsh 2025-01-06 16:14:57 +00:00
robbond e6c7ce7809 questionnaire defect 8 2025-01-06 16:14:06 +00:00
robbond 16190a6ecd rep defect 17 update reps card title 2025-01-06 13:49:36 +00:00
robbond b012049029 rep defect 5 2025-01-06 13:30:56 +00:00
robbond 19910ec8fa uat defect 127 2025-01-06 13:27:12 +00:00
robbond 554b25ebcd uat defect 125 2025-01-06 13:23:56 +00:00
robbond 734f969546 questionnaire defect 13 for enf 2025-01-06 11:31:25 +00:00
robbond 29971a7bbb questionnaire defect 1 2025-01-06 11:30:57 +00:00
robbond af959dc048 questionnaire defects 2,3,4,9,13,20,22 2025-01-06 11:29:25 +00:00
Robert Bond 3eeeab6379 Merged PR 1352: Uat and Rep defects marloe
Related work items: #12878
2025-01-06 08:45:38 +00:00
robbond 8e6296e4b1 uat defect 120 2025-01-05 09:24:22 +00:00
robbond fd5d01bc03 rep defect 8 2025-01-03 17:28:50 +00:00
robbond f1ec5ac762 rep defect 116 2025-01-03 17:27:50 +00:00
robbond b213fdc27a rep defect 121,122,123,124 2025-01-03 17:27:08 +00:00
Robert Bond 1502880b6d Merged PR 1348: Rep defects
Related work items: #12915
2025-01-03 10:30:44 +00:00
robbond 81c074245f re defect 31 2025-01-03 10:26:00 +00:00
robbond 714470faaa rep defect 22 2025-01-03 08:23:21 +00:00
robbond e0a96d94ea add package to throttle/limit calls 2025-01-03 08:05:14 +00:00
robbond 223c35e426 refactor of code 2025-01-03 08:04:42 +00:00
robbond b79e21c419 rep defect 17 2025-01-03 07:58:01 +00:00
robbond 5e1ffd3067 fix for overrunning long strings on to wrap 2025-01-03 07:57:19 +00:00
robbond a5e485032e fix for lpa raising statemtents 2025-01-03 07:56:49 +00:00
robbond bcdb777551 updated wording 2025-01-03 07:56:34 +00:00
Robert Bond ccf5c01721 Merged PR 1347: multiple reps fixes
Related work items: #12915
2025-01-02 13:36:58 +00:00
robbond 639894da79 burps suite amendment 2025-01-02 13:32:38 +00:00
robbond b785e068db rep defect 30, 21 2025-01-02 13:31:46 +00:00
robbond e86fdad660 rep defect 27 2025-01-02 13:23:59 +00:00
robbond 32fa5be81a rep defect 29 2025-01-02 13:17:02 +00:00
robbond efb12a315b rep defect 15 2025-01-02 13:10:57 +00:00
robbond b133dca25a rep defect 13, 8, 20 2025-01-02 13:10:09 +00:00
robbond c204aeb43b reps defect 10 2025-01-02 12:31:30 +00:00
Robert Bond 79a2e769b0 Merged PR 1346: icon and hide owner and tenants
Related work items: #12956
2024-12-19 13:37:20 +00:00
robbond b6147645b2 hide owner and tenants if empty on check and pdf 2024-12-19 09:41:15 +00:00
robbond 9a58417abd default icon from txt to blank generic icon 2024-12-19 09:40:50 +00:00
Robert Bond f6dae31b3a Merged PR 1345: applied upload funcitonalilty to IP,Agent,LPA
applied upload funcitonalilty to IP,Agent,LPA

Related work items: #12956
2024-12-19 09:06:12 +00:00
robbond a1445d9629 applied upload funcitonalilty to IP,Agent,LPA 2024-12-19 07:51:00 +00:00
Robert Bond 37d60ac205 Merged PR 1343: file uplaod fix for reps
Related work items: #12878, #12956
2024-12-18 13:46:35 +00:00
robbond 97cfeb562a upodated rep file upload 2024-12-18 12:39:17 +00:00
robbond 54728d9565 whole number language and regex validatiojn 2024-12-16 16:44:44 +00:00
robbond ead00dda76 validation message translations is required 2024-12-16 11:48:57 +00:00
robbond 5549ed43ba when file deleted on upload update file uploaded message correctly 2024-12-13 09:28:21 +00:00
Robert Bond 8119f73408 Merged PR 1339: uat fixes as per seans issues
Related work items: #12956
2024-12-12 14:22:32 +00:00
robbond 10a507ada6 fixes for csr 127.0.0.1 errors 2024-12-12 14:19:57 +00:00
robbond 672810485d welsh update for householder appeal label 2024-12-12 14:19:29 +00:00
robbond d8e668ff99 removed temporary ref from pdf 2024-12-12 14:09:32 +00:00
robbond e608a3e55e remove comma in html elements 2024-12-12 14:09:13 +00:00
robbond bfd25b72f5 updated lpa names 2024-12-12 14:08:43 +00:00
robbond 1590cd16f6 two digit date in file name 2024-12-12 14:07:37 +00:00
Robert Bond 291dd09c14 Merged PR 1337: path to getbloblistproxy fails csr policy and uncommented saving of appeal p...
path to getbloblistproxy  fails csr policy and uncommented saving of appeal progess data

Related work items: #12956
2024-12-12 09:46:42 +00:00
robbond 7ec0607d6c path to getbloblistproxy fails csr policy and uncommented saving of appeal progess data 2024-12-12 09:43:12 +00:00
Robert Bond d21102d7f6 Merged PR 1335: fix pdf generated on complete of appeal and set file limit to 500mb
fix pdf generated on complete of appeal and set file limit to 500mb

Related work items: #12956
2024-12-11 13:32:56 +00:00
robbond 414116aff8 fix pdf generated on complete of appeal and set file limit to 500mb 2024-12-11 13:31:03 +00:00
Robert Bond 247efa2ff3 Merged PR 1334: file upload and UAT fixes
Related work items: #12956
2024-12-11 11:29:18 +00:00
robbond beb5d6f809 file upload fix... limit to 210mb updates file list from storage account 2024-12-11 11:25:06 +00:00
robbond 32664f73e6 validation on date field in sub field for owner and tenant 2024-12-11 05:56:41 +00:00
robbond 5f801c9d25 remove icon on file uploads styling fix 2024-12-11 05:56:01 +00:00
Robert Bond ecf7a5be71 Merged PR 1333: Multiple UAT fixes
Related work items: #12956
2024-12-10 15:13:11 +00:00
robbond dcb6171dc1 multiple file upload issues capped at 210mb for now 2024-12-10 15:09:04 +00:00
robbond b2e1c01dea rep defect 2 2024-12-10 15:07:02 +00:00
robbond f44725ee5e rep defect 6 2024-12-10 15:06:40 +00:00
robbond 3c0f2aae88 replace in with is 2024-12-10 12:55:57 +00:00
robbond 6424d5f688 upload single files api endpoint 2024-12-09 16:47:32 +00:00
robbond bd76d8fc67 remove debug console.log 2024-12-09 16:45:46 +00:00
robbond 05190daf50 styling of remove file button on added files 2024-12-09 16:45:18 +00:00
robbond 853c053567 time delimiter in date time of reps uploaded 2024-12-09 16:44:48 +00:00
Robert Bond 3dd9a7586f Merged PR 1331: UAt fixes
Related work items: #12924, #12952
2024-12-05 17:31:40 +00:00
robbond 9734bffee3 adjsuted dates in community levy query 2024-12-05 17:29:20 +00:00
robbond e8c3b172e9 correct progress bar for community levy 2024-12-05 17:14:06 +00:00
robbond b8be86fe5c email link fix for welsh 2024-12-05 17:08:29 +00:00
robbond 19310b8145 welsh changes 2024-12-05 16:34:48 +00:00
robbond 8b349e7d3a missing lower case I 2024-12-05 09:30:23 +00:00
robbond 253a5c4d37 floor space to whole meters 2024-12-05 09:30:04 +00:00
Robert Bond 57d8ffc4f3 Merged PR 1329: fix for new appeal and reps updates
fix for new appeal and reps updates

Related work items: #12884, #12885, #12887, #12930
2024-12-04 20:02:14 +00:00
robbond b668f323fe fix for new appeal and reps updates 2024-12-04 19:30:18 +00:00
Robert Bond 47c2c68ed0 Merged PR 1326: lpa unseen docs and remove uploaded files
lpa unseen docs and remove uploaded files

Related work items: #12876
2024-12-04 11:28:21 +00:00
robbond 39a055e670 lpa unseen docs and remove uploaded files 2024-12-04 11:18:20 +00:00
Robert Bond 824d14d814 Merged PR 1324: uat reps fixes
Related work items: #12465, #12884, #12885, #12887, #12891, #12892, #12906
2024-12-03 21:02:05 +00:00
robbond 49d39e052e questionnaire for callins and uploads 2024-12-03 18:27:51 +00:00
robbond c7e13f84e7 limit to three on portal cards 2024-12-03 11:46:59 +00:00
Robert Bond 984c7bbf06 Merged PR 1321: UAT fixes
Related work items: #12870, #12872, #12877, #12883
2024-12-02 20:55:45 +00:00
robbond 499a1e9527 if agent dont change to appellant on submit appeal 2024-12-02 18:50:55 +00:00
robbond 7c95f679ba max 5 owners or tenants in field arry 2024-12-02 18:49:15 +00:00
robbond f9310d655b defect 82 removed colons 2024-12-02 17:06:59 +00:00
robbond b407ac21d0 defect 80 able to select "select..." 2024-12-02 17:06:43 +00:00
Robert Bond 92bfd320c8 Merged PR 1317: emoji checker on text and multiline
emoji checker on text and multiline

Related work items: #12872
2024-12-02 17:00:35 +00:00
robbond f37290f489 emoji checker on text and multiline 2024-12-02 15:56:18 +00:00
Robert Bond 5060932bd7 Merged PR 1315: fix on NAN docuemnt and translations typo
fix on NAN docuemnt and translations typo

Related work items: #10607
2024-11-29 20:17:33 +00:00
robbond b2ce928a63 fix on NAN docuemnt and translations typo 2024-11-29 16:43:35 +00:00
Robert Bond 9c6354dc7d Merged PR 1314: welsh translation resources back from trossel
welsh translation resources back from trossel

Related work items: #9633, #10607
2024-11-29 16:37:06 +00:00
robbond e7df3bbedd json fix 2024-11-29 16:32:39 +00:00
robbond 612fa44a86 few pdf updates 2024-11-29 16:12:15 +00:00
robbond 54b6180c0d welsh translation resources back from trossel 2024-11-29 16:06:31 +00:00
Robert Bond 228cf35611 Merged PR 1313: new appeals change involvment to appellant
new appeals change involvment to appellant

Related work items: #12850
2024-11-29 14:13:21 +00:00
robbond 0f8fc932e7 new appeals change involvment to appellant 2024-11-29 13:11:26 +00:00
Robert Bond 202aa3cdb6 Merged PR 1311: updated enforcement listed building using pinswg_startdates
updated enforcement listed building using pinswg_startdates

Related work items: #12843
2024-11-29 08:35:42 +00:00
robbond e918f20c03 updated enforcement listed building using pinswg_startdates 2024-11-29 07:44:17 +00:00
Robert Bond d042c52f76 Merged PR 1310: appeal pdf fixes and owners
appeal pdf fixes and owners

Related work items: #12809
2024-11-28 15:49:12 +00:00
robbond b98a310edc appeal pdf fixes and owners 2024-11-28 12:53:50 +00:00
Robert Bond d7791a9ab9 Merged PR 1308: updatd documents needed list
updatd documents needed list

Related work items: #12642, #12809
2024-11-28 08:51:04 +00:00
robbond 209e49d721 fix for reps label searchresults 2024-11-28 06:38:36 +00:00
robbond b423bb0cea updatd documents needed list 2024-11-28 06:30:24 +00:00
Robert Bond 4c5602eed3 Merged PR 1306: PII uat defect fixes
Related work items: #12806, #12807, #12810, #12811, #12812, #12813, #12814, #12815, #12816, #12820, #12821, #12823, #12829, #12830, #12831, #12832, #12833, #12834, #12837, #12839
2024-11-27 11:26:46 +00:00
robbond d5cee80859 added in hint text for the application for dated 2024-11-27 11:20:31 +00:00
robbond 7b6862c350 updated validation for cost applciation 2024-11-27 11:13:31 +00:00
robbond 85f323d580 uat fixes 2024-11-27 11:00:12 +00:00
Robert Bond 630ed8d32b Merged PR 1305: uat fixes
uat fixes

Related work items: #12771, #12799
2024-11-26 09:30:56 +00:00
robbond 8f84ae8d8a uat fixes 2024-11-26 09:18:53 +00:00
Robert Bond 654a6c1171 Merged PR 1304: details can cases data was showing incorrectly due to order in array... combi...
details can cases data was showing incorrectly due to order in array... combined arrays and display correctly

Related work items: #12787
2024-11-22 12:35:05 +00:00
robbond a367cc0c88 details can cases data was showing incorrectly due to order in array... combined arrays and display correctly 2024-11-22 12:10:34 +00:00
Robert Bond c05b0b151c Merged PR 1302: updated packages to try and fix build fail
updated packages to try and fix build fail

Related work items: #12776
2024-11-22 06:35:50 +00:00
robbond 2dd40542e3 updated packages to try and fix build fail 2024-11-22 06:10:27 +00:00
Robert Bond 58b88b1620 Merged PR 1301: uat defects as per grid 1, 8 10
uat defects as per grid 1, 8 10

Related work items: #12776
2024-11-21 17:30:12 +00:00
robbond 94577fdec9 uat defects as per grid 1, 8 10 2024-11-21 17:22:56 +00:00
Robert Bond de123537db Merged PR 1298: corrected topthreetype
corrected topthreetype

Related work items: #12767
2024-11-20 19:13:34 +00:00
robbond 001b64d28f corrected topthreetype 2024-11-20 19:11:22 +00:00
Robert Bond df15078d20 Merged PR 1296: updated link for submitted reps viewall
updated link for submitted reps viewall

Related work items: #12767
2024-11-20 13:53:05 +00:00
robbond f910d6a530 updated link for submitted reps viewall 2024-11-20 13:51:25 +00:00
Robert Bond ca52806ddc Merged PR 1295: update logic on breadcrumb
update logic on breadcrumb

Related work items: #12674
2024-11-20 12:04:39 +00:00
Robert Bond ba220192e5 Merged PR 1294: create pdf amendment
create pdf amendment

Related work items: #12768
2024-11-20 11:56:28 +00:00
robbond 9acc9437df updated involvement with correct contactid 2024-11-20 11:53:43 +00:00
robbond 0de6084b71 create pdf amendment 2024-11-20 11:34:08 +00:00
robbond 9ebcde3c45 update logic on breadcrumb 2024-11-20 10:20:50 +00:00
Robert Bond 75e117dd7f Merged PR 1293: check questionnaires fix and update enforcement check
check questionnaires fix and update enforcement check

Related work items: #12715
2024-11-19 21:01:07 +00:00
robbond fd4784902b check questionnaires fix and update enforcement check 2024-11-19 19:10:07 +00:00
Robert Bond ce6dfc39a6 Merged PR 1291: added additional current refs ticketnumber variants + reps on results
added additional current refs ticketnumber variants + reps on results

Related work items: #12688
2024-11-19 10:51:13 +00:00
robbond 2e557c85b1 added additional current refs ticketnumber variants + reps on results 2024-11-19 10:47:06 +00:00
Robert Bond 32f494783a Merged PR 1289: moved alot of stuff from client side
moved alot of stuff from client side

Related work items: #12688
2024-11-18 20:18:06 +00:00
robbond e690bc6725 moved alot of stuff from client side 2024-11-18 19:54:23 +00:00
Robert Bond 2c5323c9cf Merged PR 1286: hooks fixes and ordering of events
hooks fixes and ordering of events

Related work items: #12688
2024-11-18 13:11:54 +00:00
robbond 4bf10d97db hooks fixes and ordering of events 2024-11-16 07:45:38 +00:00
Robert Bond aaf9b3e574 Merged PR 1285: removed base url test if should point to itself
removed base url test if should point to itself

Related work items: #12688
2024-11-15 08:58:47 +00:00
robbond 6eb53e113e removed base url test if should point to itself 2024-11-15 06:32:24 +00:00
Robert Bond 7f95d361a9 Merged PR 1284: added in options for uploadstream for rep pdfs
added in options for uploadstream for rep pdfs

Related work items: #12688
2024-11-14 14:35:44 +00:00
robbond 61e645c963 added in options for uploadstream for rep pdfs 2024-11-14 14:33:19 +00:00
Robert Bond 379f238552 Merged PR 1283: check filename upload
check filename upload

Related work items: #12679
2024-11-14 12:11:24 +00:00
robbond 81fbf008ea check filename upload 2024-11-14 11:01:58 +00:00
Robert Bond 02f8cd706c Merged PR 1282: updated validation to trigger correctly
updated validation to trigger correctly

Related work items: #12675
2024-11-14 09:07:27 +00:00
robbond 19f255111d updated validation to trigger correctly 2024-11-14 06:49:02 +00:00
Robert Bond 25c63bc7f9 Merged PR 1279: change object checking for ROW and Adverts
change object checking for ROW and Adverts

Related work items: #12663, #12664
2024-11-12 15:17:12 +00:00
robbond 36829b7446 change object checking for ROW and Adverts 2024-11-12 15:14:20 +00:00
Robert Bond 77b71577ad Merged PR 1278: fix for files in reps
fix for files in reps

Related work items: #12649
2024-11-11 16:03:59 +00:00
robbond a752443ad9 fix for files in reps 2024-11-11 16:01:40 +00:00
Robert Bond b54b4459aa Merged PR 1276: updated filelist obj to check else default to empty array
updated filelist obj to check else default to empty array

Related work items: #12613
2024-11-07 14:07:53 +00:00
robbond d901b18ed4 updated filelist obj to check else default to empty array 2024-11-07 14:05:58 +00:00
Robert Bond 172acf0560 Merged PR 1274: mycase links failed... so fixed
mycase links failed... so fixed

Related work items: #12613
2024-11-07 08:53:29 +00:00
robbond c869fdc6c4 mycase links failed... so fixed 2024-11-07 07:53:48 +00:00
Robert Bond c1180354e0 Merged PR 1273: added fixes to reduce error when calling module details and filtering of docs
added fixes to reduce error when calling module details and filtering of docs

Related work items: #12609, #12613
2024-11-06 17:38:55 +00:00
robbond d187907802 added fixes to reduce error when calling module details and filtering of docs 2024-11-06 17:34:30 +00:00
Robert Bond cd918ef69c Merged PR 1272: added in debug and async some calls
added in debug and async some calls

Related work items: #12609
2024-11-01 14:34:56 +00:00
robbond 95b6137cbc added in debug and async some calls 2024-11-01 14:26:55 +00:00
Robert Bond f18a126eb0 Merged PR 1271: finalised copy changes as per gel review
finalised copy changes as per gel review

Related work items: #11956
2024-10-31 09:54:40 +00:00
robbond 2612b5e743 finalised copy changes as per gel review 2024-10-31 09:48:38 +00:00
261 changed files with 44827 additions and 10932 deletions
+72 -65
View File
@@ -4,47 +4,49 @@ GRANT_TYPE = "client_credentials"
HASHKEY = 028ffbae928d7191c0017f298260995f901d78eabde1436c0af0423459cc3715832136d84f68818d3a96399467b52143e273d4f3bf4ae190848891535421cd6c
//CNR oauth CNR
CLIENT_ID = 3125ac03-91ac-46a7-a166-0086f0ed90b3
CLIENT_SECRET = bFq8Q~9VX5Ra3lKnGGIXsB.G6-ZGMx7LqyqXjdr4
RELAY_ROOT = https://ar-ns-lz-pedw-cnr-uks-01.servicebus.windows.net/ar-hc-lz-pedw-cnr-uks-01/
RELAYURI = "ar-ns-lz-pedw-cnr-uks-01.servicebus.windows.net"
RELAYPATH = "ar-hc-lz-pedw-cnr-uks-01"
CRMURL = "devcrm2016.llcdt.gov.wales/DVPINS"
# //CNR oauth CNR
# CLIENT_ID = 3125ac03-91ac-46a7-a166-0086f0ed90b3
# CLIENT_SECRET = bFq8Q~9VX5Ra3lKnGGIXsB.G6-ZGMx7LqyqXjdr4
# RELAY_ROOT = https://ar-ns-lz-pedw-cnr-uks-01.servicebus.windows.net/ar-hc-lz-pedw-cnr-uks-01/
# RELAYURI = "ar-ns-lz-pedw-cnr-uks-01.servicebus.windows.net"
# RELAYPATH = "ar-hc-lz-pedw-cnr-uks-01"
# CRMURL = "devcrm2016.llcdt.gov.wales/DVPINS"
//New Dev oauth ESNR
CLIENT_ID = 9b834097-03d7-409b-b038-ecfec31a394a
CLIENT_SECRET = .Jf8Q~tKMObCJjhh_hy3J5AIctFrBalU4FS~tdxk
RELAY_ROOT = https://ar-ns-lz-pedw-dev-uks-01.servicebus.windows.net/ar-hc-lz-pedw-dev-uks-01/
RELAYURI = "ar-ns-lz-pedw-dev-uks-01.servicebus.windows.net"
RELAYPATH = "ar-hc-lz-pedw-dev-uks-01"
CRMURL = "devcrm2016.llcdt.gov.wales/DVPINS"
# //New Dev oauth ESNR
# CLIENT_ID = 9b834097-03d7-409b-b038-ecfec31a394a
# CLIENT_SECRET = .Jf8Q~tKMObCJjhh_hy3J5AIctFrBalU4FS~tdxk
# RELAY_ROOT = https://ar-ns-lz-pedw-dev-uks-01.servicebus.windows.net/ar-hc-lz-pedw-dev-uks-01/
# RELAYURI = "ar-ns-lz-pedw-dev-uks-01.servicebus.windows.net"
# RELAYPATH = "ar-hc-lz-pedw-dev-uks-01"
# CRMURL = "devcrm2016.llcdt.gov.wales/DVPINS"
//New Test
CLIENT_ID = d40b9373-96c2-4b04-8bd8-c2a2fe6444c1
CLIENT_SECRET = 6hT8Q~glL~jloWpGmvXw3UY37QFwjUE0r._jobEM
RELAY_ROOT = https://ar-ns-lz-pedw-test-uks-01.servicebus.windows.net/ar-hc-lz-pedw-test-uks-01/
RELAYURI = "ar-ns-lz-pedw-test-uks-01.servicebus.windows.net"
RELAYPATH = "ar-hc-lz-pedw-test-uks-01"
CRMURL = "tscrm2016.llcdt.gov.wales/UATPINS"
# //New Test
# CLIENT_ID = d40b9373-96c2-4b04-8bd8-c2a2fe6444c1
# CLIENT_SECRET = 6hT8Q~glL~jloWpGmvXw3UY37QFwjUE0r._jobEM
# RELAY_ROOT = https://ar-ns-lz-pedw-test-uks-01.servicebus.windows.net/ar-hc-lz-pedw-test-uks-01/
# RELAYURI = "ar-ns-lz-pedw-test-uks-01.servicebus.windows.net"
# RELAYPATH = "ar-hc-lz-pedw-test-uks-01"
# CRMURL = "tscrm2016.llcdt.gov.wales/UATPINS"
//Preprod Oauth WGO
//CLIENT_ID = ab6c4678-b31a-4eb3-b429-e039120e488a
////CLIENT_SECRET = Ioo7Q~RJfhWsE45wPsuHm1CzRk1SppnNN3lZF
//CLIENT_SECRET = V288Q~P1lFMvvX9Xnkx2pLixK~GOREH983Owqc1E
//RELAY_ROOT = https://pp-pedw-ns.servicebus.windows.net/pp-pedw-hc/
//RELAYURI = "pp-pedw-ns.servicebus.windows.net"
//RELAYPATH = "pp-pedw-hc"
//CRMURL = "ppcrm2016.llc.gov.wales/PPPINSWales"
# //New PreProd
CLIENT_ID = ab6c4678-b31a-4eb3-b429-e039120e488a
CLIENT_SECRET = V288Q~P1lFMvvX9Xnkx2pLixK~GOREH983Owqc1E
RELAY_ROOT = https://ar-ns-lz-pedw-ppe-uks-01.servicebus.windows.net/ar-hc-lz-pedw-ppe-uks-01/
RELAYURI = "ar-ns-lz-pedw-ppe-uks-01.servicebus.windows.net"
RELAYPATH = "ar-hc-lz-pedw-ppe-uks-01"
# RELAY_ROOT = https://ar-ns-lz-pedw-ppe-ukw-01.servicebus.windows.net/ar-hc-lz-pedw-ppe-ukw-01/
# RELAYURI = "ar-ns-lz-pedw-ppe-ukw-01.servicebus.windows.net"
# RELAYPATH = "ar-hc-lz-pedw-ppe-ukw-01"
CRMURL = "ppcrm2016.llcdt.gov.wales/PPPINSWales"
//Prod Oauth WGO
//CLIENT_ID = 3e4141a3-1fbd-454e-98f0-7f3a4f14a3cc
////CLIENT_SECRET = mJN7Q~lFu.xFGa5KCc.zwIm_fJAWxajyQaFo~
//CLIENT_SECRET = tFk8Q~E.R-HFjROTu1sRKqwb_ONzy05uPYoF6awR
//RELAY_ROOT = https://prod-pedw-ns.servicebus.windows.net/prod-pedw-hc/
//RELAYURI = "prod-pedw-ns.servicebus.windows.net"
//RELAYPATH = "prod-pedw-hc"
//CRMURL = "crm2016.llc.gov.wales/PEDW"
# //Prod Oauth WGO
# CLIENT_ID = 3e4141a3-1fbd-454e-98f0-7f3a4f14a3cc
# CLIENT_SECRET = tFk8Q~E.R-HFjROTu1sRKqwb_ONzy05uPYoF6awR
# RELAY_ROOT = https://prod-pedw-ns.servicebus.windows.net/prod-pedw-hc/
# RELAYURI = "prod-pedw-ns.servicebus.windows.net"
# RELAYPATH = "prod-pedw-hc"
# CRMURL = "crm2016.llc.gov.wales/PEDW"
//GOOGLE_TAG_MANAGER = GTM-T78CBC3
@@ -52,11 +54,12 @@ GOOGLE_TAG_MANAGER = G-GTWW3JT03Z
SHOWLOGIN = true
SHOWREPRESENTATIONS = true
SHOWFILEUPLOAD = "false"
SHOWMAPS = "false"
SHOWMAPS = false
API_ROOT = "http://localhost:3000"
CY_API_ROOT = "http://cymru.local:3000"
I18N_DOMAIN = "cymru.local"
DOCAPI_OFFLINE = "12:00:00,14:00:00"
SHOWFILTERDOCS = false
// Next Auth vars
@@ -65,22 +68,17 @@ NEXTAUTH_URL_INTERNAL = $API_ROOT
NEXTAUTH_SECRET = SuperSecret
// CNR sql server
DATABASE_URL = sqlserver://sql-srv-plt-pedw-cnr-uks-01.database.windows.net:1433;database=PEDW;user=PedwSqlAdmin;password=GhWKr62F5sQ69dZx;encrypt=true;trustServerCertificate=true;hostNameInCertificate=*.database.windows.net;loginTimeout=30;authentication=ActiveDirectoryPassword
# DATABASE_URL = sqlserver://sql-srv-plt-pedw-cnr-uks-01.database.windows.net:1433;database=PEDW;user=PedwSqlAdmin;password=GhWKr62F5sQ69dZx;encrypt=true;trustServerCertificate=true;hostNameInCertificate=*.database.windows.net;loginTimeout=30;authentication=ActiveDirectoryPassword
// dev test sql server
//DATABASE_URL = sqlserver://pedw-dev-test-sql-svr.database.windows.net:1433;database=PEDWDev;user=RobBondSQL;password=GhWKr62F5sQ69dZx;encrypt=true;trustServerCertificate=true;hostNameInCertificate=*.database.windows.net;loginTimeout=30;authentication=ActiveDirectoryPassword
# DATABASE_URL = sqlserver://pedw-dev-test-sql-svr.database.windows.net:1433;database=PEDWDev;user=RobBondSQL;password=GhWKr62F5sQ69dZx;encrypt=true;trustServerCertificate=true;hostNameInCertificate=*.database.windows.net;loginTimeout=30;authentication=ActiveDirectoryPassword
# DATABASE_URL = sqlserver://sql-srv-plt-pedw-dev-uks-01.database.windows.net:1433;database=PEDW;user=PedwSqlAdmin;password=GhWKr62F5sQ69dZx;encrypt=true;trustServerCertificate=true;hostNameInCertificate=*.database.windows.net;loginTimeout=30;authentication=ActiveDirectoryPassword
// Pre prod sql server
//DATABASE_URL = sqlserver://pp-pedw-sql.database.windows.net:1433;database=PEDWPreProd;user=RobBondSQL;password=GhWKr62F5sQ69dZx;encrypt=true;trustServerCertificate=true;hostNameInCertificate=*.database.windows.net;loginTimeout=30;authentication=ActiveDirectoryPassword
////DATABASE_URL = sqlserver://pp-pedw-sql.database.windows.net:1433;database=PEDWPreProd;user=pp-pedw-ukw;password=jscw4+896w9YaiXruOA3mtpNkio1oUZxBZcFJ9Awdz4=;encrypt=true;trustservercertificate=false;hostnameincertificate=*.database.windows.net;logintimeout=30;authentication=SqlPassword
//DATABASE_URL = sqlserver://pp-pedw-sql.database.windows.net:1433;database=PEDWPreProd;user=RobBondSQL;password=GhWKr62F5sQ69dZx;encrypt=true;trustservercertificate=false;hostnameincertificate=*.database.windows.net;logintimeout=30
//DATABASE_URL = sqlserver://pp-pedw-sql.privatelink.database.windows.net:1433;database=PEDWPreProd;user=RobBondSQL;password=GhWKr62F5sQ69dZx;encrypt=true;trustservercertificate=false;hostnameincertificate=*.database.windows.net;logintimeout=30
DATABASE_URL = sqlserver://sql-srv-plt-pedw-ppe-uks-01.database.windows.net:1433;database=PEDW;user=PedwSqlAdmin;password=GhWKr62F5sQ69dZx;encrypt=true;trustservercertificate=true;hostnameincertificate=*.database.windows.net;logintimeout=30;authentication=SqlPassword
// Prod sql server
//DATABASE_URL = sqlserver://pp-pedw-sql.database.windows.net:1433;database=PEDWPreProd;user=RobBondSQL;password=GhWKr62F5sQ69dZx;encrypt=true;trustServerCertificate=true;hostNameInCertificate=*.database.windows.net;loginTimeout=30;authentication=ActiveDirectoryPassword
# DATABASE_URL = sqlserver://pp-pedw-sql.database.windows.net:1433;database=PEDWPreProd;user=RobBondSQL;password=GhWKr62F5sQ69dZx;encrypt=true;trustServerCertificate=true;hostNameInCertificate=*.database.windows.net;loginTimeout=30;authentication=ActiveDirectoryPassword
SECRET = SuperSecret
@@ -98,33 +96,33 @@ AZURE_CLIENT_SECRET = $CLIENT_SECRET
# AZURE_PEDW_STORAGE_ENDPOINT = https://sapltpedwcnruks.blob.core.windows.net
// new dev key
AZURE_STORAGE_ACCOUNT_NAME = "sapltpedwdevuks"
AZURE_STORAGE_ACCOUNT_KEY = MmrsrCjBfop9pI2oImsP/+lJUWU2DrXsAB8nq5bOVROTmPovSGxjCjKw9+TAFr00k8WDUK9r6mVx+AStcMLyAA==
AZURE_PEDW_STORAGE_ENDPOINT = https://sapltpedwdevuks.blob.core.windows.net
# AZURE_STORAGE_ACCOUNT_NAME = "sapltpedwdevuks"
# AZURE_STORAGE_ACCOUNT_KEY = MmrsrCjBfop9pI2oImsP/+lJUWU2DrXsAB8nq5bOVROTmPovSGxjCjKw9+TAFr00k8WDUK9r6mVx+AStcMLyAA==
# AZURE_PEDW_STORAGE_ENDPOINT = https://sapltpedwdevuks.blob.core.windows.net
// New test key
AZURE_STORAGE_ACCOUNT_NAME = "sapltpedwtestuks"
AZURE_STORAGE_ACCOUNT_KEY = bqJAz5pYQVGee8dnVhlsqW+xHwinNTjgY2AmojNyB+d4uAotMR20WcO4Op13yB+9dFaXAkkjtIA4+AStHT/IYg==
AZURE_PEDW_STORAGE_ENDPOINT = https://sapltpedwtestuks.blob.core.windows.net
# AZURE_STORAGE_ACCOUNT_NAME = "sapltpedwtestuks"
# AZURE_STORAGE_ACCOUNT_KEY = bqJAz5pYQVGee8dnVhlsqW+xHwinNTjgY2AmojNyB+d4uAotMR20WcO4Op13yB+9dFaXAkkjtIA4+AStHT/IYg==
# AZURE_PEDW_STORAGE_ENDPOINT = https://sapltpedwtestuks.blob.core.windows.net
// preprod key
//AZURE_STORAGE_ACCOUNT_NAME = "pedwpp"
//AZURE_STORAGE_ACCOUNT_KEY = koZ46STRqapSa2Dod8MLL6aju1eYLhhyJ6DXpCLMTnFLJvbDT6CHUv/jwr5U/Ta8a60MWzwToHQy+AStADO7sg==
//AZURE_PEDW_STORAGE_ENDPOINT = https://pedwpp.blob.core.windows.net
// New preprod key
AZURE_STORAGE_ACCOUNT_NAME = "sapltpedwppeuks"
AZURE_STORAGE_ACCOUNT_KEY = B4GRKr+cA9b9mNM/GHFivzhzflJIZltG8bMmooXlYvGYySPAspTTHistAT30sHipnR+hh6dqUc9q+ASttAjPRQ==
AZURE_PEDW_STORAGE_ENDPOINT = https://sapltpedwppeuks.blob.core.windows.net
// PROD key
//AZURE_STORAGE_ACCOUNT_NAME = "pedwprod"
//AZURE_STORAGE_ACCOUNT_KEY = koZ46STRqapSa2Dod8MLL6aju1eYLhhyJ6DXpCLMTnFLJvbDT6CHUv/jwr5U/Ta8a60MWzwToHQy+AStADO7sg==
//AZURE_PEDW_STORAGE_ENDPOINT = https://pedwprod.blob.core.windows.net
# AZURE_STORAGE_ACCOUNT_NAME = "pedwprod"
# AZURE_STORAGE_ACCOUNT_KEY = koZ46STRqapSa2Dod8MLL6aju1eYLhhyJ6DXpCLMTnFLJvbDT6CHUv/jwr5U/Ta8a60MWzwToHQy+AStADO7sg==
# AZURE_PEDW_STORAGE_ENDPOINT = https://pedwprod.blob.core.windows.net
AZURE_PEDW_CONTAINER = "pedwapplications"
AZURE_PEDW_QUEUE_ENDPOINT = https://$AZURE_STORAGE_ACCOUNT_NAME.queue.core.windows.net
//gov.notify
NOTIFY_API_KEY = pedwnextauthkey-90f93710-9dae-423e-aea1-11eccd0dc132-0c9469d9-d671-444d-9e9d-3e5a62001043
//NOTIFY_API_KEY = pedwnextauthkey-90f93710-9dae-423e-aea1-11eccd0dc132-0c9469d9-d671-444d-9e9d-3e5a62001043
NOTIFY_API_KEY = pedwnextauthlivekey-90f93710-9dae-423e-aea1-11eccd0dc132-5c0ed187-754a-4b04-8c99-978e5710c2c1
SHOW_DEBUG = true
@@ -132,11 +130,20 @@ SHOW_DEBUG = true
// DEV Connection string
//NEXT_PUBLIC_APP_INSIGHT = InstrumentationKey=4b7568b3-70bd-4591-9dc2-267c0a6501d1;IngestionEndpoint=https://ukwest-0.in.applicationinsights.azure.com/;LiveEndpoint=https://ukwest.livediagnostics.monitor.azure.com/;ApplicationId=447d38b5-5d40-4238-8fb3-0ef4741b3db1
APPLICATIONINSIGHTS_CONNECTIONSTRING = InstrumentationKey=7a06e24a-793c-47bc-8987-ce80f180e035;IngestionEndpoint=https://uksouth-1.in.applicationinsights.azure.com/;LiveEndpoint=https://uksouth.livediagnostics.monitor.azure.com/;ApplicationId=9906b6d0-b791-4add-8d53-c827a534e1d4
// Test Connection string
//NEXT_PUBLIC_APP_INSIGHT = InstrumentationKey=cc60e8e7-5b30-4c2b-a176-8b96b21b12df;IngestionEndpoint=https://ukwest-0.in.applicationinsights.azure.com/;LiveEndpoint=https://ukwest.livediagnostics.monitor.azure.com/;ApplicationId=2a4094be-6fd1-46ab-a67d-5f241692b129
// Preprod Connection string
NEXT_PUBLIC_APP_INSIGHT = InstrumentationKey=7370f0f9-834d-4c7a-b3c4-9951fcad5ad2;IngestionEndpoint=https://ukwest-0.in.applicationinsights.azure.com/;LiveEndpoint=https://ukwest.livediagnostics.monitor.azure.com/;ApplicationId=04362cb7-6dfc-469e-8274-12243e8be851
//NEXT_PUBLIC_APP_INSIGHT = InstrumentationKey=7370f0f9-834d-4c7a-b3c4-9951fcad5ad2;IngestionEndpoint=https://ukwest-0.in.applicationinsights.azure.com/;LiveEndpoint=https://ukwest.livediagnostics.monitor.azure.com/;ApplicationId=04362cb7-6dfc-469e-8274-12243e8be851
NEXT_PUBLIC_APP_INSIGHT = InstrumentationKey=a41b91bf-f7dc-4f44-bb66-a67df4eee435;IngestionEndpoint=https://uksouth-1.in.applicationinsights.azure.com/;LiveEndpoint=https://uksouth.livediagnostics.monitor.azure.com/;ApplicationId=473d0632-16f1-4065-8984-d6bac62402c0
// Prod Connection string
//NEXT_PUBLIC_APP_INSIGHT = InstrumentationKey=61f358c2-8075-4164-b897-17bc6dd31fee;IngestionEndpoint=https://ukwest-0.in.applicationinsights.azure.com/;LiveEndpoint=https://ukwest.livediagnostics.monitor.azure.com/;ApplicationId=0c297349-396b-4dc6-8b56-85f5c680adc6
//NEXT_PUBLIC_APP_INSIGHT = InstrumentationKey=61f358c2-8075-4164-b897-17bc6dd31fee;IngestionEndpoint=https://ukwest-0.in.applicationinsights.azure.com/;LiveEndpoint=https://ukwest.livediagnostics.monitor.azure.com/;ApplicationId=0c297349-396b-4dc6-8b56-85f5c680adc6
HIDEERRORLOGS = false
+10 -3
View File
@@ -16,8 +16,8 @@ yarn-error.log*
.yarn
#lock files
yarn.lock
package-lock.json
# yarn.lock
# package-lock.json
tmp
@@ -31,4 +31,11 @@ docker*.yml
# Polling
pages/api/poll-queue.js
pages/polling.js
pages/polling.js
# dev apis to no include
pages/api/endpoint/getaccounts_api.js
# certs
certificates/*
+364 -91
View File
@@ -1,8 +1,8 @@
import { DefaultAzureCredential } from "@azure/identity";
import _ from "lodash";
import { hashAPIPath, consoleLogger } from ".";
import { getDocumentTypeFromFilename } from "../components/utils";
import { da } from "date-fns/locale";
const {
ContainerClient,
BlockBlobClient,
@@ -178,45 +178,6 @@ export const getContainers = async () => {
}
};
const getDocumentTypeFromFilename = (filename) => {
var doctypeCode = "000000";
if (filename.indexOf("_-_Statement_of_Case") > 0) doctypeCode = "000000";
else if (filename.indexOf("_-_Application_Form") > 0)
doctypeCode = "000001";
else if (filename.indexOf("_-_Site_Ownership_Certificate") > 0)
doctypeCode = "000002";
else if (filename.indexOf("_-_Decision_Notice") > 0) doctypeCode = "000003";
else if (filename.indexOf("_-_Site_Location_Plan") > 0)
doctypeCode = "000004";
else if (filename.indexOf("_-_Plans_Drawing_Documents") > 0)
doctypeCode = "000005";
else if (filename.indexOf("_-_Additional_Plans_Drawings_Documents") > 0)
doctypeCode = "000006";
else if (filename.indexOf("_-_Design_and_Access_Statement") > 0)
doctypeCode = "000007";
else if (filename.indexOf("_-_Green_Infrastructure_Statement") > 0)
doctypeCode = "000008";
else if (filename.indexOf("_-_LPA_Correspondence") > 0)
doctypeCode = "000009";
else if (filename.indexOf("_-_LPA_Original_Permission") > 0)
doctypeCode = "000010";
else if (filename.indexOf("_-_LPA's_Registration_Letter") > 0)
doctypeCode = "000010";
else if (filename.indexOf(+"_-_Environmental_Statement") > 0)
doctypeCode = "000012";
else if (filename.indexOf("_-_Cost_of_Application") > 0)
doctypeCode = "000013";
else if (filename.indexOf("_-_Other_Relevant_Material") > 0)
doctypeCode = "000014";
else if (
filename.indexOf("_-_S106_Agreement_or_Unilateral_Undertaking") > 0
)
doctypeCode = "000015";
return doctypeCode;
};
export const getBlobs = async (containerName, casefolderID) => {
const containerToken = await createContainerSas(containerName);
const sasUrl = `${STORAGE_PATH}/${containerName}?${containerToken}`;
@@ -242,6 +203,7 @@ export const getBlobs = async (containerName, casefolderID) => {
"caseObj": casefolderID + "/" + casefolderID + "_case.json",
"isCurrentVersion": blob.isCurrentVersion,
"contentLength": blob.properties.contentLength,
"size": blob.properties.contentLength,
"contentType": blob.contentType,
"lastModified": blob.properties.lastModified,
"filepath":
@@ -380,11 +342,22 @@ export const createAppealPDFBlob = async (
let month = repDate.getMonth() + 1;
let year = repDate.getFullYear();
const pdfFileName = year + "-" + month + "-" + day + "_-_Appeal_Form";
const pdfFileName =
year +
"-" +
("0" + month).slice(-2) +
"-" +
("0" + day).slice(-2) +
"_-_Appeal_Form";
//console.log(content);
const blobName = caseID + "/files/" + pdfFileName + ".pdf";
const uploadOptions = {
blockSize: 4 * 1024 * 1024, // 4 MiB max block size
concurrency: 2, // maximum number of parallel transfer workers
maxSingleShotSize: 8 * 1024 * 1024, // 8 MiB initial transfer size
};
console.log("blobName:", blobName);
const blockBlobClient = containerClient.getBlockBlobClient(blobName);
@@ -396,6 +369,8 @@ export const createAppealPDFBlob = async (
containerid: containerName,
caseID: caseID,
blobType: "Appeal PDF",
documentLocationId: "846040000",
ishareLocation: "846040000",
};
//console.log("the tags:", tags);
@@ -426,6 +401,12 @@ export const createRepPDFBlob = async (
//console.log(content);
const blobName = caseID + "/" + repName + "/files/" + repName + ".pdf";
const uploadOptions = {
blockSize: 4 * 1024 * 1024, // 4 MiB max block size
concurrency: 2, // maximum number of parallel transfer workers
maxSingleShotSize: 8 * 1024 * 1024, // 8 MiB initial transfer size
};
console.log("blobName:", blobName);
const blockBlobClient = containerClient.getBlockBlobClient(blobName);
@@ -441,13 +422,16 @@ export const createRepPDFBlob = async (
: repName.indexOf("_Comments") > 0
? "846040003"
: repName.indexOf("_Impact") > 0
? "846040001"
? "846040029"
: repName.indexOf("_Consultation_Response_") > 0
? "846040036"
: "846040002";
const tags = {
containerid: containerName,
caseID: caseID,
blobType: "Representation PDF",
documentLocationId: whichLocation,
ishareLocation: whichLocation,
};
@@ -549,10 +533,128 @@ export const uploadFile = async (formContent, containerName, foldername) => {
const containerClient = new ContainerClient(sasUrl);
const files = formContent;
let blobResponseArr = [];
//console.log(...formContent);
console.log("files...", files, Object.keys(files).length, foldername);
for (const prop in files) {
console.log(`files[${prop}] = ${files[prop][0].size}`);
const blobName = foldername + "/files/" + files[prop][0].fieldName;
console.log(blobName);
const blockBlobClient = containerClient.getBlockBlobClient(blobName);
const uploadBlobResponse = await blockBlobClient
.uploadFile(files[prop][0].path, files[prop].size)
.then((data) => {
console.log(
"////////////////////////\nfile name:",
files[prop][0].fieldName,
"\n////////////////////////////"
);
console.log(data);
let whichLocation =
files[prop][0].fieldName.indexOf("_Statement_of_Case") >
0 ||
files[prop][0].fieldName.indexOf("_-_Statement_of_Case") >
0 ||
files[prop][0].fieldName.indexOf("_-_Application_Form") >
0 ||
files[prop][0].fieldName.indexOf(
"_-_Site_Ownership_Certificate"
) > 0 ||
files[prop][0].fieldName.indexOf("_-_Decision_Notice") >
0 ||
files[prop][0].fieldName.indexOf("_-_Site_Location_Plan") >
0 ||
files[prop][0].fieldName.indexOf(
"_-_Plans_Drawing_Documents"
) > 0 ||
files[prop][0].fieldName.indexOf(
"_-_Additional_Plans_Drawings_Documents"
) > 0 ||
files[prop][0].fieldName.indexOf(
"_-_Design_and_Access_Statement"
) > 0 ||
files[prop][0].fieldName.indexOf(
"_-_NSB_LPA_Additional_Documents"
) > 0 ||
files[prop][0].fieldName.indexOf("_-_LPA_Correspondence") >
0 ||
files[prop][0].fieldName.indexOf(
"_-_LPA_Original_Permission"
) > 0 ||
files[prop][0].fieldName.indexOf(
"_-_LPA's_Registration_Letter"
) > 0 ||
files[prop][0].fieldName.indexOf(
+"_-_Environmental_Statement"
) > 0 ||
files[prop][0].fieldName.indexOf("_-_Cost_of_Application") >
0 ||
files[prop][0].fieldName.indexOf(
"_-_Other_Relevant_Material"
) > 0 ||
files[prop][0].fieldName.indexOf(
"_-_S106_Agreement_or_Unilateral_Undertaking" > 0
)
? "846040000"
: files[prop][0].fieldName.indexOf("_IP_") > 0
? "846040005"
: files[prop][0].fieldName.indexOf("_Statement_") > 0
? "846040002"
: files[prop][0].fieldName.indexOf("_Questionnaire_") >
0
? "846040001"
: files[prop][0].fieldName.indexOf("_Comments_") > 0
? "846040003"
: files[prop][0].fieldName.indexOf("_Impact_") > 0
? "846040001"
: files[prop][0].fieldName.indexOf(
"_Consultation_Response_"
) > 0
? "846040036"
: "846040000";
const tags = {
containerid: containerName,
caseID: foldername.split("/")[0],
documentType: files[prop][0].fieldName.split(".")[1],
blobType: "RepresentationFile",
documentLocationId: whichLocation,
ishareLocation: whichLocation,
};
const withTags = blockBlobClient.setTags(tags);
const withMeta = blockBlobClient.setMetadata(tags);
console.log(
`Uploaded block blob ${files[prop][0].fieldName} successfully`
//uploadBlobResponse.requestId
);
blobResponseArr.push({ file: files[prop][0].fieldName });
});
}
return blobResponseArr;
};
export const uploadSingleFile = async (
formContent,
containerName,
foldername
) => {
const containerToken = await createContainerSas(containerName);
const sasUrl = `${STORAGE_PATH}/${containerName}?${containerToken}`;
const containerClient = new ContainerClient(sasUrl);
const files = formContent;
//console.log(...formContent);
console.log("files...", files, Object.keys(files).length, foldername);
let blobResponseArr = [];
for (const prop in files) {
console.log(`files[${prop}] = ${files[prop][0].size}`);
const blobName = foldername + "/files/" + files[prop][0].fieldName;
@@ -562,6 +664,17 @@ export const uploadFile = async (formContent, containerName, foldername) => {
const uploadBlobResponse = await blockBlobClient.uploadFile(
files[prop][0].path,
files[prop].size
// {
// blobHTTPHeaders: {
// blobContentType: "application/octet-stream",
// },
// onProgress: (progress) => {
// // Log upload progress, you can emit this back to the client
// console.log(
// `Progress: ${progress.loadedBytes} bytes uploaded`
// );
// },
// }
);
console.log(
@@ -570,49 +683,78 @@ export const uploadFile = async (formContent, containerName, foldername) => {
"\n////////////////////////////"
);
let whichLocation =
files[prop][0].fieldName.indexOf("_Statement_of_Case") > 0 ||
files[prop][0].fieldName.indexOf("_-_Statement_of_Case") > 0 ||
files[prop][0].fieldName.indexOf("_-_Application_Form") > 0 ||
files[prop][0].fieldName.indexOf("_-_Site_Ownership_Certificate") >
0 ||
files[prop][0].fieldName.indexOf("_-_Decision_Notice") > 0 ||
files[prop][0].fieldName.indexOf("_-_Site_Location_Plan") > 0 ||
files[prop][0].fieldName.indexOf("_-_Plans_Drawing_Documents") >
0 ||
files[prop][0].fieldName.indexOf(
"_-_Additional_Plans_Drawings_Documents"
) > 0 ||
files[prop][0].fieldName.indexOf("_-_Design_and_Access_Statement") >
0 ||
files[prop][0].fieldName.indexOf(
"_-_Green_Infrastructure_Statement"
) > 0 ||
files[prop][0].fieldName.indexOf("_-_LPA_Correspondence") > 0 ||
files[prop][0].fieldName.indexOf("_-_LPA_Original_Permission") >
0 ||
files[prop][0].fieldName.indexOf("_-_LPA's_Registration_Letter") >
0 ||
files[prop][0].fieldName.indexOf(+"_-_Environmental_Statement") >
0 ||
files[prop][0].fieldName.indexOf("_-_Cost_of_Application") > 0 ||
files[prop][0].fieldName.indexOf("_-_Other_Relevant_Material") >
0 ||
files[prop][0].fieldName.indexOf(
"_-_S106_Agreement_or_Unilateral_Undertaking" > 0
)
? "846040000"
: files[prop][0].fieldName.indexOf("_IP_") > 0
? "846040005"
: files[prop][0].fieldName.indexOf("_Statement_") > 0
? "846040002"
: files[prop][0].fieldName.indexOf("_Questionnaire_") > 0
? "846040001"
: files[prop][0].fieldName.indexOf("_Comments_") > 0
? "846040003"
: files[prop][0].fieldName.indexOf("_Impact_") > 0
? "846040001"
: "846040000";
// let whichLocation =
// files[prop][0].fieldName.indexOf("_Statement_of_Case") > 0 ||
// files[prop][0].fieldName.indexOf("_-_Statement_of_Case") > 0 ||
// files[prop][0].fieldName.indexOf("_-_Application_Form") > 0 ||
// files[prop][0].fieldName.indexOf("_-_Site_Ownership_Certificate") >
// 0 ||
// files[prop][0].fieldName.indexOf("_-_Decision_Notice") > 0 ||
// files[prop][0].fieldName.indexOf("_-_Site_Location_Plan") > 0 ||
// files[prop][0].fieldName.indexOf("_-_Plans_Drawing_Documents") >
// 0 ||
// files[prop][0].fieldName.indexOf(
// "_-_Additional_Plans_Drawings_Documents"
// ) > 0 ||
// files[prop][0].fieldName.indexOf("_-_Design_and_Access_Statement") >
// 0 ||
// files[prop][0].fieldName.indexOf(
// "_-_NSB_LPA_Additional_Documents"
// ) > 0 ||
// files[prop][0].fieldName.indexOf("_-_LPA_Correspondence") > 0 ||
// files[prop][0].fieldName.indexOf("_-_LPA_Original_Permission") >
// 0 ||
// files[prop][0].fieldName.indexOf("_-_LPA's_Registration_Letter") >
// 0 ||
// files[prop][0].fieldName.indexOf("_-_Environmental_Statement") >
// 0 ||
// files[prop][0].fieldName.indexOf("_-_Cost_of_Application") > 0 ||
// files[prop][0].fieldName.indexOf("_-_Other_Relevant_Material") >
// 0 ||
// files[prop][0].fieldName.indexOf(
// "_-_S106_Agreement_or_Unilateral_Undertaking" > 0
// )
// ? "846040000"
// : files[prop][0].fieldName.indexOf("_IP_") > 0
// ? "846040005"
// : files[prop][0].fieldName.indexOf("_Statement_") > 0
// ? "846040002"
// : files[prop][0].fieldName.indexOf("_Questionnaire_") > 0
// ? "846040001"
// : files[prop][0].fieldName.indexOf("_Comments_") > 0
// ? "846040003"
// : files[prop][0].fieldName.indexOf("_Impact_") > 0
// ? "846040001"
// : "846040000";
const fieldName = files[prop][0].fieldName;
// Define the patterns and corresponding values
const patternMapping = [
{
pattern:
/_Statement_of_Case|_-_Statement_of_Case|_-_Application_Form|_-_Site_Ownership_Certificate|_-_Decision_Notice|_-_Site_Location_Plan|_-_Plans_Drawing_Documents|_-_Additional_Plans_Drawings_Documents|_-_Design_and_Access_Statement|_-_NSB_LPA_Additional_Documents|_-_LPA_Correspondence|_-_LPA_Original_Permission|_-_LPA's_Registration_Letter|_-_Environmental_Statement|_-_Cost_of_Application|_-_Other_Relevant_Material|_-_S106_Agreement_or_Unilateral_Undertaking/,
value: "846040000",
},
{ pattern: /_IP_/, value: "846040005" },
{ pattern: /_Statement_/, value: "846040002" },
{ pattern: /_Questionnaire_/, value: "846040001" },
{ pattern: /_Comments_/, value: "846040003" },
{ pattern: /_Impact_/, value: "846040001" },
{ pattern: /_Consultation_Response_/, value: "846040036" },
];
// Find a matching pattern or fallback to default
let whichLocation = "846040000"; // Default value
for (const { pattern, value } of patternMapping) {
if (pattern.test(fieldName)) {
whichLocation = value;
break;
}
}
// return whichLocation;
const tags = {
containerid: containerName,
@@ -620,6 +762,7 @@ export const uploadFile = async (formContent, containerName, foldername) => {
documentType: files[prop][0].fieldName.split(".")[1],
blobType: "RepresentationFile",
ishareLocation: whichLocation,
documentLocationId: whichLocation,
};
const withTags = await blockBlobClient.setTags(tags);
const withMeta = await blockBlobClient.setMetadata(tags);
@@ -628,7 +771,12 @@ export const uploadFile = async (formContent, containerName, foldername) => {
`Uploaded block blob ${files[prop][0].fieldName} successfully`,
uploadBlobResponse.requestId
);
blobResponseArr.push({ file: files[prop][0].fieldName });
// return uploadBlobResponse;
}
return blobResponseArr;
};
export const uploadRepFiles = async (
@@ -833,6 +981,26 @@ export const downloadProgressFile = async (
return JSON.parse(downloaded.toString());
};
export const downloadCaseFile = async (
containerName,
blobName,
casefolderID
) => {
console.log(containerName, blobName);
const containerToken = await createContainerSas(containerName);
const sasUrl = `${STORAGE_PATH}/${containerName}?${containerToken}`;
const containerClient = new ContainerClient(sasUrl);
const blobClient = containerClient.getBlobClient(blobName);
const downloadedBlob = await blobClient.download();
const downloaded = await streamToBuffer(downloadedBlob.readableStreamBody);
//console.log("Downloaded blob content:", downloaded.toString());
return JSON.parse(downloaded.toString());
};
export const downloadAllProgressFiles = async (
containerName,
progressBlobObj
@@ -872,11 +1040,17 @@ export const downloadAllProgressFiles = async (
blobClient = containerClient.getBlobClient(
progressBlobObj[prop].caseObj
);
caseBlob = await blobClient.download(0);
caseDownloaded =
caseDownloaded +
(await streamToBuffer(caseBlob.readableStreamBody)) +
",";
try {
//console.log("===========\nGetting : ", blobClient._name);
caseBlob = await blobClient.download(0);
caseDownloaded =
caseDownloaded +
(await streamToBuffer(caseBlob.readableStreamBody)) +
",";
} catch {
console.log("===========\nFAILED : ", blobClient._name);
}
}
caseDownloaded = caseDownloaded.substring(0, caseDownloaded.length - 1);
@@ -1136,7 +1310,20 @@ export const getAllProgressBlobs = async (containerName) => {
// "\n////////////////////////////"
// );
return blobObj;
function removeDuplicates(arr) {
const unique = arr.filter(
(value, index, self) =>
index ===
self.findIndex(
(t) => t.name === value.name // Change 'id' to the property you're checking for uniqueness
)
);
return unique;
}
const result = removeDuplicates(blobObj);
return result;
};
export const getRepsBlobs = async (containerName) => {
@@ -1188,6 +1375,92 @@ export const getRepsBlobs = async (containerName) => {
return blobObj;
};
export const getRepsFilesBlobs = async (
containerName,
casefolderID,
filenamePrefix
) => {
const containerToken = await createContainerSas(containerName);
const sasUrl = `${STORAGE_PATH}/${containerName}?${containerToken}`;
const containerClient = new ContainerClient(sasUrl);
//conLog"getBlobs " + sasUrl);
//console.log(containerClient.listBlobsFlat());
const blobObj = [];
for await (const blob of containerClient.listBlobsFlat({
prefix: casefolderID + "/" + filenamePrefix + "/files/",
})) {
let blobDocumentType = blob.name
.split("/")[2]
.slice(0, blob.name.split("/")[2].indexOf("_"));
console.log(blob.name);
blobObj.push({
"name": blob.name.split("/")[3],
"path": blob.name,
"documentType": getDocumentTypeFromFilename(
blob.name.split("/")[3]
),
"versionId": blob.versionId,
"isCurrentVersion": blob.isCurrentVersion,
"contentLength": blob.properties.contentLength,
"filenameprefix": filenamePrefix,
"filepath":
"/api/file/downloadblob?container=" +
containerName +
"&casefolderID=" +
blob.name.split("/")[0] +
"/" +
blob.name.split("/")[1] +
"&blobname=" +
blob.name.split("/")[3],
"hashedfilepath": hashAPIPath(
"/api/file/downloadblob?container=" +
containerName +
"&casefolderID=" +
blob.name.split("/")[0] +
"/" +
blob.name.split("/")[1] +
"&blobname=" +
blob.name
),
"deletepath":
"/api/file/deleteblob?container=" +
containerName +
"&casefolderID=" +
blob.name.split("/")[0] +
"/" +
blob.name.split("/")[1] +
"&blobname=" +
blob.name.split("/")[3],
"hasheddeletepath": hashAPIPath(
"/api/file/deleteblob?container=" +
containerName +
"&casefolderID=" +
blob.name.split("/")[0] +
"/" +
blob.name.split("/")[1] +
"&blobname=" +
blob.name.split("/")[3]
),
"hashgetblobs": hashAPIPath(
"/api/file/getbloblist?container=" +
containerName +
"&casefolderID=" +
blob.name.split("/")[0] +
"/" +
blob.name.split("/")[1]
),
});
}
//console.log("blobObj:", blobObj);
return blobObj;
};
export const createQueueSas = async (queueName) => {
// Get environment variables
const account = process.env.AZURE_STORAGE_ACCOUNT_NAME;
+263 -71
View File
@@ -301,6 +301,18 @@ export const getBasicDNSURLSearch = (searchString) => {
});
};
export const getSIPSEvents = async (caseid) => {
return axios
.get(BASE_URL + "/api/endpoint/getsipsevents_api?caseid=" + caseid)
.then((res) => {
return res.data;
})
.catch((error) => {
consoleLogger(error);
return error.response;
});
};
export const getAddressSearchPaged = (
searchString,
pageNumber,
@@ -377,7 +389,7 @@ export const getDNSCoords = () => {
});
};
export const getDNSList = (searchString) => {
export const getDNSList = async (searchString) => {
return axios
.get(BASE_URL + "/api/endpoint/getdnslist_api")
.then((res) => res.data)
@@ -474,7 +486,7 @@ export const getAdvancedSearchPaged = (
});
};
export const getBasicSearchDetails = (
export const getBasicSearchDetails = async (
appealTypeName,
caseReference,
primaryIdAttribute,
@@ -528,7 +540,7 @@ export const getBasicPartSavedDetails = (
});
};
export const getBasicSearchDetailsPaged = (
export const getBasicSearchDetailsPaged = async (
appealTypeName,
caseReference,
primaryIdAttribute,
@@ -634,6 +646,22 @@ export const getAppealsTypes = () => {
});
};
export const getProjectTypes = () => {
return axios
.get(BASE_URL + "/api/endpoint/getprojecttypes_api")
.then((res) => res.data)
.catch((error) => {
consoleLogger(error);
let ErrResponse = {
value: [],
errorCode: error.response.status,
errorMsg: error.response.statusText,
};
return ErrResponse;
});
};
export const getAppealsTypesForNewAppeal = () => {
return axios
.get(BASE_URL + "/api/endpoint/getappealtypesfornewappeal_api")
@@ -813,8 +841,7 @@ export const getMyRepresentations = (loggedInUserId) => {
export const getMyRepresentationsProxy = (loggedInUserId) => {
return axios
.get(
BASE_URL +
"/api/endpoint/getmyrepresentationsproxy_api?loggedInUserId=" +
"/api/endpoint/getmyrepresentationsproxy_api?loggedInUserId=" +
loggedInUserId
)
.then((res) => res.data)
@@ -835,9 +862,7 @@ export const getRepresentations = (incidentID) => {
export const getRepresentationsProxy = (incidentID) => {
return axios
.get(
BASE_URL +
"/api/endpoint/getrepresentationsproxy_api?incidentID=" +
incidentID
"/api/endpoint/getrepresentationsproxy_api?incidentID=" + incidentID
)
.then((res) => res.data)
.catch((error) => {
@@ -873,8 +898,7 @@ export const getWatchedCasesProxy = (loggedInUserId) => {
export const getAwaitingSubmissionProxy = (loggedInUserId) => {
return axios
.get(
BASE_URL +
"/api/endpoint/getawaitingsubmissionproxy_api?loggedInUserId=" +
"/api/endpoint/getawaitingsubmissionproxy_api?loggedInUserId=" +
loggedInUserId
)
.then((res) => res.data)
@@ -961,7 +985,7 @@ export const getRepsFromBlob = (containerName) => {
});
};
export const getRepsFromBlobProxy = (containerName) => {
export const getRepsFromBlobProxy = async (containerName) => {
//console.log(
// "///////////////////////getRepsFromBlobProxy: " + containerName,
// "/api/file/getawaitingsubmissionfromblobproxy?container=" +
@@ -969,8 +993,8 @@ export const getRepsFromBlobProxy = (containerName) => {
// "\n///////////////////////\n"
// );
return axios
.get(
try {
const res = await axios.get(
// BASE_URL +
"/api/file/getrepsblobproxy?container=" + containerName
// +
@@ -978,16 +1002,14 @@ export const getRepsFromBlobProxy = (containerName) => {
// "/api/file/getawaitingsubmissionfromblob?container=" +
// containerName
// )
)
.then((res) => {
return res.data;
})
.catch((error) => {
consoleLogger(error);
});
);
return res.data;
} catch (error) {
consoleLogger(error);
}
};
export const getAwaitingSubmissionFromBlobProxy = (containerName) => {
export const getAwaitingSubmissionFromBlobProxy = async (containerName) => {
console.log(
"///////////////////////getAwaitingSubmissionFromBlobProxy: " +
containerName,
@@ -996,26 +1018,24 @@ export const getAwaitingSubmissionFromBlobProxy = (containerName) => {
"\n///////////////////////\n"
);
return axios
.get(
// BASE_URL +
"/api/file/getawaitingsubmissionfromblobproxy?container=" +
try {
const res = await axios.get(
BASE_URL +
"/api/file/getawaitingsubmissionfromblobproxy?container=" +
containerName
// +
// hashAPIPath(
// "/api/file/getawaitingsubmissionfromblob?container=" +
// containerName
// )
)
.then((res) => {
return res.data;
})
.catch((error) => {
consoleLogger(error);
});
);
return res.data;
} catch (error) {
consoleLogger(error);
}
};
export const getPortalModuleDetails = (appealType, caseReference) => {
export const getPortalModuleDetails = async (appealType, caseReference) => {
//console.log(
// BASE_URL +
// "/api/endpoint/getportalmoduledetails_api?appealType=" +
@@ -1023,18 +1043,38 @@ export const getPortalModuleDetails = (appealType, caseReference) => {
// "&caseReference=" +
// encodeURI(caseReference)
// );
return axios
.get(
// return axios
// .get(
// BASE_URL +
// "/api/endpoint/getportalmoduledetails_api?appealType=" +
// appealType +
// "&caseReference=" +
// encodeURI(caseReference)
// )
// .then((res) => res.data)
// .catch((error) => {
// console.log("error case ref:", caseReference);
// consoleLogger(error);
// });
var config = {
method: "get",
url:
BASE_URL +
"/api/endpoint/getportalmoduledetails_api?appealType=" +
appealType +
"&caseReference=" +
encodeURI(caseReference)
)
.then((res) => res.data)
.catch((error) => {
consoleLogger(error);
});
"/api/endpoint/getportalmoduledetails_api?appealType=" +
appealType +
"&caseReference=" +
encodeURI(caseReference),
};
try {
const res = await axios(config);
return res.data;
} catch (error) {
console.log("error case ref:", caseReference);
consoleLogger(error);
}
};
export const getPortalModuleDetailsProxy = (appealType, caseReference) => {
@@ -1083,8 +1123,11 @@ export const updatePassword = (contactId, newpassword) => {
});
};
export const updateAccount = async (contactId, updateBody) => {
var queryUrl = "/api/endpoint/updateaccount_api?contactId=" + contactId;
export const updateAccount = async (contactId, updateBody, ssr) => {
var queryUrl =
(ssr ? BASE_URL : "") +
"/api/endpoint/updateaccount_api?contactId=" +
contactId;
var data = updateBody;
var config = {
method: "post",
@@ -1097,6 +1140,7 @@ export const updateAccount = async (contactId, updateBody) => {
})
.catch((error) => {
//console.log("this error:", error);
consoleLogger(error);
});
};
@@ -1417,9 +1461,10 @@ export const deleteMyRepresentationsFromBlob = (
export const deleteWatchedCases = (watchedCaseID) => {
var queryUrl =
"/api/endpoint/deletewatchedcases_api?watchedCaseID=" + watchedCaseID;
"/api/endpoint/deletewatchedcasesproxy_api?watchedCaseID=" +
watchedCaseID;
var config = {
method: "delete",
method: "get",
url: queryUrl,
};
@@ -1495,6 +1540,44 @@ export const uploadFiles = async (
}
};
export const uploadSingleFile = async (filesObj, containerID, casefolderID) => {
let files = filesObj;
//console.log(formValues);
var formData = new FormData();
formData.append("containerID", containerID);
formData.append("casefolderID", casefolderID);
// files.forEach((file) => formData.append("files", file));
for (let i = 0; i < files.length; i++) {
console.log(files.length);
// for (let j = 0; j < files[i].length; j++) {
// console.log("upload files:", files[i][j].name);
formData.append(files[i].name, files[i]);
// }
}
//console.log(formData);
var queryUrl = "/api/file/uploadsinglefile";
const config = {
method: "post",
url: queryUrl,
data: formData,
headers: { "content-type": "multipart/form-data" },
};
//console.log(config);
try {
const res = await axios(config);
return res.data;
} catch (error) {
consoleLogger(error);
}
};
export const uploadRepFiles = async (
formValues,
filesObj,
@@ -1512,12 +1595,12 @@ export const uploadRepFiles = async (
// files.forEach((file) => formData.append("files", file));
for (let i = 0; i < files.length; i++) {
for (let j = 0; j < files[i].length; j++) {
//console.log("upload rep files:", files[i][j].name);
formData.append(files[i][j].name, files[i][j]);
}
}
// for (let i = 0; i < files.length; i++) {
// for (let j = 0; j < files[i].length; j++) {
// //console.log("upload rep files:", files[i][j].name);
// formData.append(files[i][j].name, files[i][j]);
// }
// }
//console.log(formData);
@@ -1646,6 +1729,24 @@ export const getFilesFromBlob = (containerName, casefolderID) => {
});
};
export const getFilesFromBlobproxy = (containerName, casefolderID) => {
return axios
.get(
// BASE_URL +
"/api/file/getbloblistproxy?container=" +
containerName +
"&casefolderID=" +
casefolderID
)
.then((res) => {
//console.log("//////////----", res.data);
return res.data;
})
.catch((error) => {
consoleLogger(error);
});
};
export const getFilesFromBlobHashed = (
containerName,
getblobshash,
@@ -1690,6 +1791,31 @@ export const deleteBlob = async (
}
};
export const deleteRepBlob = async (
containerName,
blobName,
deleteblobhash,
casefolderID,
filenamePrefix
) => {
try {
const res = await axios.get(
"/api/file/deleteblob?container=" +
containerName +
"&casefolderID=" +
casefolderID +
"/" +
filenamePrefix +
"&blobname=" +
blobName +
deleteblobhash
);
return res.data;
} catch (error) {
consoleLogger(error);
}
};
export const downloadBlob = (containerName, blobName) => {
return axios
.get(
@@ -1771,22 +1897,30 @@ export const sendEmail = async (
// personalisation,
// reference
// );
var queryUrl = "/api/email/notify";
// var queryUrl = "/api/email/notify";
var config = {
method: "post",
url: queryUrl,
data: mailData,
};
// var config = {
// method: "post",
// url: queryUrl,
// data: mailData,
// };
return axios(config)
.then((res) => {
//console.log("posted ", res.data);
return res.data;
})
.catch((error) => {
consoleLogger(error);
});
// return axios(config)
// .then((res) => {
// //console.log("posted ", res.data);
// return res.data;
// })
// .catch((error) => {
// consoleLogger(error);
// });
try {
const response = await axios.post("/api/email/notify", mailData);
return response.data;
} catch (error) {
consoleLogger(error); // Optional custom logging
throw error; // ✅ Ensure the calling function sees the error
}
};
export const getNotice = () => {
@@ -1820,7 +1954,7 @@ export const getPortalLoginProxy = async (emailAddress) => {
"/api/endpoint/getportalloginproxy_api?emailAddress=" + emailAddress;
return axios
.get(BASE_URL + queryUrl)
.get(queryUrl)
.then((res) => res.data)
.catch((error) => {
consoleLogger(error);
@@ -1845,12 +1979,18 @@ export const createContainerProxy = (containerName) => {
});
};
export const sendCaseCompleteMessage = async (containerID, caseReference) => {
export const sendCaseCompleteMessage = async (
containerID,
caseReference,
inv
) => {
var queryUrl =
"/api/file/createappealcompletemessage_api?container=" +
containerID +
"&tempcaseref=" +
caseReference;
caseReference +
"&inv=" +
inv;
var config = {
method: "get",
@@ -1942,6 +2082,24 @@ export const setRepInvolvment = async (caseid, contactid) => {
}
};
export const setCaseInvolvment = async (caseid, contactid) => {
var queryUrl = "/api/file/createrepinvolvement_api";
var data = { "incidentid": caseid, "contactid": contactid };
var config = {
method: "post",
url: queryUrl,
data: data,
};
try {
const res = await axios(config);
return res.data;
} catch (error) {
consoleLogger(error);
}
};
export const getAddressSearch = async (searchString) => {
const params = new URLSearchParams(searchString);
const str = params.toString();
@@ -1968,3 +2126,37 @@ export const getAddressSearch = async (searchString) => {
return ErrResponse;
});
};
export const createCRMTask = async (formValues) => {
var queryUrl = "/api/endpoint/createcrmtask_api";
var data = formValues;
var config = {
method: "post",
url: queryUrl,
data: data,
};
try {
const res = await axios(config);
return res.data;
} catch (error) {
consoleLogger(error);
}
};
export const getPreferredLanguage = async (email) => {
return axios
.get(
BASE_URL +
"/api/endpoint/getpreferredlanguage_api?emailAddress=" +
email
)
.then((res) => {
return res.data;
})
.catch((error) => {
consoleLogger(error);
return error.response;
});
};
+33 -22
View File
@@ -1,53 +1,58 @@
export const getSelectQuery = (appealTypeName) => {
switch (appealTypeName) {
case "pinswg_advertses":
return "&$select=pinswg_speacialistcaseprocess,modifiedon,_pinswg_appellant_value,pinswg_name,pinswg_siteaddresscounty,pinswg_siteaddressline1,pinswg_siteaddressline2,pinswg_siteaddresspostcode,pinswg_siteaddresstown,_pinswg_associatedlpa_value,pinswg_casedecisiondate,pinswg_dateeventrequested,pinswg_decision,pinswg_procedure,pinswg_questionnaireduedate,statuscode,pinswg_startdateoftheevent,pinswg_typeofevent,pinswg_startdate,pinswg_otherpartiesstatement,pinswg_finalcommentsduedate,pinswg_proofsofevidencewrittenstatementsofeviden,pinswg_speacialistcaseprocess,pinswg_statementduedate";
return "&$select=pinswg_detailedeiascreeningrequired,pinswg_speacialistcaseprocess,modifiedon,_pinswg_appellant_value,pinswg_name,pinswg_siteaddresscounty,pinswg_siteaddressline1,pinswg_siteaddressline2,pinswg_siteaddresspostcode,pinswg_siteaddresstown,_pinswg_associatedlpa_value,pinswg_casedecisiondate,pinswg_dateeventrequested,pinswg_decision,pinswg_procedure,pinswg_questionnaireduedate,statuscode,pinswg_startdateoftheevent,pinswg_typeofevent,pinswg_startdate,pinswg_otherpartiesstatement,pinswg_finalcommentsduedate,pinswg_proofsofevidencewrittenstatementsofeviden,pinswg_speacialistcaseprocess,pinswg_statementduedate";
break;
case "pinswg_callinss77s":
return "&$select=modifiedon,_pinswg_appellant_value,pinswg_name,pinswg_siteaddresscounty,pinswg_siteaddressline1,pinswg_siteaddressline2,pinswg_siteaddresspostcode,pinswg_siteaddresstown,_pinswg_associatedlpa_value,pinswg_casedecisiondate,pinswg_dateeventrequested,pinswg_decision,pinswg_finalcommentsduedate,pinswg_procedure,pinswg_proofsofevidencewrittenstatementsofeviden,pinswg_questionnaireduedate,pinswg_startdate,statuscode,pinswg_dateexportedtoiss,pinswg_startdateofevent,pinswg_typeofevent";
return "&$select=pinswg_eiarequired,modifiedon,_pinswg_appellant_value,pinswg_name,pinswg_siteaddresscounty,pinswg_siteaddressline1,pinswg_siteaddressline2,pinswg_siteaddresspostcode,pinswg_siteaddresstown,_pinswg_associatedlpa_value,pinswg_casedecisiondate,pinswg_dateeventrequested,pinswg_decision,pinswg_finalcommentsduedate,pinswg_procedure,pinswg_proofsofevidencewrittenstatementsofeviden,pinswg_questionnaireduedate,pinswg_startdate,statuscode,pinswg_dateexportedtoiss,pinswg_startdateofevent,pinswg_typeofevent,pinswg_statementsduedate";
break;
case "pinswg_commonlands":
return "&$select=modifiedon,_pinswg_appellant_value,pinswg_name,pinswg_siteaddresscounty,pinswg_siteaddressline1,pinswg_siteaddressline2,pinswg_siteaddresspostcode,pinswg_siteaddresstown,_pinswg_associatedlpa_value,pinswg_casedecisiondate,pinswg_dateeventrequested,pinswg_decision,pinswg_finalcommentsduedate,pinswg_otherpartiesstatement,pinswg_procedure,pinswg_proofsofevidencewrittenstatementsofeviden,pinswg_questionnaireduedate,pinswg_relevantauthorityname,pinswg_startdate,statuscode,pinswg_starttimeoftheevent,pinswg_typeofevent,pinswg_statementsduedate";
return "&$select=pinswg_detailedeiascreeningrequired,modifiedon,_pinswg_appellant_value,pinswg_name,pinswg_siteaddresscounty,pinswg_siteaddressline1,pinswg_siteaddressline2,pinswg_siteaddresspostcode,pinswg_siteaddresstown,_pinswg_associatedlpa_value,pinswg_casedecisiondate,pinswg_dateeventrequested,pinswg_decision,pinswg_finalcommentsduedate,pinswg_otherpartiesstatement,pinswg_procedure,pinswg_proofsofevidencewrittenstatementsofeviden,pinswg_questionnaireduedate,pinswg_relevantauthorityname,pinswg_startdate,statuscode,pinswg_starttimeoftheevent,pinswg_typeofevent,pinswg_statementsduedate";
break;
case "pinswg_environmentalpermittings":
return "&$select=modifiedon,_pinswg_appellant_value,pinswg_name,pinswg_siteaddresscounty,pinswg_siteaddressline1,pinswg_siteaddressline2,pinswg_siteaddresspostcode,pinswg_siteaddresstown,_pinswg_associatedlpa_value,pinswg_casedecisiondate,pinswg_dateeventrequested,pinswg_decision,pinswg_finalcommentsduedate,pinswg_otherpartiesstatement,pinswg_procedure,pinswg_proofsofevidencewrittenstatementsofeviden,pinswg_questionnaireduedate,pinswg_relevantauthorityname,pinswg_startdate,statuscode,pinswg_startdateofevent,pinswg_typeofevent";
return "&$select=pinswg_detailedeiascreeningrequired,modifiedon,_pinswg_appellant_value,pinswg_name,pinswg_siteaddresscounty,pinswg_siteaddressline1,pinswg_siteaddressline2,pinswg_siteaddresspostcode,pinswg_siteaddresstown,_pinswg_associatedlpa_value,pinswg_casedecisiondate,pinswg_dateeventrequested,pinswg_decision,pinswg_finalcommentsduedate,pinswg_otherpartiesstatement,pinswg_procedure,pinswg_proofsofevidencewrittenstatementsofeviden,pinswg_questionnaireduedate,pinswg_relevantauthorityname,pinswg_startdate,statuscode,pinswg_startdateofevent,pinswg_typeofevent";
break;
case "pinswg_hedgeshedgerowstreepreservationreplacems":
return "&$select=pinswg_specialistcaseprocess,modifiedon,_pinswg_appellant_value,pinswg_name,pinswg_siteaddresscounty,pinswg_siteaddressline1,pinswg_siteaddressline2,pinswg_siteaddresspostcode,pinswg_siteaddresstown,_pinswg_associatedlpa_value,pinswg_casedecisiondate,pinswg_dateeventrequested,pinswg_decision,pinswg_finalcommentsduedate,pinswg_otherpartiesstatement,pinswg_procedure,pinswg_proofsofevidencewrittenstatementsofeviden,pinswg_questionnaireduedate,pinswg_relevantauthorityname,pinswg_startdate,statuscode,pinswg_startdateoftheevent,pinswg_typeofevent,pinswg_statementduedate,pinswg_specialistcaseprocess";
return "&$select=pinswg_detailedeiascreening,pinswg_specialistcaseprocess,modifiedon,_pinswg_appellant_value,pinswg_name,pinswg_siteaddresscounty,pinswg_siteaddressline1,pinswg_siteaddressline2,pinswg_siteaddresspostcode,pinswg_siteaddresstown,_pinswg_associatedlpa_value,pinswg_casedecisiondate,pinswg_dateeventrequested,pinswg_decision,pinswg_finalcommentsduedate,pinswg_otherpartiesstatement,pinswg_procedure,pinswg_proofsofevidencewrittenstatementsofeviden,pinswg_questionnaireduedate,pinswg_relevantauthorityname,pinswg_startdate,statuscode,pinswg_startdateoftheevent,pinswg_typeofevent,pinswg_statementduedate,pinswg_specialistcaseprocess";
break;
case "pinswg_miscellaneouscaseworks":
return "&$select=pinswg_eiarequired,modifiedon,_pinswg_appellant_value,pinswg_name,pinswg_siteaddresscounty,pinswg_siteaddressline1,pinswg_siteaddressline2,pinswg_siteaddresspostcode,pinswg_siteaddresstown,_pinswg_associatedlpa_value,pinswg_casedecisiondate,pinswg_dateeventrequested,pinswg_decision,pinswg_finalcommentsduedate,pinswg_otherpartiesstatement,pinswg_procedure,pinswg_proofsofevidencewrittenstatementsofeviden,pinswg_questionnaireduedate,pinswg_relevantauthorityname,pinswg_startdate,statuscode,pinswg_startdateoftheevent,pinswg_typeofevent,pinswg_statementduedate";
break;
case "pinswg_wayleaves":
return "&$select=modifiedon,_pinswg_appellant_value,pinswg_name,pinswg_siteaddresscounty,pinswg_siteaddressline1,pinswg_siteaddressline2,pinswg_siteaddresspostcode,pinswg_siteaddresstown,_pinswg_associatedlpa_value,pinswg_casedecisiondate,pinswg_dateeventrequested,pinswg_decision,pinswg_finalcommentsduedate,pinswg_otherpartiesstatement,pinswg_procedure,pinswg_proofsofevidencewrittenstatementsofeviden,pinswg_questionnaireduedate,pinswg_relevantauthorityname,pinswg_startdate,statuscode,pinswg_startdateoftheevent,pinswg_typeofevent,pinswg_statementduedate";
return "&$select=pinswg_detailedeiascreening,modifiedon,_pinswg_appellant_value,pinswg_name,pinswg_siteaddresscounty,pinswg_siteaddressline1,pinswg_siteaddressline2,pinswg_siteaddresspostcode,pinswg_siteaddresstown,_pinswg_associatedlpa_value,pinswg_casedecisiondate,pinswg_dateeventrequested,pinswg_decision,pinswg_finalcommentsduedate,pinswg_otherpartiesstatement,pinswg_procedure,pinswg_proofsofevidencewrittenstatementsofeviden,pinswg_questionnaireduedate,pinswg_relevantauthorityname,pinswg_startdate,statuscode,pinswg_startdateoftheevent,pinswg_typeofevent,pinswg_statementduedate";
break;
case "pinswg_communityinfrastructurelevys117118119s":
return "&$select=modifiedon,_pinswg_appellant_value,pinswg_name,pinswg_siteaddresscounty,pinswg_siteaddressline1,pinswg_siteaddressline2,pinswg_siteaddresspostcode,pinswg_siteaddresstown,_pinswg_associatedlpa_value,pinswg_casedecisiondate,pinswg_dateeventrequested,pinswg_decision,pinswg_finalcommentsduedate,pinswg_procedure,pinswg_startdate,statuscode,pinswg_startdateoftheevent,pinswg_typeofevent";
return "&$select=pinswg_detailedeiascreeningrequired,modifiedon,_pinswg_appellant_value,pinswg_name,pinswg_siteaddresscounty,pinswg_siteaddressline1,pinswg_siteaddressline2,pinswg_siteaddresspostcode,pinswg_siteaddresstown,_pinswg_associatedlpa_value,pinswg_casedecisiondate,pinswg_dateeventrequested,pinswg_decision,pinswg_finalcommentsduedate,pinswg_procedure,pinswg_startdate,statuscode,pinswg_startdateoftheevent,pinswg_typeofevent,pinswg_questionnaireduedate,pinswg_statementduedate";
break;
case "pinswg_compulsorypurchaseorderses":
return "&$select=modifiedon,_pinswg_appellant_value,pinswg_name,pinswg_siteaddresscounty,pinswg_siteaddressline1,pinswg_siteaddressline2,pinswg_siteaddresspostcode,pinswg_siteaddresstown,pinswg_casedecisiondate,pinswg_dateeventrequested,pinswg_decision,pinswg_finalcommentsduedate,pinswg_otherpartiesstatement,pinswg_procedure,pinswg_proofsofevidencewrittenstatementsofeviden,pinswg_questionnaireduedate,pinswg_relevantauthorityname,pinswg_startdate,statuscode,pinswg_startdateoftheevent,pinswg_typeofevent,pinswg_statementduedate";
return "&$select=pinswg_detailedeiascreening,modifiedon,_pinswg_appellant_value,pinswg_name,pinswg_siteaddresscounty,pinswg_siteaddressline1,pinswg_siteaddressline2,pinswg_siteaddresspostcode,pinswg_siteaddresstown,pinswg_casedecisiondate,pinswg_dateeventrequested,pinswg_decision,pinswg_finalcommentsduedate,pinswg_otherpartiesstatement,pinswg_procedure,pinswg_proofsofevidencewrittenstatementsofeviden,pinswg_questionnaireduedate,pinswg_relevantauthorityname,pinswg_startdate,statuscode,pinswg_startdateoftheevent,pinswg_typeofevent,pinswg_statementduedate";
break;
case "pinswg_dnses":
return "&$select=pinswg_anticipatedgridreferenceeastingtext,pinswg_anticipatedgridreferencenorthingtext,_pinswg_appellant_value,pinswg_name,pinswg_addressline1,pinswg_addressline2,pinswg_postcode,pinswg_addresstown,_pinswg_associatedlpa_value,pinswg_addresscounty,pinswg_applicationacceptedasvalid,pinswg_applicationrejectedasinvalid,pinswg_choiceofprocedure,pinswg_confirmrequesttovaryapplication,pinswg_dateeventrequested,pinswg_dateofdecision,pinswg_dateofrequesttovarytheapplication,pinswg_dateofsubmissionofapplication,pinswg_dateprojectpublishedonwebsite,pinswg_deadlineforsubmissionofapplication,pinswg_decision,pinswg_endofrepresentationperiod,pinswg_inspectorreportsubmittedtowelshgovernment,pinswg_procedureconfirmed,pinswg_projectdescription,pinswg_projectlocation,pinswg_recommendation,pinswg_rejectrequesttovaryapplication,pinswg_reportdueby,pinswg_suspensiondates,pinswg_suspensionenddates,pinswg_suspensionstartdates,pinswg_validnoticeofintentiontosubmitanapplicati,pinswg_webaddress,pinswg_withdrawndate,pinswg_writtenacceptanceofnotification,statuscode,pinswg_casestage,_pinswg_dnsids_value,pinswg_startdateofevent,pinswg_typeofevent";
return "&$select=pinswg_eiarequired,pinswg_anticipatedgridreferenceeastingtext,pinswg_anticipatedgridreferencenorthingtext,_pinswg_appellant_value,pinswg_name,pinswg_addressline1,pinswg_addressline2,pinswg_postcode,pinswg_addresstown,_pinswg_associatedlpa_value,pinswg_addresscounty,pinswg_applicationacceptedasvalid,pinswg_applicationrejectedasinvalid,pinswg_choiceofprocedure,pinswg_confirmrequesttovaryapplication,pinswg_dateeventrequested,pinswg_dateofdecision,pinswg_dateofrequesttovarytheapplication,pinswg_dateofsubmissionofapplication,pinswg_dateprojectpublishedonwebsite,pinswg_deadlineforsubmissionofapplication,pinswg_decision,pinswg_endofrepresentationperiod,pinswg_inspectorreportsubmittedtowelshgovernment,pinswg_procedureconfirmed,pinswg_projectdescription,pinswg_projectlocation,pinswg_recommendation,pinswg_rejectrequesttovaryapplication,pinswg_reportdueby,pinswg_suspensiondates,pinswg_suspensionenddates,pinswg_suspensionstartdates,pinswg_validnoticeofintentiontosubmitanapplicati,pinswg_webaddress,pinswg_withdrawndate,pinswg_writtenacceptanceofnotification,statuscode,pinswg_casestage,_pinswg_dnsids_value,pinswg_startdateofevent,pinswg_typeofevent";
break;
case "pinswg_electricityacts":
return "&$select=modifiedon,_pinswg_appellant_value,pinswg_name,pinswg_addressline1,pinswg_addressline2,pinswg_postcode,pinswg_addresstown,_pinswg_associatedlpa_value,pinswg_applicationacceptedasvalid,pinswg_applicationrejectedasinvalid,pinswg_confirmrequesttovaryapplication,pinswg_dateeventrequested,pinswg_dateofrequesttovarytheapplication,pinswg_dateofsubmissionofapplication,pinswg_dateprojectpublishedonwebsite,pinswg_deadlineforsubmissionofapplication,pinswg_decision,pinswg_endofrepresentationperiod,pinswg_inspectorreportsubmittedtowelshgovernment,pinswg_procedureconfirmed,pinswg_projectlocation,pinswg_recommendation,pinswg_rejectrequesttovaryapplication,pinswg_reportdueby,pinswg_suspensiondates,pinswg_validnoticeofintentiontosubmitanapplicati,pinswg_webaddress,pinswg_withdrawndate,pinswg_writtenacceptanceofnotification,statuscode,pinswg_startdateofevent,pinswg_typeofevent";
return "&$select=pinswg_eiarequired,modifiedon,_pinswg_appellant_value,pinswg_name,pinswg_addressline1,pinswg_addressline2,pinswg_postcode,pinswg_addresstown,_pinswg_associatedlpa_value,pinswg_applicationacceptedasvalid,pinswg_applicationrejectedasinvalid,pinswg_confirmrequesttovaryapplication,pinswg_dateeventrequested,pinswg_dateofrequesttovarytheapplication,pinswg_dateofsubmissionofapplication,pinswg_dateprojectpublishedonwebsite,pinswg_deadlineforsubmissionofapplication,pinswg_decision,pinswg_endofrepresentationperiod,pinswg_inspectorreportsubmittedtowelshgovernment,pinswg_procedureconfirmed,pinswg_projectlocation,pinswg_recommendation,pinswg_rejectrequesttovaryapplication,pinswg_reportdueby,pinswg_suspensiondates,pinswg_validnoticeofintentiontosubmitanapplicati,pinswg_webaddress,pinswg_withdrawndate,pinswg_writtenacceptanceofnotification,statuscode,pinswg_startdateofevent,pinswg_typeofevent";
break;
case "pinswg_harbourrevisionorders":
return "&$select=pinswg_eiarequired,pinswg_anticipatedgridreferenceeastingtext,pinswg_anticipatedgridreferencenorthingtext,_pinswg_appellant_value,pinswg_name,pinswg_addressline1,pinswg_addressline2,pinswg_postcode,pinswg_addresstown,_pinswg_associatedlpa_value,pinswg_addresscounty,pinswg_applicationacceptedasvalid,pinswg_applicationrejectedasinvalid,pinswg_choiceofprocedure,pinswg_confirmrequesttovaryapplication,pinswg_dateeventrequested,pinswg_dateofdecision,pinswg_dateofrequesttovarytheapplication,pinswg_dateofsubmissionofapplication,pinswg_dateprojectpublishedonwebsite,pinswg_deadlineforsubmissionofapplication,pinswg_decision,pinswg_endofrepresentationperiod,pinswg_inspectorreportsubmittedtowelshgovernment,pinswg_procedureconfirmed,pinswg_projectdiscription,pinswg_projectlocation,pinswg_recommendation,pinswg_rejectrequesttovaryapplication,pinswg_reportdueby,pinswg_suspensiondates,pinswg_suspensionenddates,pinswg_suspensionstartdate,pinswg_validnoticeofintentiontosubmitanapplicati,pinswg_webaddress,pinswg_withdrawndate,pinswg_writtenacceptanceofnotification,statuscode,pinswg_casestage,pinswg_startdateofevent,pinswg_typeofevent";
break;
case "pinswg_householderappealhases":
return "&$select=modifiedon,_pinswg_appellant_value,pinswg_name,pinswg_siteaddressline1,pinswg_siteaddressline2,pinswg_siteaddresspostcode,pinswg_siteaddresstown,_pinswg_associatedlpa_value,pinswg_casedecisiondate,pinswg_dateeventrequested,pinswg_decision,pinswg_finalcommentsduedate,pinswg_otherpartiesstmt,pinswg_procedure,pinswg_questionnaireduedate,pinswg_startdate,pinswg_statementduedate,statuscode";
return "&$select=pinswg_eiarequired,modifiedon,_pinswg_appellant_value,pinswg_name,pinswg_siteaddressline1,pinswg_siteaddressline2,pinswg_siteaddresspostcode,pinswg_siteaddresstown,_pinswg_associatedlpa_value,pinswg_casedecisiondate,pinswg_dateeventrequested,pinswg_decision,pinswg_finalcommentsduedate,pinswg_otherpartiesstmt,pinswg_procedure,pinswg_questionnaireduedate,pinswg_startdate,pinswg_statementduedate,statuscode";
break;
case "pinswg_enforcementnoticeappeals174s":
return "&$select=modifiedon,_pinswg_appellant_value,pinswg_name,pinswg_siteaddressline1,pinswg_siteaddressline2,pinswg_siteaddresspostcode,pinswg_siteaddresstown,_pinswg_associatedlpa_value,pinswg_casedecisiondate,pinswg_dateeventrequested,pinswg_decision,pinswg_finalcommentsduedate,pinswg_otherpartiesstatement,pinswg_procedure,pinswg_questionnaireduedate,pinswg_startdate,pinswg_statementduedate,statuscode,pinswg_startdateoftheevent,pinswg_typeofevent";
return "&$select=pinswg_eiarequired,modifiedon,_pinswg_appellant_value,pinswg_name,pinswg_siteaddressline1,pinswg_siteaddressline2,pinswg_siteaddresspostcode,pinswg_siteaddresstown,_pinswg_associatedlpa_value,pinswg_casedecisiondate,pinswg_dateeventrequested,pinswg_decision,pinswg_finalcommentsduedate,pinswg_otherpartiesstatement,pinswg_procedure,pinswg_questionnaireduedate,pinswg_startdate,pinswg_statementduedate,statuscode,pinswg_startdateoftheevent,pinswg_typeofevent";
break;
case "pinswg_enforcementlistedbuildingconservationaps":
return "&$select=modifiedon,_pinswg_appellant_value,pinswg_name,pinswg_siteaddressline1,pinswg_siteaddressline2,pinswg_siteaddresspostcode,pinswg_siteaddresstown,_pinswg_associatedlpa_value,pinswg_casedecisiondate,pinswg_dateeventrequested,pinswg_decision,pinswg_finalcommentsduedate,pinswg_otherpartiesstatements,pinswg_procedure,pinswg_questionnaireduedate,pinswg_startdates,pinswg_statementduedate,statuscode,pinswg_startdateofevent,pinswg_typeofevent";
return "&$select=pinswg_detailedeiascreeningrequired,modifiedon,_pinswg_appellant_value,pinswg_name,pinswg_siteaddressline1,pinswg_siteaddressline2,pinswg_siteaddresspostcode,pinswg_siteaddresstown,_pinswg_associatedlpa_value,pinswg_casedecisiondate,pinswg_dateeventrequested,pinswg_decision,pinswg_finalcommentsduedate,pinswg_otherpartiesstatements,pinswg_procedure,pinswg_questionnaireduedate,pinswg_startdates,pinswg_statementduedate,statuscode,pinswg_startdateofevent,pinswg_typeofevent";
break;
case "pinswg_maintenanceoflands217s":
return "&$select=modifiedon,_pinswg_appellant_value,pinswg_name,pinswg_siteaddressline1,pinswg_siteaddressline2,pinswg_siteaddresspostcode,pinswg_siteaddresstown,_pinswg_associatedlpa_value,pinswg_casedecisiondate,pinswg_dateeventrequested,pinswg_decision,pinswg_finalcommentsduedate,pinswg_otherpartiesstatement,pinswg_procedure,pinswg_questionnaireduedate,pinswg_startdates,pinswg_statementduedate,statuscode,pinswg_startdateoftheevent,pinswg_typeofevent";
return "&$select=pinswg_detailedeiascreeningrequired,modifiedon,_pinswg_appellant_value,pinswg_name,pinswg_siteaddressline1,pinswg_siteaddressline2,pinswg_siteaddresspostcode,pinswg_siteaddresstown,_pinswg_associatedlpa_value,pinswg_casedecisiondate,pinswg_dateeventrequested,pinswg_decision,pinswg_finalcommentsduedate,pinswg_otherpartiesstatement,pinswg_procedure,pinswg_questionnaireduedate,pinswg_startdates,pinswg_statementduedate,statuscode,pinswg_startdateoftheevent,pinswg_typeofevent";
break;
case "pinswg_lawfuldevelopmentcertificates":
return "&$select=modifiedon,_pinswg_appellant_value,pinswg_name,pinswg_siteaddressline1,pinswg_siteaddressline2,pinswg_siteaddresspostcode,pinswg_siteaddresstown,_pinswg_associatedlpa_value,pinswg_casedecisiondate,pinswg_dateeventrequested,pinswg_decision,pinswg_finalcommentsduedate,pinswg_otherpartiesstatements,pinswg_procedure,pinswg_questionnaireduedate,pinswg_startdate,pinswg_statementduedate,statuscode,pinswg_startdateoftheevent,pinswg_typeofevent";
return "&$select=pinswg_detailedeiascreeningrequiered,modifiedon,_pinswg_appellant_value,pinswg_name,pinswg_siteaddressline1,pinswg_siteaddressline2,pinswg_siteaddresspostcode,pinswg_siteaddresstown,_pinswg_associatedlpa_value,pinswg_casedecisiondate,pinswg_dateeventrequested,pinswg_decision,pinswg_finalcommentsduedate,pinswg_otherpartiesstatements,pinswg_procedure,pinswg_questionnaireduedate,pinswg_startdate,pinswg_statementduedate,statuscode,pinswg_startdateoftheevent,pinswg_typeofevent";
break;
case "pinswg_listedbuildingandconservationareaconsens":
return "&$select=modifiedon,_pinswg_appellant_value,pinswg_name,pinswg_siteaddressline1,pinswg_siteaddressline2,pinswg_sitepostcode,pinswg_siteaddresstown,_pinswg_associatedlpa_value,pinswg_casedecisiondate,pinswg_dateeventrequested,pinswg_decision,pinswg_finalcommentsduedate,pinswg_otherpartiesstatement,pinswg_procedure,pinswg_questionnaireduedate,pinswg_startdate,pinswg_statementduedate,statuscode,pinswg_starttimeofevent,pinswg_typeofevent";
return "&$select=pinswg_detailedeiascreeningrequiered,modifiedon,_pinswg_appellant_value,pinswg_name,pinswg_siteaddressline1,pinswg_siteaddressline2,pinswg_sitepostcode,pinswg_siteaddresstown,_pinswg_associatedlpa_value,pinswg_casedecisiondate,pinswg_dateeventrequested,pinswg_decision,pinswg_finalcommentsduedate,pinswg_otherpartiesstatement,pinswg_procedure,pinswg_questionnaireduedate,pinswg_startdate,pinswg_statementduedate,statuscode,pinswg_starttimeofevent,pinswg_typeofevent";
break;
case "pinswg_planningappeals78s":
//console.log(
@@ -55,24 +60,30 @@ export const getSelectQuery = (appealTypeName) => {
// process.env.RELAYPATH == "test-pedw-hc"
// );
return process.env.RELAYPATH == "dev-pedw-hc"
? "&$select=modifiedon,_pinswg_appellant_value,pinswg_name,pinswg_siteaddressline1,pinswg_siteaddressline2,pinswg_siteaddresspostcode,pinswg_siteaddresstown,_pinswg_localplanningauthority_value,pinswg_casedecisiondate,pinswg_dicision,pinswg_dateeventrequested,pinswg_finalcommentsduedate,pinswg_procedure,pinswg_questionnaireduedate,pinswg_startdate,pinswg_statementduedate,statuscode,pinswg_startdatetimeiftheevent,pinswg_representation_period_end_date,pinswg_extend_representation_date,pinswg_typeofevent"
: "&$select=modifiedon,_pinswg_appellant_value,pinswg_name,pinswg_siteaddressline1,pinswg_siteaddressline2,pinswg_siteaddresspostcode,pinswg_siteaddresstown,_pinswg_localplanningauthority_value,pinswg_casedecisiondate,pinswg_dicision,pinswg_dateeventrequested,pinswg_finalcommentsduedate,pinswg_procedure,pinswg_questionnaireduedate,pinswg_startdate,pinswg_statementduedate,statuscode,pinswg_startdatetimeiftheevent,pinswg_typeofevent";
? "&$select=pinswg_eiarequired,modifiedon,_pinswg_appellant_value,pinswg_name,pinswg_siteaddressline1,pinswg_siteaddressline2,pinswg_siteaddresspostcode,pinswg_siteaddresstown,_pinswg_localplanningauthority_value,pinswg_casedecisiondate,pinswg_dicision,pinswg_dateeventrequested,pinswg_finalcommentsduedate,pinswg_procedure,pinswg_questionnaireduedate,pinswg_startdate,pinswg_statementduedate,statuscode,pinswg_startdatetimeiftheevent,pinswg_representation_period_end_date,pinswg_extend_representation_date,pinswg_typeofevent"
: "&$select=pinswg_eiarequired,modifiedon,_pinswg_appellant_value,pinswg_name,pinswg_siteaddressline1,pinswg_siteaddressline2,pinswg_siteaddresspostcode,pinswg_siteaddresstown,_pinswg_localplanningauthority_value,pinswg_casedecisiondate,pinswg_dicision,pinswg_dateeventrequested,pinswg_finalcommentsduedate,pinswg_procedure,pinswg_questionnaireduedate,pinswg_startdate,pinswg_statementduedate,statuscode,pinswg_startdatetimeiftheevent,pinswg_typeofevent";
break;
case "pinswg_planningconditionss73s79s":
return "&$select=modifiedon,_pinswg_appellant_value,pinswg_name,pinswg_siteaddressline1,pinswg_siteaddressline2,pinswg_siteaddresspostcode,pinswg_siteaddresstown,_pinswg_associatedlpa_value,pinswg_casedecisiondate,pinswg_dateeventrequested,pinswg_decision,pinswg_finalcommentsduedate,pinswg_otherpartiesstatement,pinswg_procedure,pinswg_questionnaireduedate,pinswg_startdate,pinswg_statementduedate,statuscode,pinswg_startdateofevent,pinswg_typeofevent";
return "&$select=pinswg_detailedeiascreeningrequiered,modifiedon,_pinswg_appellant_value,pinswg_name,pinswg_siteaddressline1,pinswg_siteaddressline2,pinswg_siteaddresspostcode,pinswg_siteaddresstown,_pinswg_associatedlpa_value,pinswg_casedecisiondate,pinswg_dateeventrequested,pinswg_decision,pinswg_finalcommentsduedate,pinswg_otherpartiesstatement,pinswg_procedure,pinswg_questionnaireduedate,pinswg_startdate,pinswg_statementduedate,statuscode,pinswg_startdateofevent,pinswg_typeofevent";
break;
case "pinswg_planningobligationappeals106s":
return "&$select=modifiedon,_pinswg_appellant_value,pinswg_name,pinswg_siteaddressline1,pinswg_siteaddressline2,pinswg_siteaddresspostcode,pinswg_siteaddresstown,_pinswg_associatedlpa_value,pinswg_casedecisiondate,pinswg_dateeventrequested,pinswg_decision,pinswg_finalcommentsduedate,pinswg_otherpartiesstatements,pinswg_procedure,pinswg_questionnaireduedate,pinswg_startdate,pinswg_statementduedate,statuscode,pinswg_startdateoftheevent,pinswg_typeofevent";
return "&$select=pinswg_detailedeiascreeningrequired,modifiedon,_pinswg_appellant_value,pinswg_name,pinswg_siteaddressline1,pinswg_siteaddressline2,pinswg_siteaddresspostcode,pinswg_siteaddresstown,_pinswg_associatedlpa_value,pinswg_casedecisiondate,pinswg_dateeventrequested,pinswg_decision,pinswg_finalcommentsduedate,pinswg_otherpartiesstatements,pinswg_procedure,pinswg_questionnaireduedate,pinswg_startdate,pinswg_statementduedate,statuscode,pinswg_startdateoftheevent,pinswg_typeofevent";
break;
case "pinswg_rows":
return "&$select=pinswg_specialistcaseprocess,modifiedon,_pinswg_appellant_value,pinswg_name,pinswg_siteaddressline1,pinswg_siteaddressline2,pinswg_siteaddresspostcode,pinswg_siteaddresstown,_pinswg_associatedlpa_value,pinswg_casedecisiondate,pinswg_dateeventrequested,pinswg_decision,pinswg_finalcommentsduedate,pinswg_otherpartiesstatement,pinswg_procedure,pinswg_proofsofevidencewrittenstatementsofeviden,pinswg_questionnaireduedate,pinswg_relevantauthorityname,pinswg_startdate,statuscode,pinswg_startdateoftheevent,pinswg_typeofevent,pinswg_statementduedate,pinswg_specialistcaseprocess";
return "&$select=pinswg_detailedeiascreeningrequired,pinswg_specialistcaseprocess,modifiedon,_pinswg_appellant_value,pinswg_name,pinswg_siteaddressline1,pinswg_siteaddressline2,pinswg_siteaddresspostcode,pinswg_siteaddresstown,_pinswg_associatedlpa_value,pinswg_casedecisiondate,pinswg_dateeventrequested,pinswg_decision,pinswg_finalcommentsduedate,pinswg_otherpartiesstatement,pinswg_procedure,pinswg_proofsofevidencewrittenstatementsofeviden,pinswg_questionnaireduedate,pinswg_relevantauthorityname,pinswg_startdate,statuscode,pinswg_startdateoftheevent,pinswg_typeofevent,pinswg_statementduedate,pinswg_specialistcaseprocess";
break;
case "pinswg_ldps":
return "&$select=modifiedon,pinswg_name";
return "&$select=pinswg_eiarequired,modifiedon,pinswg_name";
break;
case "pinswg_nonvalidations":
return "&$select=modifiedon,_pinswg_appellant_value,pinswg_name,pinswg_siteaddressline1,pinswg_siteaddressline2,pinswg_siteaddresspostcode,pinswg_siteaddresstown,_pinswg_associatedlpa_value,statuscode";
break;
case "pinswg_transportandworkacts":
return "&$select=pinswg_eiarequired,pinswg_anticipatedgridreferenceeastingtext,pinswg_anticipatedgridreferencenorthingtext,_pinswg_appellant_value,pinswg_name,pinswg_addressline1,pinswg_addressline2,pinswg_postcode,pinswg_addresstown,_pinswg_associatedlpa_value,pinswg_addresscounty,pinswg_applicationacceptedasvalid,pinswg_applicationrejectedasinvalid,pinswg_choiceofprocedure,pinswg_confirmrequesttovaryapplication,pinswg_dateeventrequested,pinswg_dateofdecision,pinswg_dateofrequesttovarytheapplication,pinswg_dateofsubmissionofapplication,pinswg_dateprojectpublishedonwebsite,pinswg_deadlineforsubmissionofapplication,pinswg_endofrepresentationperiod,pinswg_inspectorreportsubmittedtowelshgovernment,pinswg_procedureconfirmed,pinswg_projectdescription,pinswg_projectlocation,pinswg_recommendation,pinswg_rejectrequesttovaryapplication,pinswg_reportdueby,pinswg_suspensiondates,pinswg_suspensionenddates,pinswg_suspensionstartdate,pinswg_validnoticeofintentiontosubmitanapplicati,pinswg_webaddress,pinswg_withdrawndate,pinswg_writtenacceptanceofnotification,statuscode,pinswg_casestage,pinswg_startdateofevent,pinswg_typeofevent";
case "pinswg_sipses":
// return "&$select=pinswg_anticipatedgridreferenceeastingtext,pinswg_anticipatedgridreferencenorthingtext,_pinswg_appellant_value,pinswg_name,pinswg_addressline1,pinswg_addressline2,pinswg_postcode,pinswg_addresstown,_pinswg_associatedlpa_value,pinswg_addresscounty,pinswg_applicationacceptedasvalid,pinswg_applicationrejectedasinvalid,pinswg_choiceofprocedure,pinswg_confirmrequesttovaryapplication,pinswg_dateeventrequested,pinswg_dateofdecision,pinswg_dateofrequesttovarytheapplication,pinswg_dateofsubmissionofapplication,pinswg_dateprojectpublishedonwebsite,pinswg_deadlineforsubmissionofapplication,pinswg_decision,pinswg_endofrepresentationperiod,pinswg_inspectorreportsubmittedtowelshgovernment,pinswg_procedureconfirmed,pinswg_projectdescription,pinswg_projectlocation,pinswg_recommendation,pinswg_rejectrequesttovaryapplication,pinswg_reportdueby,pinswg_suspensiondates,pinswg_suspensionenddates,pinswg_suspensionstartdates,pinswg_validnoticeofintentiontosubmitanapplicati,pinswg_webaddress,pinswg_withdrawndate,pinswg_writtenacceptanceofnotification,statuscode,pinswg_casestage,_pinswg_dnsids_value,pinswg_startdateofevent,pinswg_typeofevent";
return "&$select=_pinswg_projecttype_value,pinswg_eiarequired,pinswg_anticipatedgridrefeasting,pinswg_anticipatedgridrefnorthing,_pinswg_appellant_value,pinswg_name,_pinswg_associatedlpa_value,pinswg_choiceofprocedure,pinswg_decision,pinswg_projectdescription,pinswg_projectlocation,pinswg_recommendation,statuscode,pinswg_casestage,_pinswg_sipscase_value,pinswg_writtenacceptanceofnotification,pinswg_validnoticeofintentiontosubmit,pinswg_deadlineforsubmissionofapplication,pinswg_screeningstartdate,pinswg_eiatargetdate,pinswg_targetextended,pinswg_directionissueddate,pinswg_eiarequired,pinswg_scopingstartdate,pinswg_scopingtargetdate,pinswg_scopingtargetextended,pinswg_scopingoutcomeissueddate,pinswg_essubmitted,pinswg_deemedmarinelicenseappliedfor,pinswg_validationdeadlineextension,pinswg_casesuspensionstartdate,pinswg_casesuspensionenddate,pinswg_consultationopen,pinswg_consultationclose,pinswg_reportissuedtowelshministers,pinswg_decisionissuedtoapplicant,pinswg_decisionoutcome";
break;
default:
return "";
break;
+191 -175
View File
@@ -51,6 +51,7 @@ const RenderTextfield = ({
id={id}
type={type}
disabled={disabled ? true : false}
maxLength="50"
/>
</div>
</>
@@ -172,7 +173,9 @@ const RenderPickList = ({
id={datafieldname}
name={datafieldname}
>
<option>Select...</option>
<option value="" disabled defaultValue>
{t("common:drop-down-select")}
</option>
{Object.keys(optionsArr).map((key, index) => {
return (
<option
@@ -216,13 +219,15 @@ let PersonalDetails = (props) => {
/(?:[a-z0-9!#$%&'*+\/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+\/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])/gi;
const email = (value) =>
value && !emailRegex.test(value) ? "Invalid email address" : undefined;
value && !emailRegex.test(value)
? t("account:invalid-phone-number-errormsg")
: undefined;
const phoneNumber = (value) =>
value &&
!/^(?:(?:\(?(?:0(?:0|11)\)?[\s-]?\(?|\+)44\)?[\s-]?(?:\(?0\)?[\s-]?)?)|(?:\(?0))(?:(?:\d{5}\)?[\s-]?\d{4,5})|(?:\d{4}\)?[\s-]?(?:\d{5}|\d{3}[\s-]?\d{3}))|(?:\d{3}\)?[\s-]?\d{3}[\s-]?\d{3,4})|(?:\d{2}\)?[\s-]?\d{4}[\s-]?\d{4}))(?:[\s-]?(?:x|ext\.?|\#)\d{3,4})?$/i.test(
value
)
? "Invalid phone number"
? t("account:invalid-phone-number-errormsg")
: undefined;
const postcode = (value) =>
@@ -241,183 +246,194 @@ let PersonalDetails = (props) => {
return (
<>
{props.accountUpdatedComplete == false ? (
props.personalDetailsComplete == false ? (
<form onSubmit={handleSubmit(onHandleSubmit)}>
<fieldset className="govuk-fieldset">
<legend className="govuk-fieldset__legend govuk-fieldset__legend--m">
<h2 className="govuk-fieldset__heading">
{t("account:account-about-you-label")}
</h2>
</legend>
<div className="govuk-form-group ">
<span className="govuk-label ">
{t("account:account-role-label")}:{" "}
{
<div className="govuk-form-group">
{props.accountUpdatedComplete == false ? (
props.personalDetailsComplete == false ? (
<form onSubmit={handleSubmit(onHandleSubmit)}>
<fieldset className="govuk-fieldset">
<legend className="govuk-fieldset__legend govuk-fieldset__legend--m">
<h2 className="govuk-fieldset__heading">
{t("account:account-about-you-label")}
</h2>
</legend>
<div className="govuk-form-group ">
<span className="govuk-label ">
{t("account:account-role-label")}:{" "}
{
props.props.accountDetails
.accountDetails[
"pinswg_typeofinvolvement@OData.Community.Display.V1.FormattedValue"
]
}
</span>
</div>
<Field
name="pinswg_preferredlanguage"
component={RenderPickList}
datafieldname={"pinswg_preferredlanguage"}
optionsArr={["English", "Welsh"]}
className="govuk-input govuk-input--width-20 govuk-radios--inline"
validate={[required]}
label={t(
"account:account-preferred-language-label"
)}
errorMsg={t("account:is-required-label")}
/>
<Field
name="firstname"
id="firstname"
component={RenderTextfield}
type="text"
className="govuk-input govuk-input--width-20"
validate={[required]}
label={t(
"account:account-first-name-label"
)}
errorMsg={t("account:is-required-label")}
/>
<Field
name="lastname"
id="lastname"
component={RenderTextfield}
type="text"
className="govuk-input govuk-input--width-20"
validate={[required]}
label={t("account:account-last-name-label")}
errorMsg={t("account:is-required-label")}
/>
<Field
name="emailaddress1"
id="emailaddress1"
component={RenderTextfield}
type="email"
className="govuk-input govuk-input--width-20"
validate={[required, email]}
label={t(
"account:account-email-address-label"
)}
disabled
/>
<Field
name="telephone1"
id="telephone1"
component={RenderTextfield}
type="text"
className="govuk-input govuk-input--width-20"
validate={[required, phoneNumber]}
label={t("account:account-telephone-label")}
/>
<Field
name="company"
id="company"
component={RenderTextfield}
type="text"
className="govuk-input govuk-input--width-20"
label={t(
"account:account-company-group-label"
)}
errorMsg={t("account:is-required-label")}
/>
</fieldset>
<fieldset className="govuk-fieldset">
<legend className="govuk-fieldset__legend govuk-fieldset__legend--m">
<h2 className="govuk-fieldset__heading">
{t(
"account:account-your-address-label"
)}
</h2>
</legend>
<Field
name="address1_line1"
id="address1_line1"
component={RenderTextfield}
type="text"
className="govuk-input govuk-input--width-20"
label={t(
"account:account-address-line-1-label"
)}
validate={[required]}
errorMsg={t("account:is-required-label")}
/>
<Field
name="address1_line2"
id="address1_line2"
component={RenderTextfield}
type="text"
className="govuk-input govuk-input--width-20"
label={t(
"account:account-address-line-2-label"
)}
errorMsg={t("account:is-required-label")}
/>
<Field
name="address1_city"
id="address1_city"
component={RenderTextfield}
type="text"
className="govuk-input govuk-input--width-10"
label={t("account:account-town-city-label")}
validate={[required]}
errorMsg={t("account:is-required-label")}
/>
<Field
name="address1_county"
id="address1_county"
component={RenderTextfield}
type="text"
className="govuk-input govuk-input--width-10"
label={t("account:account-county-label")}
validate={[required]}
errorMsg={t("account:is-required-label")}
/>
<Field
name="address1_postalcode"
id="address1_postalcode"
component={RenderTextfield}
type="text"
className="govuk-input govuk-input--width-5"
label={t("account:account-postcode-label")}
validate={[required, postcode]}
/>
</fieldset>
<div className="govuk-button-group">
<button
type="submit"
className="govuk-button"
data-module="govuk-button"
>
{t("common:continue-button")}
</button>
<Link
href={
"/myportal?q=" +
props.props.accountDetails
.accountDetails[
"pinswg_typeofinvolvement@OData.Community.Display.V1.FormattedValue"
]
.loggedinUserId
}
</span>
className="govuk-link"
>
{t("common:cancel-link")}
</Link>
</div>
<Field
name="pinswg_preferredlanguage"
component={RenderPickList}
datafieldname={"pinswg_preferredlanguage"}
optionsArr={["English", "Welsh"]}
className="govuk-input govuk-input--width-20 govuk-radios--inline"
validate={[required]}
label={t(
"account:account-preferred-language-label"
)}
errorMsg="Is required"
/>
<Field
name="firstname"
id="firstname"
component={RenderTextfield}
type="text"
className="govuk-input govuk-input--width-20"
validate={[required]}
label={t("account:account-first-name-label")}
errorMsg="Is required"
/>
<Field
name="lastname"
id="lastname"
component={RenderTextfield}
type="text"
className="govuk-input govuk-input--width-20"
validate={[required]}
label={t("account:account-last-name-label")}
errorMsg="Is required"
/>
<Field
name="emailaddress1"
id="emailaddress1"
component={RenderTextfield}
type="email"
className="govuk-input govuk-input--width-20"
validate={[required, email]}
label={t("account:account-email-address-label")}
disabled
/>
<Field
name="telephone1"
id="telephone1"
component={RenderTextfield}
type="number"
className="govuk-input govuk-input--width-20"
validate={[required, phoneNumber]}
label={t("account:account-telephone-label")}
/>
<Field
name="company"
id="company"
component={RenderTextfield}
type="text"
className="govuk-input govuk-input--width-20"
label={t("account:account-company-group-label")}
errorMsg="Is required"
/>
</fieldset>
<fieldset className="govuk-fieldset">
<legend className="govuk-fieldset__legend govuk-fieldset__legend--m">
<h2 className="govuk-fieldset__heading">
{t("account:account-your-address-label")}
</h2>
</legend>
<Field
name="address1_line1"
id="address1_line1"
component={RenderTextfield}
type="text"
className="govuk-input govuk-input--width-20"
label={t(
"account:account-address-line-1-label"
)}
validate={[required]}
errorMsg="Is required"
/>
<Field
name="address1_line2"
id="address1_line2"
component={RenderTextfield}
type="text"
className="govuk-input govuk-input--width-20"
label={t(
"account:account-address-line-2-label"
)}
errorMsg="Is required"
/>
<Field
name="address1_city"
id="address1_city"
component={RenderTextfield}
type="text"
className="govuk-input govuk-input--width-10"
label={t("account:account-town-city-label")}
validate={[required]}
errorMsg="Is required"
/>
<Field
name="address1_county"
id="address1_county"
component={RenderTextfield}
type="text"
className="govuk-input govuk-input--width-10"
label={t("account:account-county-label")}
validate={[required]}
errorMsg="Is required"
/>
<Field
name="address1_postalcode"
id="address1_postalcode"
component={RenderTextfield}
type="text"
className="govuk-input govuk-input--width-5"
label={t("account:account-postcode-label")}
validate={[required, postcode]}
/>
</fieldset>
<div className="govuk-button-group">
<button
type="submit"
className="govuk-button"
data-module="govuk-button"
>
{t("common:continue-button")}
</button>
<Link
href={
"/myportal?q=" +
props.props.accountDetails.loggedinUserId
</form>
) : (
<>
<BuildCheckPersonalDetails
props={props}
setPersonalDetailsComplete={
setPersonalDetailsComplete
}
className="govuk-link"
>
{t("common:cancel-link")}
</Link>
</div>
</form>
setAccountUpdatedComplete={
setAccountUpdatedComplete
}
/>
</>
)
) : (
<>
<BuildCheckPersonalDetails
props={props}
setPersonalDetailsComplete={
setPersonalDetailsComplete
}
setAccountUpdatedComplete={
setAccountUpdatedComplete
}
/>
</>
)
) : (
<PersonalDetailsComplete props={props} />
)}
<PersonalDetailsComplete props={props} />
)}
</div>
</>
);
};
+35 -12
View File
@@ -4,6 +4,7 @@ import { useRouter } from "next/router";
import React, { useEffect } from "react";
import { connect } from "react-redux";
import { updateAccount } from "../../actions";
import { setCookie } from "nookies";
const PersonalDetailsComplete = (props) => {
const {
@@ -17,26 +18,48 @@ const PersonalDetailsComplete = (props) => {
const router = useRouter();
const { locale } = router;
// let contactid = props.accountDetails.loggedinUserId;
// let updateBody = props.props.props.form.personalDetailsForm.values;
// let prefLang =
// props.props.props.form.personalDetailsForm.values
// .pinswg_preferredlanguage;
const { loggedinUserId } = props.accountDetails || {};
const formValues = props.props?.props?.form?.personalDetailsForm?.values;
const prefLang = formValues?.pinswg_preferredlanguage;
useEffect(() => {
let contactid = props.accountDetails.loggedinUserId;
let updateBody = props.props.props.form.personalDetailsForm.values;
updateAccount(contactid, updateBody);
}, [
props.accountDetails.loggedinUserId,
props.props.props.form.personalDetailsForm.values,
]);
// let contactid = props.accountDetails.loggedinUserId;
// let updateBody = props.props.props.form.personalDetailsForm.values;
// let prefLang =
// props.props.props.form.personalDetailsForm.values
// .pinswg_preferredlanguage;
if (!loggedinUserId || !formValues) return;
console.log("=============== pref lang", prefLang);
const userLang = prefLang == "846040000" ? "cy" : "en";
setCookie(null, "pedw_locale", userLang, {
path: "/",
maxAge: 60 * 60 * 24 * 365,
});
console.log("Set cookie to:", userLang);
async function doUpdate() {
const response = await updateAccount(loggedinUserId, formValues);
}
doUpdate();
}, [loggedinUserId, formValues, prefLang]);
return (
<>
<p className="govuk-body">{t("account:account-complete-para-1")}</p>
<p className="govuk-body">{t("account:account-complete-para-2")}</p>
{/* <p className="govuk-body">{t("account:account-complete-para-2")}</p> */}
<p className="govuk-body">
<Link
href={"/myportal?q=" + props.accountDetails.loggedinUserId}
className="govuk-link"
>
<Link href={"/"} className="govuk-link">
{" "}
{t("account:account-complete-return-to-portal-link")}
</Link>
+7 -1
View File
@@ -31,8 +31,10 @@ const RegisterComplete = (props) => {
let accountBody = props.props.props.form.accountRegisterForm.values;
let emailAddress =
props.props.props.form.accountRegisterForm.values.emailaddress1;
// was an appellant "pinswg_typeofinvolvement": 846040001,
Object.assign(accountBody, {
"pinswg_typeofinvolvement": 846040001,
"pinswg_typeofinvolvement": 846040061,
});
accountBody = _.omit(accountBody, ["custom_password_check"]);
@@ -80,6 +82,10 @@ const RegisterComplete = (props) => {
{t("account:register-new-account-paragraph-what-next")}
</p>
<p className="govuk-body">
{t("account:register-new-account-paragraph-thanks")}
</p>
<p className="govuk-body">
<Link href="/" className="govuk-link">
{t("account:register-new-account-my-portal-link")}
+145 -141
View File
@@ -137,149 +137,153 @@ const RegisterForm = (props) => {
{props.accountCreatedComplete != true ? (
props.registerFormComplete == false ? (
<form onSubmit={handleSubmit(onHandleSubmit)}>
<fieldset className="govuk-fieldset">
<legend className="govuk-fieldset__legend govuk-fieldset__legend--m">
<h2 className="govuk-fieldset__heading">
{t(
"account:register-new-account-sub-heading-1"
)}{" "}
{loggedInUserEmail}
</h2>
</legend>
<Field
name="firstname"
id="firstname"
component={RenderTextfield}
type="text"
className="govuk-input govuk-input--width-20"
validate={[required]}
label={t(
"account:register-new-account-first-name-label"
)}
errorMsg={t(
"account:register-new-account-first-name-label-errormsg"
)}
/>
<Field
name="lastname"
id="lastname"
component={RenderTextfield}
type="text"
className="govuk-input govuk-input--width-20"
validate={[required]}
label={t(
"account:register-new-account-last-name-label"
)}
errorMsg={t(
"account:register-new-account-last-name-label-errormsg"
)}
/>
<Field
name="emailaddress1"
id="emailaddress1"
component={RenderTextfield}
type="email"
className="govuk-input govuk-input--width-20"
validate={[required, email]}
label={t(
"account:register-new-account-email-address-label"
)}
disabled
/>
<Field
name="telephone1"
id="telephone1"
component={RenderTextfield}
type="number"
className="govuk-input govuk-input--width-20"
validate={[required, phoneNumber]}
label={t(
"account:register-new-account-phone-label"
)}
/>
</fieldset>
<fieldset className="govuk-fieldset">
<legend className="govuk-fieldset__legend govuk-fieldset__legend--m">
<h2 className="govuk-fieldset__heading">
{t(
"account:register-new-account-sub-heading-2"
)}
</h2>
</legend>
<div className="card" id="personalDetailsCard">
<div className="card-body">
<fieldset className="govuk-fieldset">
<legend className="govuk-fieldset__legend govuk-fieldset__legend--m">
<h2 className="govuk-fieldset__heading">
{t(
"account:register-new-account-sub-heading-1"
)}{" "}
{loggedInUserEmail}
</h2>
</legend>
<Field
name="firstname"
id="firstname"
component={RenderTextfield}
type="text"
className="govuk-input govuk-input--width-20"
validate={[required]}
label={t(
"account:register-new-account-first-name-label"
)}
errorMsg={t(
"account:register-new-account-first-name-label-errormsg"
)}
/>
<Field
name="lastname"
id="lastname"
component={RenderTextfield}
type="text"
className="govuk-input govuk-input--width-20"
validate={[required]}
label={t(
"account:register-new-account-last-name-label"
)}
errorMsg={t(
"account:register-new-account-last-name-label-errormsg"
)}
/>
<Field
name="emailaddress1"
id="emailaddress1"
component={RenderTextfield}
type="email"
className="govuk-input govuk-input--width-20"
validate={[required, email]}
label={t(
"account:register-new-account-email-address-label"
)}
disabled
/>
<Field
name="telephone1"
id="telephone1"
component={RenderTextfield}
type="text"
className="govuk-input govuk-input--width-20"
validate={[required, phoneNumber]}
label={t(
"account:register-new-account-phone-label"
)}
/>
</fieldset>
<fieldset className="govuk-fieldset">
<legend className="govuk-fieldset__legend govuk-fieldset__legend--m">
<h2 className="govuk-fieldset__heading">
{t(
"account:register-new-account-sub-heading-2"
)}
</h2>
</legend>
<Field
name="address1_line1"
id="address1_line1"
component={RenderTextfield}
type="text"
className="govuk-input govuk-input--width-20"
label={t(
"account:register-new-account-address-line-1-label"
)}
validate={[required]}
errorMsg={t(
"account:register-new-account-address-line-1-label-errormsg"
)}
/>
<Field
name="address1_line2"
id="address1_line2"
component={RenderTextfield}
type="text"
className="govuk-input govuk-input--width-20"
label={t(
"account:register-new-account-address-line-2-label"
)}
/>
<Field
name="address1_city"
id="address1_city"
component={RenderTextfield}
type="text"
className="govuk-input govuk-input--width-10"
label={t(
"account:register-new-account-town-label"
)}
validate={[required]}
errorMsg={t(
"account:register-new-account-town-label-errormsg"
)}
/>
<Field
name="address1_county"
id="address1_county"
component={RenderTextfield}
type="text"
className="govuk-input govuk-input--width-10"
label={t(
"account:register-new-account-county-label"
)}
validate={[required]}
errorMsg={t(
"account:register-new-account-county-label-errormsg"
)}
/>
<Field
name="address1_postalcode"
id="address1_postalcode"
component={RenderTextfield}
type="text"
className="govuk-input govuk-input--width-5"
label={t(
"account:register-new-account-postcode-label"
)}
validate={[required, postcode]}
/>
</fieldset>
<Field
name="address1_line1"
id="address1_line1"
component={RenderTextfield}
type="text"
className="govuk-input govuk-input--width-20"
label={t(
"account:register-new-account-address-line-1-label"
)}
validate={[required]}
errorMsg={t(
"account:register-new-account-address-line-1-label-errormsg"
)}
/>
<Field
name="address1_line2"
id="address1_line2"
component={RenderTextfield}
type="text"
className="govuk-input govuk-input--width-20"
label={t(
"account:register-new-account-address-line-2-label"
)}
/>
<Field
name="address1_city"
id="address1_city"
component={RenderTextfield}
type="text"
className="govuk-input govuk-input--width-10"
label={t(
"account:register-new-account-town-label"
)}
validate={[required]}
errorMsg={t(
"account:register-new-account-town-label-errormsg"
)}
/>
<Field
name="address1_county"
id="address1_county"
component={RenderTextfield}
type="text"
className="govuk-input govuk-input--width-10"
label={t(
"account:register-new-account-county-label"
)}
validate={[required]}
errorMsg={t(
"account:register-new-account-county-label-errormsg"
)}
/>
<Field
name="address1_postalcode"
id="address1_postalcode"
component={RenderTextfield}
type="text"
className="govuk-input govuk-input--width-5"
label={t(
"account:register-new-account-postcode-label"
)}
validate={[required, postcode]}
/>
</fieldset>
<div className="govuk-button-group">
<button
type="submit"
className="govuk-button"
data-module="govuk-button"
>
{t("common:continue-button")}
</button>
<div className="govuk-button-group">
<button
type="submit"
className="govuk-button"
data-module="govuk-button"
>
{t("common:continue-button")}
</button>
</div>
</div>
</div>
</form>
) : (
+3 -1
View File
@@ -9,7 +9,9 @@ import {
let reactPlugin = new ReactPlugin();
let appInsights = new ApplicationInsights({
config: {
connectionString: process.env.NEXT_PUBLIC_APP_INSIGHT,
connectionString:
process.env.APPLICATIONINSIGHTS_CONNECTIONSTRING ||
process.env.NEXT_PUBLIC_APP_INSIGHT,
enableAutoRouteTracking: true,
enableCorsCorrelation: true,
enableRequestHeaderTracking: true,
+196 -32
View File
@@ -20,12 +20,30 @@ const Breadcrumbs = (props) => {
setCurrentView,
setCurrentSection,
setRepresentationCapacity,
setRepresentationSubmit,
} = props;
const router = useRouter();
let { t } = useTranslation();
const { data: session, status } = useSession();
const qcount =
currentView.caseReference.appealType == 846040000 ||
currentView.caseReference.appealType == 846040001 ||
currentView.caseReference.appealType == 846040025 ||
currentView.caseReference.appealType == 846040004 ||
currentView.caseReference.appealType == 846040018 ||
currentView.caseReference.appealType == 846040003 ||
currentView.caseReference.appealType == 846040009 ||
currentView.caseReference.appealType == 846040008
? 7
: currentView.caseReference.appealType == 846040005 ||
currentView.caseReference.appealType == 846040006 ||
currentView.caseReference.appealType == 846040007
? 9
: "";
var viewAllKey = currentView?.viewKey || router.query.viewKey;
return (
<>
<nav
@@ -138,6 +156,27 @@ const Breadcrumbs = (props) => {
</li>
</>
)}
{router.pathname == "/myportal/contactus" && (
<>
<li className="govuk-breadcrumbs__list-item">
<Link
href={
router.locale != "en"
? "/" +
router.locale +
"/fymhorth"
: "/myportal"
}
className="govuk-breadcrumbs__link"
>
{t("common:breadcrumb-my-portal")}
</Link>
</li>
<li className="govuk-breadcrumbs__list-item">
{t("common:footer-contact-us-link-label")}
</li>
</>
)}
{router.pathname == "/addresssearchresults" && (
<>
{" "}
@@ -458,22 +497,21 @@ const Breadcrumbs = (props) => {
</Link>
</li>
<li className="govuk-breadcrumbs__list-item">
{currentView.currentView.viewKey ==
{viewAllKey ==
"awaitingSubmissionDetails" &&
t(
"myportal:awatitingsubmission-card-title"
)}
{currentView.currentView.viewKey ==
"watchedCases" &&
{viewAllKey == "watchedCases" &&
t("myportal:watchedcases-card-title")}
{currentView.currentView.viewKey ==
"myCases" &&
{viewAllKey == "myCases" &&
t("myportal:mycases-card-title")}
{currentView.currentView.viewKey ==
"myRepresentations" &&
{viewAllKey == "myRepresentations" &&
t(
"myportal:myrepresentations-card-title"
)}
{viewAllKey == "mySubmittedReps" &&
"Submitted representations"}
</li>
</>
)}
@@ -504,6 +542,27 @@ const Breadcrumbs = (props) => {
)}
{router.pathname == "/case/[ticketnumber]" && (
<>
<li className="govuk-breadcrumbs__list-item">
<Link
href={
router.locale != "en"
? router.locale +
"/searchresults?q=" +
props.props.search
.searchString
: "/searchresults?q=" +
props.props.search
.searchString
}
onClick={() => {
// spinnerState();
router.back();
}}
className="govuk-breadcrumbs__link"
>
{t("common:breadcrumb-search-results")}
</Link>
</li>
<li className="govuk-breadcrumbs__list-item">
{t("common:breadcrumb-case-reference")}:{" "}
{
@@ -628,7 +687,6 @@ const Breadcrumbs = (props) => {
)}
{router.pathname == "/myportal/case/[ticketnumber]" && (
<>
{" "}
<li className="govuk-breadcrumbs__list-item">
<Link
href={
@@ -643,6 +701,27 @@ const Breadcrumbs = (props) => {
{t("common:breadcrumb-my-portal")}
</Link>
</li>
<li className="govuk-breadcrumbs__list-item">
<Link
href={
router.locale != "en"
? router.locale +
"/fymhorth/searchresults?q=" +
props.props.search
.searchString
: "/myportal/searchresults?q=" +
props.props.search
.searchString
}
onClick={() => {
// spinnerState();
router.back();
}}
className="govuk-breadcrumbs__link"
>
{t("common:breadcrumb-search-results")}
</Link>
</li>
<li className="govuk-breadcrumbs__list-item">
{t("common:breadcrumb-case-reference")}:{" "}
{
@@ -707,6 +786,38 @@ const Breadcrumbs = (props) => {
</li>
</>
)}
{router.pathname ==
"/myportal/dns/[developmentName]" && (
<>
<li className="govuk-breadcrumbs__list-item">
<Link
href={
router.locale != "en"
? router.locale + "/fymhorth"
: "/myportal"
}
className="govuk-breadcrumbs__link"
>
{t("common:breadcrumb-my-portal")}
</Link>
</li>
<li className="govuk-breadcrumbs__list-item">
<Link
href={"/myportal/dnsapplications"}
className="govuk-breadcrumbs__link"
>
{t("dnsCommon:service-name")}
</Link>
</li>
<li className="govuk-breadcrumbs__list-item">
{t("common:breadcrumb-case-reference")}:{" "}
{
props.props.currentView.caseReference
.currentReference
}
</li>
</>
)}
{router.pathname == "/case" && (
<>
<li className="govuk-breadcrumbs__list-item">
@@ -789,24 +900,71 @@ const Breadcrumbs = (props) => {
}
</li> */}
{typeof props.currentView
.representationCapacity != "undefined" &&
props.currentView.representationCapacity !=
"" && (
{props.currentView.representationSubmit ==
true &&
props.currentView
.representationSubmitConfirmation !=
true && (
<li className="govuk-breadcrumbs__link-item backChevron">
<a
className="govuk-breadcrumbs__link"
href="#"
onClick={() => {
setRepresentationCapacity();
props.updateField(
"representationForm",
"representationType",
""
setRepresentationSubmit(
qcount
);
}}
>
{t("common:back-link")}{" "}
{t("common:back-link")}
</a>
</li>
)}
{props.currentView.representationSubmit !=
true &&
props.currentView.caseReference.hasOwnProperty(
"repDetails"
) &&
props.currentView.caseReference.repDetails
.representationType !=
"Questionnaire" && (
<li className="govuk-breadcrumbs__link-item backChevron">
<a
className="govuk-breadcrumbs__link"
href="#"
onClick={() => {
setRepresentationSubmit(
false
);
}}
>
{t("common:back-link")}
</a>
</li>
)}
{props.currentView.representationSubmit !=
true &&
props.currentView.caseReference.hasOwnProperty(
"repDetails"
) &&
props.currentView.caseReference.repDetails
.representationType ==
"Questionnaire" &&
props.showQuestionnaireSection > 1 && (
<li className="govuk-breadcrumbs__link-item backChevron">
<a
className="govuk-breadcrumbs__link"
href="#"
onClick={() => {
props.setShowQuestionnaireSection(
props.showQuestionnaireSection -
1
);
setRepresentationSubmit(
false
);
}}
>
{t("common:back-link")}
</a>
</li>
)}
@@ -868,14 +1026,23 @@ const Breadcrumbs = (props) => {
</li>
</>
)}
{router.pathname == "/dns/[developmentName]" && (
{router.pathname == "/dnsapplications" && (
<>
<li className="govuk-breadcrumbs__list-item">
{t("dnsCommon:service-name")}
</li>
</>
)}
{router.pathname == "/dnsdetails" && (
<>
<li className="govuk-breadcrumbs__list-item">
<Link
href={
router.locale == "en"
? router.locale + "/../../dns"
: "/../../dns"
router.locale != "en"
? router.locale +
"/dnsapplications"
: "/dnsapplications"
}
className="govuk-breadcrumbs__link"
>
@@ -891,19 +1058,12 @@ const Breadcrumbs = (props) => {
</li>
</>
)}
{router.pathname == "/dnsapplications" && (
<>
<li className="govuk-breadcrumbs__list-item">
{t("dnsCommon:service-name")}
</li>
</>
)}
{router.pathname == "/dnsdetails" && (
{router.pathname == "/dns/[developmentName]" && (
<>
<li className="govuk-breadcrumbs__list-item">
<Link
href={
router.locale == "en"
router.locale != "en"
? router.locale +
"/dnsapplications"
: "/dnsapplications"
@@ -939,7 +1099,7 @@ const Breadcrumbs = (props) => {
{router.pathname == "/dns/contact-us" && (
<>
<li className="govuk-breadcrumbs__list-item">
Contact us
{t("common:footer-contact-us-link-label")}
</li>
</>
)}
@@ -1044,6 +1204,10 @@ const mapDispatchToProps = (dispatch) => {
//dispatch(reset("representationForm"));
dispatch(setRepresentationCapacity(representationCapacity));
},
setRepresentationSubmit: (representationSubmit) => {
dispatch(setRepresentationSubmit(representationSubmit));
},
setCurrentView: (currentView) => {
dispatch(setCurrentView(currentView));
},
+4 -8
View File
@@ -34,17 +34,13 @@ const Case = (props) => {
searchDetailsObj={props.searchDetailsObj}
searchString={props.searchString}
incidentid={props.incidentid}
showMap={props.showMap}
showMap={props.showMaps}
currentView={props.currentView}
messagesObj={props.messagesObj}
/>
<Documents
incidentid={props.incidentid}
caseReference={props.caseReference}
searchResultsObj={props.searchResultsObj}
searchDetailsObj={props.searchDetailsObj}
documentDetailsObj={props.documentDetailsObj}
docsOffline={props.props.docsOffline}
documentDetailsObj={props.documentDetailsObj}
showFilteredDocs={props.showFilteredDocs}
eventsObj={props.eventsObj}
/>
{showRepresentations == true && (
<RepresentationList
+80 -58
View File
@@ -15,67 +15,89 @@ export default function CaseNoticeBanner(props) {
const bannerOpenCookie = typeof cookie.get("pedwNotice") == "undefined";
let messagesObjArr = messagesObj.value;
let todaysDate = new Date();
return (
<>
{messagesObjArr.map((message, index) => (
<div className="govuk-warning-text noticebanner" key={index}>
<strong className="govuk-warning-text__text">
<span className="govuk-visually-hidden">Warning</span>
</strong>
<div>
<div className=" govuk-body-s">
<h2 className="govuk-heading-s">
{(
message.subject.match(
new RegExp(">>>", "g")
) || []
).length > 0
? router.locale == "cy"
? message.subject
.split("Banner ")[1]
.split(">>>")[1]
: message.subject
.split("Banner ")[1]
.split(">>>")[0]
: (
message.subject.match(
new RegExp(";", "g")
) || []
).length > 0
? router.locale == "cy"
? message.subject
.split("Banner ")[1]
.split(";")[1]
: message.subject
.split("Banner ")[1]
.split(";")[0]
: message.subject.split("Banner ")[1]}
</h2>
</div>
<div className="govuk-body-s">
{(
message.description.match(
new RegExp(">>>", "g")
) || []
).length > 0
? router.locale == "cy"
? message.description.split(">>>")[1]
: message.description.split(">>>")[0]
: (
message.description.match(
new RegExp(";", "g")
) || []
).length > 0
? router.locale == "cy"
? message.description.split(";")[1]
: message.description.split(";")[0]
: message.description}
</div>
<div className="govuk-body-xs govuk-!-margin-bottom-0 ">
{t("case:date-raised")}:{" "}
{formatDates(message.createdon)}
</div>
</div>
<div key={index}>
{todaysDate.toISOString() >= message.scheduledstart &&
todaysDate.toISOString() <= message.scheduledend && (
<div
className="govuk-warning-text noticebanner"
key={index}
>
<strong className="govuk-warning-text__text">
<span className="govuk-visually-hidden">
{t("case:notice-label")}
</span>
</strong>
<div>
<div className=" govuk-body-s">
<h2 className="govuk-heading-s">
{(
message.subject.match(
new RegExp(">>>", "g")
) || []
).length > 0
? router.locale == "cy"
? message.subject
.split("Banner ")[1]
.split(">>>")[1]
: message.subject
.split("Banner ")[1]
.split(">>>")[0]
: (
message.subject.match(
new RegExp(";", "g")
) || []
).length > 0
? router.locale == "cy"
? message.subject
.split("Banner ")[1]
.split(";")[1]
: message.subject
.split("Banner ")[1]
.split(";")[0]
: message.subject.split(
"Banner "
)[1]}
</h2>
</div>
<div className="govuk-body-s">
{(
message.description.match(
new RegExp(">>>", "g")
) || []
).length > 0
? router.locale == "cy"
? message.description.split(
">>>"
)[1]
: message.description.split(
">>>"
)[0]
: (
message.description.match(
new RegExp(";", "g")
) || []
).length > 0
? router.locale == "cy"
? message.description.split(
";"
)[1]
: message.description.split(
";"
)[0]
: message.description}
</div>
<div className="govuk-body-xs govuk-!-margin-bottom-0 ">
{t("case:date-raised")}:{" "}
{formatDates(message.createdon)}
</div>
</div>
</div>
)}
</div>
))}
</>
+555 -50
View File
@@ -30,6 +30,7 @@ const DocumentDetails = (props) => {
setDocumentDetails,
setCurrentPage,
docsOffline,
showFilteredDocs,
} = props;
const router = useRouter();
@@ -40,6 +41,53 @@ const DocumentDetails = (props) => {
const [selectedOption, setSelectedOption] = useState(10);
const [documentTypes, setDocumentTypes] = useState([{}]);
const [selectedDocumentType, setSelectedDocumentType] = useState("all");
const [selectAll, setSelectAll] = useState(false);
const [checkedItems, setCheckedItems] = useState(
documentTypes.reduce((acc, item) => {
acc[item.pinswg_isharedocumentlocations] = false;
return acc;
}, {})
);
const handleCheckboxChange = (e) => {
const { name, checked } = e.target;
setCheckedItems((prev) => ({
...prev,
[name]: checked,
}));
setSelectAll(false);
};
const handleSelectAllChange = (e) => {
const { checked } = e.target;
setSelectAll(checked); // Set the 'Select All' state
if (checked) {
// If 'Select All' is checked, check all the other checkboxes
setCheckedItems(
documentTypes.reduce((acc, item) => {
acc[item.pinswg_isharedocumentlocations] = true;
return acc;
}, {})
);
} else {
clearCheckboxes();
}
};
const clearCheckboxes = () => {
setSelectAll(false);
setCheckedItems(
documentTypes.reduce((acc, item) => {
acc[item.pinswg_isharedocumentlocations] = false;
return acc;
}, {}),
setSelectedDocumentType("all"),
setCurrentPage(1)
);
};
let ShowDocLinks = false;
let checkShowDocLinks = docsOffline != false ? true : false;
@@ -107,12 +155,13 @@ const DocumentDetails = (props) => {
id="showDocumentType"
name="showDocumentType"
>
<option value="all">
<option value="all" key="00">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="All")].value_cy',
transLookup
)
? jsonpath({
path: '$..[?(@ && @.value=="All")].value_cy',
json: transLookup,
eval: true,
})
: "All"}
</option>
{documentTypes.map((item, key) => {
@@ -124,12 +173,14 @@ const DocumentDetails = (props) => {
}
>
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
item.pinswg_isharedocumentlocationsLabel +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: item.pinswg_isharedocumentlocationsLabel ||
t(
"case:summary-no-date-entered-label"
@@ -236,9 +287,12 @@ const DocumentDetails = (props) => {
{/* {t("case:documents-date-published-label")} */}
<button
type="button"
onClick={() => sortDataBy("createdon")}
onClick={() =>
sortDataBy("pinswg_documentpublisheddate")
}
className={
orderByState == "createdon"
orderByState ==
"pinswg_documentpublisheddate"
? fieldSortState == "asc"
? `govuk-link govuk-link--no-underline govuk-!-font-weight-bold govuk-!-font-size-16 sortAsc`
: `govuk-link govuk-link--no-underline govuk-!-font-weight-bold govuk-!-font-size-16 sortDesc`
@@ -269,12 +323,14 @@ const DocumentDetails = (props) => {
</div>
) : (
documentDetailsArr.map((item, key) => {
let detailsObj = jsonpath(
"$..[?(@._pinswg_documentids_value=='" +
let detailsObj = jsonpath({
path:
"$..[?(@ && @._pinswg_documentids_value=='" +
incidentid +
"')]",
item
);
json: item,
sanbox: {},
});
detailsObj = item;
return (
<div
@@ -355,14 +411,16 @@ const DocumentDetails = (props) => {
</span>
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
detailsObj[
"pinswg_isharedocumentlocations@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
sanbox: {},
})
: detailsObj[
"pinswg_isharedocumentlocations@OData.Community.Display.V1.FormattedValue"
] ||
@@ -411,6 +469,452 @@ const DocumentDetails = (props) => {
);
};
const FilteredDocumentView = (documentDetailsArr) => {
documentDetailsArr = documentDetailsArr.value;
return (
<>
{ShowDocLinks && (
<div className="govuk-warning-text ">
<span
className="govuk-warning-text__icon"
aria-hidden="true"
>
!
</span>
<strong className="govuk-warning-text__text govuk-!-margin-top-2">
<span className="govuk-visually-hidden">
Notice
</span>
{t("case:documents-not-available-label")}
</strong>
</div>
)}
<div className="docFilteringGroup">
<div className="govuk-!-width-one-third">
{" "}
<div className="govuk-form-group filterByGroup">
<p>
{documentDetailsObj["@odata.count"] > 1
? t("case:documents-count-label-1")
: t("case:documents-count-label-1a")}{" "}
{documentDetailsObj["@odata.count"]}{" "}
{documentDetailsObj["@odata.count"] > 1
? t("case:documents-count-label-2")
: t("case:documents-count-label-2a")}
</p>
<div>
<button onClick={clearCheckboxes}>
{t("case:documents-clear-filter-label")}
</button>
</div>
<div className="govuk-checkboxes govuk-checkboxes--small">
{" "}
<>
<div className="govuk-checkboxes__item">
<input
className="govuk-checkboxes__input"
type="checkbox"
id={"all_" + "_" + 0}
key={0}
name={"all_" + "_" + 0}
checked={selectAll}
value={"all"}
onChange={handleSelectAllChange}
/>
<label
className="govuk-label-s govuk-checkboxes__label"
htmlFor={"all" + "__" + 0}
>
{router.locale == "cy"
? "Pawb"
: "All"}{" "}
- (
{documentTypes.reduce(
(accumulator, currentItem) => {
return (
accumulator +
currentItem.count
);
},
0
)}
)
</label>
</div>
</>
{documentTypes.map((item, key) => {
return (
<div
className="govuk-checkboxes__item"
key={key}
>
<input
className="govuk-checkboxes__input"
type="checkbox"
id={
item.pinswg_isharedocumentlocations
}
key={key}
value={
item.pinswg_isharedocumentlocations
}
name={
item.pinswg_isharedocumentlocations
}
checked={
checkedItems[
item
.pinswg_isharedocumentlocations
]
}
onChange={handleCheckboxChange}
/>
<label
className="govuk-label-s govuk-checkboxes__label"
htmlFor={
item.pinswg_isharedocumentlocations
}
>
{router.locale == "cy"
? jsonpath({
path:
'$..[?(@ && @.value=="' +
item.pinswg_isharedocumentlocationsLabel +
'")].value_cy',
jsonL: transLookup,
sanbox: {},
})
: item.pinswg_isharedocumentlocationsLabel ||
t(
"case:summary-no-date-entered-label"
)}{" "}
- ({item.count})
</label>
</div>
);
})}
</div>{" "}
<div>
<button
className="govuk-button "
type="button"
onClick={(e) => {
const data = [
...document.querySelectorAll(
".govuk-checkboxes__input:checked"
),
].map((e) => e.value);
setSelectedDocumentType(data);
setCurrentPage(1);
}}
>
{t("case:documents-filter-button")}
</button>
</div>
{documentDetailsObj["@odata.count"] > 5 && (
<div
id="recordCountSelect"
className="govuk-grid-row govuk-!-margin-left-0"
>
<div className="govuk-form-group">
<label
className="govuk-label-s "
htmlFor="showNumberOfRecords"
>
{t(
"search:searchresults-show-records-label-a"
)}
<select
onChange={(e) => {
setSelectedOption(
e.target.value
);
setCurrentPage(1);
}}
value={selectedOption}
className="govuk-select"
id="showNumberOfRecords"
name="showNumberOfRecords"
>
<option value="5">5</option>
<option value="10">10</option>
<option value="20">20</option>
<option value="30">30</option>
<option value="50">50</option>
</select>{" "}
{t(
"search:searchresults-show-records-label-b"
)}
</label>
</div>
</div>
)}
</div>
</div>
<div className="govuk-!-width-two-thirds docResults">
{" "}
<dl className=" govuk-summary-list govuk-!-margin-bottom-9 results documentList">
<div className="govuk-summary-list__row results-headings">
<dd className="govuk-summary-list__key govuk-!-font-size-16 ">
<button
type="button"
onClick={() =>
sortDataBy("pinswg_name")
}
className={
orderByState == "pinswg_name"
? fieldSortState == "asc"
? `govuk-link govuk-link--no-underline govuk-!-font-weight-bold govuk-!-font-size-16 sortAsc`
: `govuk-link govuk-link--no-underline govuk-!-font-weight-bold govuk-!-font-size-16 sortDesc`
: `govuk-link govuk-link--no-underline govuk-!-font-weight-bold govuk-!-font-size-16`
}
>
{t("case:documents-name-label")}
</button>
</dd>
<dd className="govuk-summary-list__key govuk-!-font-size-16">
{/* {t("case:documents-doc-type-label")} */}
<button
type="button"
onClick={() =>
sortDataBy(
"pinswg_isharedocumentlocations"
)
}
className={
orderByState ==
"pinswg_isharedocumentlocations"
? fieldSortState == "asc"
? `govuk-link govuk-link--no-underline govuk-!-font-weight-bold govuk-!-font-size-16 sortAsc`
: `govuk-link govuk-link--no-underline govuk-!-font-weight-bold govuk-!-font-size-16 sortDesc`
: `govuk-link govuk-link--no-underline govuk-!-font-weight-bold govuk-!-font-size-16`
}
>
{t("case:documents-doc-type-label")}
</button>
</dd>
<dd className="govuk-summary-list__key govuk-!-font-size-16">
{/* {t("case:documents-date-published-label")} */}
<button
type="button"
onClick={() =>
sortDataBy(
"pinswg_documentpublisheddate"
)
}
className={
orderByState ==
"pinswg_documentpublisheddate"
? fieldSortState == "asc"
? `govuk-link govuk-link--no-underline govuk-!-font-weight-bold govuk-!-font-size-16 sortAsc`
: `govuk-link govuk-link--no-underline govuk-!-font-weight-bold govuk-!-font-size-16 sortDesc`
: `govuk-link govuk-link--no-underline govuk-!-font-weight-bold govuk-!-font-size-16`
}
>
{t(
"case:documents-date-published-label"
)}
</button>
</dd>
{/* <dd className="govuk-summary-list__key govuk-!-font-size-16">
{t("case:documents-size-label")}
</dd> */}
</div>
{showSpinnerState == true ? (
<div className="govuk-summary-list__row">
<div className="govuk-!-margin-top-4 govuk-!-margin-bottom-4 govuk-!-font-weight-bold govuk-!-font-size-20 ">
{t("common:spinner-fetching-data")}
<img
className="data-loading-icon"
src="/assets/images/loading.gif"
alt={
router.locale == "cy"
? "Nôl data"
: "Fetching data"
}
/>
</div>
</div>
) : (
documentDetailsArr.map((item, key) => {
let detailsObj = jsonpath({
path:
"$..[?(@ && @._pinswg_documentids_value=='" +
incidentid +
"')]",
json: item,
eval: true,
});
detailsObj = item;
return (
<div
className="govuk-summary-list__row"
key={key}
>
<dd className="govuk-summary-list__value govuk-!-font-size-16 ">
{showDownloadingState ===
key && (
<div className="coverLoadingLink downloading">
{/* <img
className="data-loading-icon"
src="/assets/images/loading.gif"
alt={
router.locale ==
"cy"
? "Nôl data"
: "Fetching data"
}
/> */}
</div>
)}
{!ShowDocLinks ? (
<Link
scroll={false}
href={
detailsObj.pinswg_hashlink
}
key={key}
onClick={() => {
toggleDownLoadLink(
key
),
sendGAEvent(
"event",
"DownloadedFile",
{
caseReference:
props.caseReference,
filename:
detailsObj.pinswg_name,
}
);
}}
>
<span className="results-visually-hidden">
{t(
"case:documents-name-label"
)}
:
</span>
{_.has(
detailsObj,
"pinswg_name"
)
? detailsObj.pinswg_name
: ""}
</Link>
) : (
<>
<span className="results-visually-hidden">
{t(
"case:documents-name-label"
)}
:
</span>
{_.has(
detailsObj,
"pinswg_name"
)
? detailsObj.pinswg_name
: ""}
</>
)}
</dd>
<dd className="govuk-summary-list__value govuk-!-font-size-16">
<span className="results-visually-hidden">
{t(
"case:documents-doc-type-label"
)}
:
</span>
{router.locale == "cy"
? jsonpath({
path:
'$..[?(@ && @.value=="' +
detailsObj[
"pinswg_isharedocumentlocations@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
json: transLookup,
eval: true,
})
: detailsObj[
"pinswg_isharedocumentlocations@OData.Community.Display.V1.FormattedValue"
] ||
t(
"case:summary-no-date-entered-label"
)}
</dd>
<dd className="govuk-summary-list__value govuk-!-font-size-16">
<span className="results-visually-hidden">
{t(
"case:documents-date-published-label"
)}
:
</span>
{/* {
detailsObj.pinswg_documentpublisheddate
}
{
detailsObj.pinswg_latestpublisheddate
} */}
{detailsObj.pinswg_documentpublisheddate !=
null
? formatDates(
detailsObj.pinswg_documentpublisheddate
)
: formatDates(
detailsObj.pinswg_latestpublisheddate
)}
{/* {_.has(
detailsObj,
"pinswg_documentpublisheddate"
)
? formatDates(
detailsObj.pinswg_documentpublisheddate
)
: _.has(
detailsObj,
"pinswg_latestpublisheddate"
)
? formatDates(
detailsObj.pinswg_latestpublisheddate
)
: ""} */}
</dd>
{/* <dd className="govuk-summary-list__value govuk-!-font-size-16">
<span className="results-visually-hidden">
{t("case:documents-size-label")}:
</span>
92
</dd> */}
</div>
);
})
)}
</dl>
<PaginationControl
showNoOfRecords={selectedOption}
currentPage={currentPage}
searchResultsObj={documentDetailsObj}
spinnerState={spinnerState}
orderBy={orderByState}
fieldSort={fieldSortState}
getDocumentResults={getDocumentResults}
/>
</div>
</div>
</>
);
};
const getDocumentTypes = useCallback(() => {
getSearchDocumentTypes(props.incidentid).then((data) => {
setDocumentTypes(data);
@@ -427,8 +931,9 @@ const DocumentDetails = (props) => {
selectedOption,
selectedDocumentType
)
.then((data) => data)
// .then((data) => data)
.then((data) => {
setDocumentSearchState(true);
setDocumentDetails(data);
setShowSpinnerState(false);
});
@@ -498,8 +1003,10 @@ const DocumentDetails = (props) => {
};
const [showDocumentSearchState, setDocumentSearchState] = useState(false);
const [orderByState, setOrderbyState] = useState("createdon");
const [fieldSortState, setfieldSortState] = useState("asc");
const [orderByState, setOrderbyState] = useState(
"pinswg_documentpublisheddate"
);
const [fieldSortState, setfieldSortState] = useState("desc");
let documentSearchState = () => {
showDocumentSearchState == true
@@ -509,14 +1016,14 @@ const DocumentDetails = (props) => {
const sortDataBy = (whichField) => {
setOrderbyState(whichField);
setfieldSortState("asc");
setfieldSortState("desc");
getDocumentResults(1, whichField, fieldSortState);
whichField == orderByState
? fieldSortState == "desc"
? setfieldSortState("asc")
: setfieldSortState("desc")
: setfieldSortState("asc");
? fieldSortState == "asc"
? setfieldSortState("desc")
: setfieldSortState("asc")
: setfieldSortState("desc");
setCurrentPage(1);
setShowSpinnerState(true);
};
@@ -551,7 +1058,7 @@ const DocumentDetails = (props) => {
return docObj;
};
const searchDocumentResultsObj = docDetailsObj();
//const searchDocumentResultsObj = docDetailsObj();
}, [
incidentid,
setDocumentDetails,
@@ -563,30 +1070,28 @@ const DocumentDetails = (props) => {
getDocumentResults,
]);
return (
<>
<div>
<div className="govuk-grid-row">
<div className="govuk-grid-column-full">
<h2>{t("case:documents-heading-label")}</h2>
{_.isEmpty(documentDetailsObj.value) ? (
<div className="govuk-grid-row">
<div className="govuk-grid-column-two-thirds">
<h3>
{showDocumentSearchState == false
? t("case:documents-checking-label")
: t(
"case:documents-non-available-label"
)}
</h3>
</div>
</div>
) : (
DocumentView(documentDetailsArr)
)}
<div className="govuk-grid-row">
<div className="govuk-grid-column-full">
<h2 className="govuk-heading-m ">
{t("case:documents-heading-label")}
</h2>
{_.isEmpty(documentDetailsObj.value) ? (
<div className="govuk-grid-row">
<div className="govuk-grid-column-two-thirds">
<h3>
{showDocumentSearchState == false
? t("case:documents-checking-label")
: t("case:documents-non-available-label")}
</h3>
</div>
</div>
</div>
) : showFilteredDocs == "true" ? (
FilteredDocumentView(documentDetailsArr)
) : (
DocumentView(documentDetailsArr)
)}
</div>
</>
</div>
);
};
+221
View File
@@ -0,0 +1,221 @@
import { setEventDetails } from "../../store/searchOutput/action";
import { setCurrentPage } from "../../store/currentView/action";
import { connect } from "react-redux";
import useTranslation from "next-translate/useTranslation";
import { formatDates } from "../utils";
const EIADetails = (props) => {
let { t } = useTranslation();
const EventView = (eventsArr) => {
eventsArr = eventsArr.value;
return eventsArr.map((item, key) => {
<div>{item.pinswg_name}</div>;
});
};
const eventsArr = props.eventsObj?.value || [];
// event publishiing flag set to true displa
function hasOwnPropertyAndNotNull(obj, property) {
return obj.hasOwnProperty(property) && obj[property] !== null;
}
//console.log(eventsArr.length > 0);
return (
eventsArr.length > 0 && (
<div className="govuk-grid-row">
<div className="card">
<div className="card-body">
<h2 className="govuk-heading-m ">
{t("case:event-title")}
</h2>
{eventsArr.map(
(item, key) =>
item.pinswg_eventpublishflag && (
<>
{" "}
<div className="eventContainer">
<div className="eventColumn">
<div>
<b>
{" "}
{t(
"case:event-name-label"
)}
</b>
: {item.pinswg_name}
</div>
{hasOwnPropertyAndNotNull(
item,
"pinswg_eventname"
) && (
<div>
<b>
{t(
"case:event-event-name-label"
)}
</b>
:{" "}
{item.pinswg_eventname}
</div>
)}
</div>
<div className="eventColumn">
{hasOwnPropertyAndNotNull(
item,
"pinswg_eventaddressline1"
) && (
<>
<div>
<b>
{t(
"case:event-address-label"
)}
</b>
:
</div>
<div>
{
item.pinswg_eventaddressline1
}
</div>
</>
)}
{hasOwnPropertyAndNotNull(
item,
"pinswg_eventaddressline2"
) && (
<div>
{
item.pinswg_eventaddressline2
}
</div>
)}
{hasOwnPropertyAndNotNull(
item,
"pinswg_eventaddresstown"
) && (
<div>
{
item.pinswg_eventaddresstown
}
</div>
)}
{hasOwnPropertyAndNotNull(
item,
"pinswg_eventaddresscounty"
) && (
<div>
{
item.pinswg_eventaddresscounty
}
</div>
)}
{hasOwnPropertyAndNotNull(
item,
"pinswg_eventaddresscounty"
) && (
<div>
{
item.pinswg_eventaddresspostcode
}
</div>
)}
</div>
{/* type of event
start date date of event - end date of event
if virtual event no address showNoOfRecords
show event address */}
<div className="eventColumn">
{hasOwnPropertyAndNotNull(
item,
"pinswg_dateeventrequested"
) && (
<div>
<b>
{t(
"case:event-start-date-label"
)}
</b>
:{" "}
{formatDates(
item.pinswg_dateeventrequested
)}
</div>
)}
{hasOwnPropertyAndNotNull(
item,
"pinswg_enddateoftheevent"
) && (
<div>
<b>
{t(
"case:event-end-date-label"
)}
</b>
:{" "}
{item.pinswg_enddateoftheevent !=
null &&
formatDates(
item.pinswg_enddateoftheevent
)}
</div>
)}
</div>
<div className="eventColumn">
{hasOwnPropertyAndNotNull(
item,
[
"pinswg_typeofevent@OData.Community.Display.V1.FormattedValue",
]
) && (
<div>
<b>
{t(
"case:event-type-of-event-label"
)}
</b>
:{" "}
{
item[
"pinswg_typeofevent@OData.Community.Display.V1.FormattedValue"
]
}
</div>
)}
</div>
</div>
</>
)
)}{" "}
</div>
</div>
</div>
)
);
};
const mapStateToProps = (state) => {
return {
...state,
};
};
const mapDispatchToProps = (dispatch) => {
return {
setEventDetails: (eventsObj) => {
dispatch(setEventDetails(eventsObj));
},
setCurrentPage: (currentPage) => {
dispatch(setCurrentPage(currentPage));
},
};
};
export default connect(mapStateToProps, mapDispatchToProps)(EIADetails);
+221
View File
@@ -0,0 +1,221 @@
import { setEventDetails } from "../../store/searchOutput/action";
import { setCurrentPage } from "../../store/currentView/action";
import { connect } from "react-redux";
import useTranslation from "next-translate/useTranslation";
import { formatDates } from "../utils";
const EventsDetails = (props) => {
let { t } = useTranslation();
const EventView = (eventsArr) => {
eventsArr = eventsArr.value;
return eventsArr.map((item, key) => {
<div>{item.pinswg_name}</div>;
});
};
const eventsArr = props.eventsObj?.value || [];
// event publishiing flag set to true displa
function hasOwnPropertyAndNotNull(obj, property) {
return obj.hasOwnProperty(property) && obj[property] !== null;
}
//console.log(eventsArr.length > 0);
return (
eventsArr.length > 0 && (
<div className="govuk-grid-row">
<div className="card">
<div className="card-body">
<h2 className="govuk-heading-m ">
{t("case:event-title")}
</h2>
{eventsArr.map(
(item, key) =>
item.pinswg_eventpublishflag && (
<>
{" "}
<div className="eventContainer">
<div className="eventColumn">
<div>
<b>
{" "}
{t(
"case:event-name-label"
)}
</b>
: {item.pinswg_name}
</div>
{hasOwnPropertyAndNotNull(
item,
"pinswg_eventname"
) && (
<div>
<b>
{t(
"case:event-event-name-label"
)}
</b>
:{" "}
{item.pinswg_eventname}
</div>
)}
</div>
<div className="eventColumn">
{hasOwnPropertyAndNotNull(
item,
"pinswg_eventaddressline1"
) && (
<>
<div>
<b>
{t(
"case:event-address-label"
)}
</b>
:
</div>
<div>
{
item.pinswg_eventaddressline1
}
</div>
</>
)}
{hasOwnPropertyAndNotNull(
item,
"pinswg_eventaddressline2"
) && (
<div>
{
item.pinswg_eventaddressline2
}
</div>
)}
{hasOwnPropertyAndNotNull(
item,
"pinswg_eventaddresstown"
) && (
<div>
{
item.pinswg_eventaddresstown
}
</div>
)}
{hasOwnPropertyAndNotNull(
item,
"pinswg_eventaddresscounty"
) && (
<div>
{
item.pinswg_eventaddresscounty
}
</div>
)}
{hasOwnPropertyAndNotNull(
item,
"pinswg_eventaddresscounty"
) && (
<div>
{
item.pinswg_eventaddresspostcode
}
</div>
)}
</div>
{/* type of event
start date date of event - end date of event
if virtual event no address showNoOfRecords
show event address */}
<div className="eventColumn">
{hasOwnPropertyAndNotNull(
item,
"pinswg_dateeventrequested"
) && (
<div>
<b>
{t(
"case:event-start-date-label"
)}
</b>
:{" "}
{formatDates(
item.pinswg_dateeventrequested
)}
</div>
)}
{hasOwnPropertyAndNotNull(
item,
"pinswg_enddateoftheevent"
) && (
<div>
<b>
{t(
"case:event-end-date-label"
)}
</b>
:{" "}
{item.pinswg_enddateoftheevent !=
null &&
formatDates(
item.pinswg_enddateoftheevent
)}
</div>
)}
</div>
<div className="eventColumn">
{hasOwnPropertyAndNotNull(
item,
[
"pinswg_typeofevent@OData.Community.Display.V1.FormattedValue",
]
) && (
<div>
<b>
{t(
"case:event-type-of-event-label"
)}
</b>
:{" "}
{
item[
"pinswg_typeofevent@OData.Community.Display.V1.FormattedValue"
]
}
</div>
)}
</div>
</div>
</>
)
)}{" "}
</div>
</div>
</div>
)
);
};
const mapStateToProps = (state) => {
return {
...state,
};
};
const mapDispatchToProps = (dispatch) => {
return {
setEventDetails: (eventsObj) => {
dispatch(setEventDetails(eventsObj));
},
setCurrentPage: (currentPage) => {
dispatch(setCurrentPage(currentPage));
},
};
};
export default connect(mapStateToProps, mapDispatchToProps)(EventsDetails);
@@ -0,0 +1,364 @@
import useTranslation from "next-translate/useTranslation";
import { useRouter } from "next/router";
import { connect } from "react-redux";
import { Field, change, reduxForm } from "redux-form";
import { useState } from "react";
import { bytesToSize, getThumbnailIconByExtension } from "../../utils";
import {
FileUploadField,
RenderCondtionalRadioList,
RenderPickList,
RenderRichMultiline,
shouldDisableButton,
} from "./representationElements";
import { useDropzone } from "react-dropzone";
import {
setRepresentationCapacity,
setRepresentationSubmit,
setFilesForRepresentations,
} from "../../../store/currentView/action";
const ConsultationAgent = (props) => {
let { t } = useTranslation();
const router = useRouter();
const { locale } = router;
const {
formObj,
appellantApplicantRepresentationArr,
setRepresentationCapacity,
setRepresentationSubmit,
currentView,
setRepFileName,
updateRepresentation,
setSavingStatus,
savingStatus,
setFilesForRepresentations,
} = props;
const { acceptedFiles, getRootProps, getInputProps } = useDropzone();
if (JSON.stringify(formObj) != "{}") {
setRepFileName(formObj.representationForm.values);
let filterFilesList = props.currentView.caseReference.hasOwnProperty(
"repDetails"
)
? props.currentView.caseReference.repDetails.hasOwnProperty(
"filesList"
)
? props.currentView.caseReference.repDetails.filesList.filter(
function (el) {
return el != null;
}
)
: []
: [];
const files = acceptedFiles.map((file) => (
<li key={file.path}>
{file.path} - {file.size} bytes
</li>
));
const required = (value) => (value ? undefined : "Required");
return (
<>
<div className="govuk-grid-row">
<div className="govuk-form-group">
{typeof formObj.representationForm.values
.representationType == "undefined" &&
props.representationType != "Select..." ? (
<>
<h2 className="govuk-heading-m ">
{t(
"myrepresentations:consultation-from-an-agent-heading"
)}
</h2>
<label
className="govuk-label govuk-body-m"
htmlFor="representationType"
>
{t(
"myrepresentations:kind-of-consultation-label"
)}
</label>
<Field
name="representationType"
component={RenderPickList}
datafieldname="representationType"
optionsArr={
appellantApplicantRepresentationArr
}
/>
</>
) : (
<label className="govuk-label govuk-body-m">
{t("myrepresentations:representation-type")}:{" "}
{router.locale == "cy"
? formObj.representationForm.values
.representationType == "Questionnaire"
? "Holiadur"
: formObj.representationForm.values
.representationType == "Statement"
? "Datganiad"
: formObj.representationForm.values
.representationType ==
"Final comments"
? "Sylwadau terfynol"
: formObj.representationForm.values
.representationType
: formObj.representationForm.values
.representationType}
</label>
)}
</div>
</div>
{(typeof props.representationType != "undefined" ||
typeof formObj.representationForm.values
.representationType != "undefined") && (
<>
<div className="govuk-grid-row">
<div className="govuk-form-group">
<Field
name="representationOnBehalfOf"
datafieldname="representationOnBehalfOf"
// label={t("myrepresentations:capacity-select-what-capacity-label")}
options={["Yes", "No"]}
id="representationOnBehalfOf"
className="govuk-radios__input"
errorMsg={t(
"myrepresentations:select-an-option-label"
)}
component={RenderCondtionalRadioList}
validate={[required]}
legend={t("case:representation-onbehalfof")}
hint={t(
"myrepresentations:representation-onbehalfof-hint"
)}
/>
</div>
</div>
<div className="govuk-grid-row">
<div className="govuk-form-group">
<p className="govuk-body">
{formObj.representationForm.values
.representationType ==
"Consultation Response"
? t(
"myrepresentations:enter-comment-label"
)
: t(
"myrepresentations:consultation-comment-label"
)}
</p>
<fieldset
className="govuk-fieldset"
aria-describedby="commentBox-hint"
>
{formObj.representationForm.values
.representationType ==
"Consultation Response" && (
<div className="govuk-form-group">
<Field
name="representationComments"
id="representationComments"
component={RenderRichMultiline}
type="text"
rows="5"
className="govuk-textarea govuk-input--width-30"
aria-describedby={
props.name + "-hint"
}
/>
{formObj.representationForm.values
.appealType == "846040004" ? (
<p className="govuk-hint govuk-!-font-size-14 govuk-!-margin-top-5">
{t(
"myrepresentations:publish-policy-label"
)}{" "}
<a
href={t(
"myrepresentations:publish-policy-link"
)}
>
{t(
"myrepresentations:publish-policy-link-label"
)}
</a>{" "}
{t(
"myrepresentations:publish-policy-label-two"
)}
</p>
) : (
<p className="govuk-hint govuk-!-font-size-14 govuk-!-margin-top-5">
{t(
"myrepresentations:publish-policy-label"
)}{" "}
<a
href={t(
"myrepresentations:publish-policy-link"
)}
>
{t(
"myrepresentations:publish-policy-link-label"
)}
</a>{" "}
{t(
"myrepresentations:publish-policy-label-two"
)}
</p>
)}
</div>
)}
<div className="govuk-form-group govuk-!-margin-bottom-9">
<FileUploadField
name={"representationDocuments"}
id={"representationDocuments"}
label={t(
"myrepresentations:add-files-label"
)}
ticketnumber={
props.props.caseReference
}
hint={"sdsd"}
fileList={
props.currentView.fileList
// props.currentView.caseReference.hasOwnProperty(
// "repDetails"
// )
// ? props.currentView.caseReference.repDetails.hasOwnProperty(
// "filesList"
// ) &&
// props.currentView
// .caseReference
// .repDetails.filesList
// .length > 0
// ? props.currentView
// .caseReference
// .repDetails
// .filesList
// : []
// : []
}
setFilesForRepresentations={
setFilesForRepresentations
}
containerID={
props.props.props.accountDetails
.containerID
}
filenamePrefix={props.formObj}
props={props.props.props}
setCurrentReference={
props.setCurrentReference
}
/>
</div>
</fieldset>
</div>{" "}
</div>
</>
)}
{typeof formObj.representationForm.values.representationType !=
"undefined" && (
<div className="govuk-grid-row">
<div className="govuk-button-group">
<button
type="submit"
className="govuk-button"
data-module="govuk-button"
disabled={shouldDisableButton({
props,
formObj,
})}
>
{t("common:continue-button")}
</button>
{/* {router.query.state != "edit" && (
<a
onClick={() => {
setRepresentationCapacity();
props.updateField(
"representationForm",
"representationCapacity",
""
);
}}
className="govuk-link"
>
{t("common:back-link")}
</a>
)} */}
{savingStatus ? (
<span className=" progress-save-active">
{router.locale == "cy"
? "Nôl data"
: "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 progress-save "
onClick={() => {
let valuesObj =
props.props.props.form[props.form]
.values || {};
//console.log("valuesobj:", valuesObj);
delete valuesObj[
"_pinswg_appellant_value"
];
//console.log("on save:", valuesObj);
updateRepresentation(
valuesObj,
false,
true
);
}}
>
{t("common:save-exit-button")}
</button>
)}
</div>
</div>
)}
</>
);
}
};
const mapDispatchToProps = (dispatch) => ({
updateField: (form, field, newValue) =>
dispatch(change(form, field, newValue)),
setFilesForRepresentations: (fileList) => {
dispatch(setFilesForRepresentations(fileList));
},
});
export default connect(
null,
mapDispatchToProps
)(
reduxForm({
form: "representationForm",
enableReinitialize: true,
destroyOnUnmount: false,
})(ConsultationAgent)
);
@@ -0,0 +1,337 @@
import useTranslation from "next-translate/useTranslation";
import { useRouter } from "next/router";
import { connect } from "react-redux";
import { Field, change, reduxForm } from "redux-form";
import { useState } from "react";
import { bytesToSize, getThumbnailIconByExtension } from "../../utils";
import {
FileUploadField,
RenderPickList,
RenderRichMultiline,
shouldDisableButton,
} from "./representationElements";
import { useDropzone } from "react-dropzone";
import {
setRepresentationCapacity,
setRepresentationSubmit,
setFilesForRepresentations,
} from "../../../store/currentView/action";
const ConsultationAppellant = (props) => {
let { t } = useTranslation();
const router = useRouter();
const { locale } = router;
const {
formObj,
appellantApplicantRepresentationArr,
setRepresentationCapacity,
setRepresentationSubmit,
currentView,
setRepFileName,
updateRepresentation,
setSavingStatus,
savingStatus,
setFilesForRepresentations,
} = props;
const { acceptedFiles, getRootProps, getInputProps } = useDropzone();
console.log(JSON.stringify(formObj) == "{}" ? "empty" : "value");
if (JSON.stringify(formObj) != "{}") {
setRepFileName(formObj.representationForm.values);
let filterFilesList = props.currentView.caseReference.hasOwnProperty(
"repDetails"
)
? props.currentView.caseReference.repDetails.hasOwnProperty(
"filesList"
)
? props.currentView.caseReference.repDetails.filesList.filter(
function (el) {
return el != null;
}
)
: []
: [];
filterFilesList = filterFilesList.filter(
(value, index, self) =>
index === self.findIndex((t) => t.name === value.name)
);
return (
<>
<div className="govuk-grid-row">
<div className="govuk-form-group">
{typeof formObj.representationForm.values
.representationType == "undefined" &&
props.representationType != "Select..." ? (
<>
<h2 className="govuk-heading-m ">
{t(
"myrepresentations:consultation-from-an-appellant-heading"
)}
</h2>
<label
className="govuk-label govuk-body-m"
htmlFor="representationType"
>
{t(
"myrepresentations:kind-of-consultation-label"
)}
</label>
<Field
name="representationType"
component={RenderPickList}
datafieldname="representationType"
optionsArr={
appellantApplicantRepresentationArr
}
/>
</>
) : (
<label className="govuk-label govuk-body-m">
{t("myrepresentations:representation-type")}:{" "}
{router.locale == "cy"
? formObj.representationForm.values
.representationType == "Questionnaire"
? "Holiadur"
: formObj.representationForm.values
.representationType == "Statement"
? "Datganiad"
: formObj.representationForm.values
.representationType ==
"Final comments"
? "Sylwadau terfynol"
: formObj.representationForm.values
.representationType
: formObj.representationForm.values
.representationType}
</label>
)}
</div>
</div>
{(typeof props.representationType != "undefined" ||
typeof formObj.representationForm.values
.representationType != "undefined") && (
<div className="govuk-grid-row">
<div className="govuk-form-group">
<p className="govuk-body">
{formObj.representationForm.values
.representationType ==
"Consultation Response"
? t("myrepresentations:enter-comment-label")
: t(
"myrepresentations:consultation-comment-label"
)}
</p>
<fieldset
className="govuk-fieldset"
aria-describedby="commentBox-hint"
>
{formObj.representationForm.values
.representationType ==
"Consultation Response" && (
<div className="govuk-form-group">
<Field
name="representationComments"
id="representationComments"
component={RenderRichMultiline}
type="text"
rows="5"
className="govuk-textarea govuk-input--width-30"
aria-describedby={
props.name + "-hint"
}
/>
{formObj.representationForm.values
.appealType == "846040004" ? (
<p className="govuk-hint govuk-!-font-size-14 govuk-!-margin-top-5">
{t(
"myrepresentations:publish-policy-label"
)}{" "}
<a
href={t(
"myrepresentations:publish-policy-link"
)}
>
{t(
"myrepresentations:publish-policy-link-label"
)}
</a>{" "}
{t(
"myrepresentations:publish-policy-label-two"
)}
</p>
) : (
<p className="govuk-hint govuk-!-font-size-14 govuk-!-margin-top-5">
{t(
"myrepresentations:publish-policy-label"
)}{" "}
<a
href={t(
"myrepresentations:publish-policy-link"
)}
>
{t(
"myrepresentations:publish-policy-link-label"
)}
</a>{" "}
{t(
"myrepresentations:publish-policy-label-two"
)}
</p>
)}
</div>
)}
<div className="govuk-form-group govuk-!-margin-bottom-9">
<FileUploadField
name={"representationDocuments"}
id={"representationDocuments"}
label={t(
"myrepresentations:add-files-label"
)}
ticketnumber={props.props.caseReference}
hint={"sdsd"}
fileList={
props.currentView.fileList
// props.currentView.caseReference.hasOwnProperty(
// "repDetails"
// )
// ? props.currentView.caseReference.repDetails.hasOwnProperty(
// "filesList"
// ) &&
// props.currentView
// .caseReference.repDetails
// .filesList.length > 0
// ? props.currentView
// .caseReference
// .repDetails.filesList
// : []
// : []
}
setFilesForRepresentations={
setFilesForRepresentations
}
containerID={
props.props.props.accountDetails
.containerID
}
filenamePrefix={props.formObj}
props={props.props.props}
setCurrentReference={
props.setCurrentReference
}
/>
</div>
</fieldset>
</div>{" "}
</div>
)}
{typeof formObj.representationForm.values.representationType !=
"undefined" && (
<div className="govuk-grid-row">
<div className="govuk-button-group">
<button
type="submit"
className="govuk-button"
data-module="govuk-button"
disabled={shouldDisableButton({
props,
formObj,
})}
>
{t("common:continue-button")}
</button>
{/* {router.query.state != "edit" && (
<a
onClick={() => {
setRepresentationCapacity();
props.updateField(
"representationForm",
"representationType",
""
);
}}
className="govuk-link"
>
{t("common:back-link")}
</a>
)} */}
{savingStatus ? (
<span className=" progress-save-active">
{router.locale == "cy"
? "Nôl data"
: "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 progress-save "
onClick={() => {
let valuesObj =
props.props.props.form[props.form]
.values || {};
//console.log("valuesobj:", valuesObj);
delete valuesObj[
"_pinswg_appellant_value"
];
//console.log("on save:", valuesObj);
updateRepresentation(
valuesObj,
false,
true
);
}}
>
{t("common:save-exit-button")}
</button>
)}
</div>
</div>
)}
</>
);
}
};
//const mapStateToProps = (state, props) => {};
const mapDispatchToProps = (dispatch) => {
return {
updateField: (form, field, newValue) =>
dispatch(change(form, field, newValue)),
setFilesForRepresentations: (fileList) => {
dispatch(setFilesForRepresentations(fileList));
},
};
};
export default connect(
null,
mapDispatchToProps
)(
reduxForm({
form: "representationForm",
enableReinitialize: true,
destroyOnUnmount: false,
})(ConsultationAppellant)
);
@@ -0,0 +1,378 @@
import useTranslation from "next-translate/useTranslation";
import { useRouter } from "next/router";
import { connect } from "react-redux";
import { Field, change, reduxForm } from "redux-form";
import { useState } from "react";
import { bytesToSize, getThumbnailIconByExtension } from "../../utils";
import {
FileUploadField,
RenderCondtionalRadioList,
RenderPickList,
RenderRichMultiline,
shouldDisableButton,
} from "./representationElements";
import { useDropzone } from "react-dropzone";
import {
setRepresentationCapacity,
setRepresentationSubmit,
setFilesForRepresentations,
} from "../../../store/currentView/action";
const ConsultationInterestedPartyPerson = (props) => {
let { t } = useTranslation();
const router = useRouter();
const { locale } = router;
const {
formObj,
interestedPersonRepresentationArr,
setRepresentationCapacity,
setRepresentationSubmit,
setRepFileName,
updateRepresentation,
setSavingStatus,
savingStatus,
setFilesForRepresentations,
} = props;
const required = (value) => (value ? undefined : "Required");
const { acceptedFiles, getRootProps, getInputProps } = useDropzone();
if (JSON.stringify(formObj) != "{}") {
setRepFileName(formObj.representationForm.values);
let filterFilesList = props.currentView.caseReference.hasOwnProperty(
"repDetails"
)
? props.currentView.caseReference.repDetails.hasOwnProperty(
"filesList"
)
? props.currentView.caseReference.repDetails.filesList.filter(
function (el) {
return el != null;
}
)
: []
: [];
const files = acceptedFiles.map((file) => (
<li key={file.path}>
{file.path} - {file.size} bytes
</li>
));
return (
<>
<div className="govuk-grid-row">
<div className="govuk-form-group">
{typeof formObj.representationForm.values
.representationType == "undefined" &&
props.representationType != "Select..." ? (
<>
<h2 className="govuk-heading-m ">
{t(
"myrepresentations:consultation-from-an-interested-person-heading"
)}
</h2>
<label
className="govuk-label govuk-body-m"
htmlFor="representationType"
>
{t(
"myrepresentations:kind-of-consultation-label"
)}
</label>
<Field
name="representationType"
component={RenderPickList}
datafieldname="representationType"
validate={[required]}
optionsArr={
interestedPersonRepresentationArr
}
errorMsg={t(
"myrepresentations:select-an-option-label"
)}
/>
</>
) : (
<label className="govuk-label govuk-body-m">
{t("myrepresentations:representation-type")}:{" "}
{router.locale == "cy"
? formObj.representationForm.values
.representationType == "Questionnaire"
? "Holiadur"
: formObj.representationForm.values
.representationType == "Statement"
? "Datganiad"
: formObj.representationForm.values
.representationType ==
"Final comments"
? "Sylwadau terfynol"
: formObj.representationForm.values
.representationType
: formObj.representationForm.values
.representationType}
</label>
)}
</div>
</div>
{(typeof props.representationType != "undefined" ||
typeof formObj.representationForm.values
.representationType != "undefined") && (
<>
<div className="govuk-grid-row">
<div className="govuk-form-group">
<Field
name="representationOnBehalfOf"
datafieldname="representationOnBehalfOf"
// label="In what capacity do you wish to make representations on this case?"
options={[
t(
"myrepresentations:questionnaire-yes"
),
t("myrepresentations:questionnaire-no"),
]}
id="representationOnBehalfOf"
className="govuk-radios__input"
errorMsg={t(
"myrepresentations:select-an-option-label"
)}
component={RenderCondtionalRadioList}
validate={[required]}
legend={t("case:representation-onbehalfof")}
hint={t(
"myrepresentations:representation-onbehalfof-hint"
)}
/>
</div>
</div>
<div className="govuk-grid-row">
<div className="govuk-form-group">
<p className="govuk-body">
{formObj.representationForm.values
.representationType ==
"Consultation Response"
? t(
"myrepresentations:enter-comment-label"
)
: t(
"myrepresentations:consultation-comment-label"
)}
</p>
<fieldset
className="govuk-fieldset"
aria-describedby="commentBox-hint"
>
{" "}
{formObj.representationForm.values
.representationType ==
"Consultation Response" && (
<div className="govuk-form-group">
<Field
name="representationComments"
id="representationComments"
component={RenderRichMultiline}
type="text"
rows="5"
className="govuk-textarea govuk-input--width-30"
aria-describedby={
props.name + "-hint"
}
/>
{formObj.representationForm.values
.appealType == "846040004" ? (
<p className="govuk-hint govuk-!-font-size-14 govuk-!-margin-top-5">
{t(
"myrepresentations:publish-policy-label"
)}{" "}
<a
href={t(
"myrepresentations:publish-policy-link"
)}
>
{t(
"myrepresentations:publish-policy-link-label"
)}
</a>{" "}
{t(
"myrepresentations:publish-policy-label-two"
)}
</p>
) : (
<p className="govuk-hint govuk-!-font-size-14 govuk-!-margin-top-5">
{t(
"myrepresentations:publish-policy-label"
)}{" "}
<a
href={t(
"myrepresentations:publish-policy-link"
)}
>
{t(
"myrepresentations:publish-policy-link-label"
)}
</a>{" "}
{t(
"myrepresentations:publish-policy-label-two"
)}
</p>
)}
</div>
)}
<div className="govuk-form-group govuk-!-margin-bottom-9">
<FileUploadField
name={"representationDocuments"}
id={"representationDocuments"}
label={t(
"myrepresentations:add-files-label"
)}
ticketnumber={
props.props.caseReference
}
hint={"sdsd"}
fileList={
props.currentView.fileList
// props.currentView.caseReference.hasOwnProperty(
// "repDetails"
// )
// ? props.currentView.caseReference.repDetails.hasOwnProperty(
// "filesList"
// ) &&
// props.currentView
// .caseReference
// .repDetails.filesList
// .length > 0
// ? props.currentView
// .caseReference
// .repDetails
// .filesList
// : []
// : []
}
setFilesForRepresentations={
setFilesForRepresentations
}
containerID={
props.props.props.accountDetails
.containerID
}
filenamePrefix={props.formObj}
props={props.props.props}
setCurrentReference={
props.setCurrentReference
}
/>
</div>
</fieldset>
</div>{" "}
</div>
</>
)}
{typeof formObj.representationForm.values.representationType !=
"undefined" && (
<div className="govuk-grid-row">
<div className="govuk-button-group">
<button
type="submit"
className="govuk-button"
data-module="govuk-button"
disabled={shouldDisableButton({
props,
formObj,
})}
>
{t("common:continue-button")}
</button>
{/*
<a
onClick={() => {
setRepresentationCapacity();
props.updateField(
"representationForm",
"representationCapacity",
""
);
props.updateField(
"representationForm",
"representationType",
""
);
}}
className="govuk-link"
>
{t("case:summary-back-button-label")}
</a> */}
{savingStatus ? (
<span className=" progress-save-active">
{router.locale == "cy"
? "Nôl data"
: "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 progress-save "
onClick={() => {
let valuesObj =
props.props.props.form[props.form]
.values || {};
//console.log("valuesobj:", valuesObj);
delete valuesObj[
"_pinswg_appellant_value"
];
//console.log("on save:", valuesObj);
updateRepresentation(
valuesObj,
false,
true
);
}}
>
{t("common:save-exit-button")}
</button>
)}
</div>
</div>
)}
</>
);
}
};
//const mapStateToProps = (state, props) => {};
const mapDispatchToProps = (dispatch) => ({
updateField: (form, field, newValue) =>
dispatch(change(form, field, newValue)),
setFilesForRepresentations: (fileList) => {
dispatch(setFilesForRepresentations(fileList));
},
});
export default connect(
null,
mapDispatchToProps
)(
reduxForm({
form: "representationForm",
enableReinitialize: true,
destroyOnUnmount: false,
})(ConsultationInterestedPartyPerson)
);
File diff suppressed because it is too large Load Diff
@@ -10,9 +10,15 @@ import {
RenderCondtionalRadioList,
RenderPickList,
RenderRichMultiline,
shouldDisableButton,
} from "./representationElements";
import { useDropzone } from "react-dropzone";
import {
setRepresentationCapacity,
setRepresentationSubmit,
setFilesForRepresentations,
} from "../../../store/currentView/action";
const RepAgent = (props) => {
let { t } = useTranslation();
@@ -27,264 +33,283 @@ const RepAgent = (props) => {
currentView,
setRepFileName,
updateRepresentation,
setSavingStatus,
savingStatus,
setFilesForRepresentations,
} = props;
const { acceptedFiles, getRootProps, getInputProps } = useDropzone();
const [savingStatus, setSavingStatus] = useState(false);
setRepFileName(formObj.representationForm.values);
if (JSON.stringify(formObj) != "{}") {
setRepFileName(formObj.representationForm.values);
let filterFilesList =
props.currentView.caseReference.repDetails.filesList.filter(function (
el
) {
return el != null;
});
let filterFilesList = props.currentView.caseReference.hasOwnProperty(
"repDetails"
)
? props.currentView.caseReference.repDetails.hasOwnProperty(
"filesList"
)
? props.currentView.caseReference.repDetails.filesList.filter(
function (el) {
return el != null;
}
)
: []
: [];
const files = acceptedFiles.map((file) => (
<li key={file.path}>
{file.path} - {file.size} bytes
</li>
));
const required = (value) => (value ? undefined : "Required");
const files = acceptedFiles.map((file) => (
<li key={file.path}>
{file.path} - {file.size} bytes
</li>
));
const required = (value) => (value ? undefined : "Required");
return (
<>
<div className="govuk-grid-row">
<div className="govuk-form-group">
{typeof formObj.representationForm.values
.representationType == "undefined" &&
props.representationType != "Select..." ? (
<>
<h2 className="govuk-heading-m ">
{t(
"myrepresentations:representation-from-an-agent-heading"
)}
</h2>
<label
className="govuk-label govuk-body-m"
htmlFor="representationType"
>
{t("myrepresentations:kind-of-rep-label")}
</label>
<Field
name="representationType"
component={RenderPickList}
datafieldname="representationType"
optionsArr={appellantApplicantRepresentationArr}
/>
</>
) : (
<label className="govuk-label govuk-body-m">
{t("myrepresentations:representation-type")}:{" "}
{router.locale == "cy"
? formObj.representationForm.values
.representationType == "Questionnaire"
? "Holiadur"
: formObj.representationForm.values
.representationType == "Statement"
? "Datganiad"
: formObj.representationForm.values
.representationType ==
"Final comments"
? "Sylwadau terfynol"
: formObj.representationForm.values
.representationType
: formObj.representationForm.values
.representationType}
</label>
)}
</div>
</div>
{(typeof props.representationType != "undefined" ||
typeof formObj.representationForm.values.representationType !=
"undefined") && (
<>
<div className="govuk-grid-row">
<div className="govuk-form-group">
<Field
name="representationOnBehalfOf"
datafieldname="representationOnBehalfOf"
// label={t("myrepresentations:capacity-select-what-capacity-label")}
options={["Yes", "No"]}
id="representationOnBehalfOf"
className="govuk-radios__input"
errorMsg={t(
"myrepresentations:select-an-option-label"
)}
component={RenderCondtionalRadioList}
validate={[required]}
legend={
"Are you acting on behalf of a company, group or organisation?"
}
/>
</div>
</div>
<div className="govuk-grid-row">
<div className="govuk-form-group">
<p className="govuk-body">
{t("myrepresentations:enter-comment-label")}
</p>
<fieldset
className="govuk-fieldset"
aria-describedby="commentBox-hint"
>
<div
id="commentBox-hint"
className="govuk-hint"
>
{t(
"myrepresentations:comments-set-out-label"
)}
:
</div>
<div className="govuk-form-group">
<Field
name="representationComments"
id="representationComments"
component={RenderRichMultiline}
type="text"
rows="5"
className="govuk-textarea govuk-input--width-30"
aria-describedby={props.name + "-hint"}
/>
<p className="govuk-hint govuk-!-font-size-14 govuk-!-margin-top-5">
{t(
"myrepresentations:publish-policy-label"
)}
<a href="https://gov.wales/planning-and-environment-decisions-wales-publishing-policy-html">
https://gov.wales/planning-and-environment-decisions-wales-publishing-policy-html
</a>
</p>
</div>
<div className="govuk-form-group govuk-!-margin-bottom-9">
<FileUploadField
name={"representationDocuments"}
id={"representationDocuments"}
label={t(
"myrepresentations:add-files-label"
)}
ticketnumber={props.props.caseReference}
hint={"sdsd"}
fileList={[]}
setFilesForRepresentation={[]}
containerID={
props.props.props.accountDetails
.containerID
}
filenamePrefix={props}
/>
</div>
{props.currentView.caseReference.hasOwnProperty(
"repDetails"
) &&
props.currentView.caseReference.repDetails
.filesList.length > 0 ? (
<div className="govuk-form-group govuk-!-margin-bottom-9">
{filterFilesList.map((blob, i) => (
<div
key={blob.name + "_" + i}
className="govuk-!-margin-bottom-5 fileThumb "
>
<img
src={getThumbnailIconByExtension(
blob.name
)}
alt={blob.name}
width="50"
/>
<span className="govuk-body govuk-!-font-size-14 govuk-!-padding-left-5">
{blob.name} (
{bytesToSize(blob.size)})
</span>
</div>
))}
</div>
) : (
""
)}
</fieldset>
</div>{" "}
</div>
</>
)}
{typeof formObj.representationForm.values.representationType !=
"undefined" && (
return (
<>
<div className="govuk-grid-row">
<div className="govuk-button-group">
<button
type="submit"
className="govuk-button"
data-module="govuk-button"
>
{t("common:continue-button")}
</button>
{/* {router.query.state != "edit" && (
<a
onClick={() => {
setRepresentationCapacity();
props.updateField(
"representationForm",
"representationCapacity",
""
);
}}
className="govuk-link"
>
{t("common:back-link")}
</a>
)} */}
{savingStatus ? (
<span className=" progress-save-active">
{router.locale == "cy"
? "Nôl data"
: "Saving data"}
<img
className="data-loading-icon"
src="/assets/images/loading.gif"
alt={
router.locale == "cy"
? "Nôl data"
: "Saving data"
<div className="govuk-form-group">
{typeof formObj.representationForm.values
.representationType == "undefined" &&
props.representationType != "Select..." ? (
<>
<h2 className="govuk-heading-m ">
{t(
"myrepresentations:representation-from-an-agent-heading"
)}
</h2>
<label
className="govuk-label govuk-body-m"
htmlFor="representationType"
>
{t("myrepresentations:kind-of-rep-label")}
</label>
<Field
name="representationType"
component={RenderPickList}
datafieldname="representationType"
optionsArr={
appellantApplicantRepresentationArr
}
/>
</span>
</>
) : (
<button
className="govuk-button progress-save "
onClick={() => {
let valuesObj =
props.props.props.form[props.form]
.values || {};
console.log("valuesobj:", valuesObj);
delete valuesObj["_pinswg_appellant_value"];
console.log("on save:", valuesObj);
updateRepresentation(
valuesObj,
false,
true
);
}}
>
{t("common:save-exit-button")}
</button>
<label className="govuk-label govuk-body-m">
{t("myrepresentations:representation-type")}:{" "}
{router.locale == "cy"
? formObj.representationForm.values
.representationType == "Questionnaire"
? "Holiadur"
: formObj.representationForm.values
.representationType == "Statement"
? "Datganiad"
: formObj.representationForm.values
.representationType ==
"Final comments"
? "Sylwadau terfynol"
: formObj.representationForm.values
.representationType
: formObj.representationForm.values
.representationType}
</label>
)}
</div>
</div>
)}
</>
);
{(typeof props.representationType != "undefined" ||
typeof formObj.representationForm.values
.representationType != "undefined") && (
<>
<div className="govuk-grid-row">
<div className="govuk-form-group">
<Field
name="representationOnBehalfOf"
datafieldname="representationOnBehalfOf"
// label={t("myrepresentations:capacity-select-what-capacity-label")}
options={["Yes", "No"]}
id="representationOnBehalfOf"
className="govuk-radios__input"
errorMsg={t(
"myrepresentations:select-an-option-label"
)}
component={RenderCondtionalRadioList}
validate={[required]}
legend={t("case:representation-onbehalfof")}
hint={t(
"myrepresentations:representation-onbehalfof-hint"
)}
/>
</div>
</div>
<div className="govuk-grid-row">
<div className="govuk-form-group">
<p className="govuk-body">
{t("myrepresentations:enter-comment-label")}
</p>
<fieldset
className="govuk-fieldset"
aria-describedby="commentBox-hint"
>
{/* <div
id="commentBox-hint"
className="govuk-hint"
>
{t(
"myrepresentations:comments-set-out-label"
)}
:
</div> */}
<div className="govuk-form-group">
<Field
name="representationComments"
id="representationComments"
component={RenderRichMultiline}
type="text"
rows="5"
className="govuk-textarea govuk-input--width-30"
aria-describedby={
props.name + "-hint"
}
/>
<p className="govuk-hint govuk-!-font-size-14 govuk-!-margin-top-5">
{t(
"myrepresentations:publish-policy-label"
)}{" "}
<a
href={t(
"myrepresentations:publish-policy-link"
)}
>
{t(
"myrepresentations:publish-policy-link-label"
)}
</a>{" "}
{t(
"myrepresentations:publish-policy-label-two"
)}
</p>
</div>
<div className="govuk-form-group govuk-!-margin-bottom-9">
<FileUploadField
name={"representationDocuments"}
id={"representationDocuments"}
label={t(
"myrepresentations:add-files-label"
)}
ticketnumber={
props.props.caseReference
}
hint={"sdsd"}
fileList={
props.currentView.fileList
// props.currentView.caseReference.hasOwnProperty(
// "repDetails"
// )
// ? props.currentView.caseReference.repDetails.hasOwnProperty(
// "filesList"
// ) &&
// props.currentView
// .caseReference
// .repDetails.filesList
// .length > 0
// ? props.currentView
// .caseReference
// .repDetails
// .filesList
// : []
// : []
}
setFilesForRepresentations={
setFilesForRepresentations
}
containerID={
props.props.props.accountDetails
.containerID
}
filenamePrefix={props.formObj}
props={props.props.props}
setCurrentReference={
props.setCurrentReference
}
/>
</div>
</fieldset>
</div>{" "}
</div>
</>
)}
{typeof formObj.representationForm.values.representationType !=
"undefined" && (
<div className="govuk-grid-row">
<div className="govuk-button-group">
<button
type="submit"
className="govuk-button"
data-module="govuk-button"
disabled={shouldDisableButton({
props,
formObj,
})}
>
{t("common:continue-button")}
</button>
{savingStatus ? (
<span className=" progress-save-active">
{router.locale == "cy"
? "Nôl data"
: "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 progress-save "
onClick={() => {
let valuesObj =
props.props.props.form[props.form]
.values || {};
//console.log("valuesobj:", valuesObj);
delete valuesObj[
"_pinswg_appellant_value"
];
//console.log("on save:", valuesObj);
updateRepresentation(
valuesObj,
false,
true
);
}}
>
{t("common:save-exit-button")}
</button>
)}
</div>
</div>
)}
</>
);
}
};
const mapDispatchToProps = (dispatch) => ({
updateField: (form, field, newValue) =>
dispatch(change(form, field, newValue)),
setFilesForRepresentations: (fileList) => {
dispatch(setFilesForRepresentations(fileList));
},
});
export default connect(
@@ -1,6 +1,5 @@
import useTranslation from "next-translate/useTranslation";
import { useRouter } from "next/router";
import React from "react";
import { connect } from "react-redux";
import { Field, change, reduxForm } from "redux-form";
import { useState } from "react";
@@ -10,13 +9,15 @@ import {
FileUploadField,
RenderPickList,
RenderRichMultiline,
shouldDisableButton,
} from "./representationElements";
import { useDropzone } from "react-dropzone";
// import {
// setRepresentationCapacity,
// setRepresentationSubmit,
// } from "../../../store/currentView/action";
import {
setRepresentationCapacity,
setRepresentationSubmit,
setFilesForRepresentations,
} from "../../../store/currentView/action";
const RepAppellant = (props) => {
let { t } = useTranslation();
@@ -31,242 +32,277 @@ const RepAppellant = (props) => {
currentView,
setRepFileName,
updateRepresentation,
setSavingStatus,
savingStatus,
setFilesForRepresentations,
} = props;
const { acceptedFiles, getRootProps, getInputProps } = useDropzone();
const [savingStatus, setSavingStatus] = useState(false);
setRepFileName(formObj.representationForm.values);
console.log(JSON.stringify(formObj) == "{}" ? "empty" : "value");
let filterFilesList =
props.currentView.caseReference.repDetails.filesList.filter(function (
el
) {
return el != null;
});
if (JSON.stringify(formObj) != "{}") {
setRepFileName(formObj.representationForm.values);
return (
<>
<div className="govuk-grid-row">
<div className="govuk-form-group">
{typeof formObj.representationForm.values
.representationType == "undefined" &&
props.representationType != "Select..." ? (
<>
<h2 className="govuk-heading-m ">
{t(
"myrepresentations:representation-from-an-appellant-heading"
)}
</h2>
<label
className="govuk-label govuk-body-m"
htmlFor="representationType"
>
{t("myrepresentations:kind-of-rep-label")}
</label>
<Field
name="representationType"
component={RenderPickList}
datafieldname="representationType"
optionsArr={appellantApplicantRepresentationArr}
/>
</>
) : (
<label className="govuk-label govuk-body-m">
{t("myrepresentations:representation-type")}:{" "}
{router.locale == "cy"
? formObj.representationForm.values
.representationType == "Questionnaire"
? "Holiadur"
: formObj.representationForm.values
.representationType == "Statement"
? "Datganiad"
: formObj.representationForm.values
.representationType ==
"Final comments"
? "Sylwadau terfynol"
: formObj.representationForm.values
.representationType
: formObj.representationForm.values
.representationType}
</label>
)}
</div>
</div>
{(typeof props.representationType != "undefined" ||
typeof formObj.representationForm.values.representationType !=
"undefined") && (
let filterFilesList = props.currentView.caseReference.hasOwnProperty(
"repDetails"
)
? props.currentView.caseReference.repDetails.hasOwnProperty(
"filesList"
)
? props.currentView.caseReference.repDetails.filesList.filter(
function (el) {
return el != null;
}
)
: []
: [];
filterFilesList = filterFilesList.filter(
(value, index, self) =>
index === self.findIndex((t) => t.name === value.name)
);
return (
<>
<div className="govuk-grid-row">
<div className="govuk-form-group">
<p className="govuk-body">
{t("myrepresentations:enter-comment-label")}
</p>
<fieldset
className="govuk-fieldset"
aria-describedby="commentBox-hint"
>
<div id="commentBox-hint" className="govuk-hint">
{t("myrepresentations:comments-set-out-label")}:
</div>
<div className="govuk-form-group">
<Field
name="representationComments"
id="representationComments"
component={RenderRichMultiline}
type="text"
rows="5"
className="govuk-textarea govuk-input--width-30"
aria-describedby={props.name + "-hint"}
/>
{formObj.representationForm.values.appealType ==
"846040004" ? (
<p className="govuk-hint govuk-!-font-size-14 govuk-!-margin-top-5">
{t(
"myrepresentations:questionnaire-publish-policy-label"
)}{" "}
<a href="https://gov.wales/planning-and-environment-decisions-wales-publishing-policy-html">
https://gov.wales/planning-and-environment-decisions-wales-publishing-policy-html
</a>
</p>
) : (
<p className="govuk-hint govuk-!-font-size-14 govuk-!-margin-top-5">
{t(
"myrepresentations:publish-policy-label"
)}{" "}
<a href="https://gov.wales/planning-and-environment-decisions-wales-publishing-policy-html">
https://gov.wales/planning-and-environment-decisions-wales-publishing-policy-html
</a>
</p>
)}
</div>
<div className="govuk-form-group govuk-!-margin-bottom-9">
<FileUploadField
name={"representationDocuments"}
id={"representationDocuments"}
label={t(
"myrepresentations:add-files-label"
{typeof formObj.representationForm.values
.representationType == "undefined" &&
props.representationType != "Select..." ? (
<>
<h2 className="govuk-heading-m ">
{t(
"myrepresentations:representation-from-an-appellant-heading"
)}
ticketnumber={props.props.caseReference}
hint={"sdsd"}
fileList={[]}
setFilesForRepresentation={[]}
containerID={
props.props.props.accountDetails
.containerID
}
filenamePrefix={props}
/>
</div>
{props.currentView.caseReference.hasOwnProperty(
"repDetails"
) &&
props.currentView.caseReference.repDetails.filesList
.length > 0 ? (
<div className="govuk-form-group govuk-!-margin-bottom-9">
{filterFilesList.map((blob, i) => (
<div
key={blob.name + "_" + i}
className="govuk-!-margin-bottom-5 fileThumb "
>
<img
src={getThumbnailIconByExtension(
blob.name
)}
alt={blob.name}
width="50"
/>
<span className="govuk-body govuk-!-font-size-14 govuk-!-padding-left-5">
{blob.name} (
{bytesToSize(blob.size)})
</span>
</div>
))}
</div>
) : (
""
)}
</fieldset>
</div>{" "}
</div>
)}
{typeof formObj.representationForm.values.representationType !=
"undefined" && (
<div className="govuk-grid-row">
<div className="govuk-button-group">
<button
type="submit"
className="govuk-button"
data-module="govuk-button"
>
{t("common:continue-button")}
</button>
{/* {router.query.state != "edit" && (
<a
onClick={() => {
setRepresentationCapacity();
props.updateField(
"representationForm",
"representationType",
""
);
}}
className="govuk-link"
>
{t("common:back-link")}
</a>
)} */}
{savingStatus ? (
<span className=" progress-save-active">
{router.locale == "cy"
? "Nôl data"
: "Saving data"}
<img
className="data-loading-icon"
src="/assets/images/loading.gif"
alt={
router.locale == "cy"
? "Nôl data"
: "Saving data"
</h2>
<label
className="govuk-label govuk-body-m"
htmlFor="representationType"
>
{t("myrepresentations:kind-of-rep-label")}
</label>
<Field
name="representationType"
component={RenderPickList}
datafieldname="representationType"
optionsArr={
appellantApplicantRepresentationArr
}
/>
</span>
</>
) : (
<button
className="govuk-button progress-save "
onClick={() => {
let valuesObj =
props.props.props.form[props.form]
.values || {};
console.log("valuesobj:", valuesObj);
delete valuesObj["_pinswg_appellant_value"];
console.log("on save:", valuesObj);
updateRepresentation(
valuesObj,
false,
true
);
}}
>
{t("common:save-exit-button")}
</button>
<label className="govuk-label govuk-body-m">
{t("myrepresentations:representation-type")}:{" "}
{router.locale == "cy"
? formObj.representationForm.values
.representationType == "Questionnaire"
? "Holiadur"
: formObj.representationForm.values
.representationType == "Statement"
? "Datganiad"
: formObj.representationForm.values
.representationType ==
"Final comments"
? "Sylwadau terfynol"
: formObj.representationForm.values
.representationType
: formObj.representationForm.values
.representationType}
</label>
)}
</div>
</div>
)}
</>
);
{(typeof props.representationType != "undefined" ||
typeof formObj.representationForm.values
.representationType != "undefined") && (
<div className="govuk-grid-row">
<div className="govuk-form-group">
<p className="govuk-body">
{t("myrepresentations:enter-comment-label")}
</p>
<fieldset
className="govuk-fieldset"
aria-describedby="commentBox-hint"
>
{/* <div
id="commentBox-hint"
className="govuk-hint"
>
{t(
"myrepresentations:comments-set-out-label"
)}
:
</div> */}
<div className="govuk-form-group">
<Field
name="representationComments"
id="representationComments"
component={RenderRichMultiline}
type="text"
rows="5"
className="govuk-textarea govuk-input--width-30"
aria-describedby={props.name + "-hint"}
/>
{formObj.representationForm.values
.appealType == "846040004" ? (
<p className="govuk-hint govuk-!-font-size-14 govuk-!-margin-top-5">
{t(
"myrepresentations:publish-policy-label"
)}{" "}
<a
href={t(
"myrepresentations:publish-policy-link"
)}
>
{t(
"myrepresentations:publish-policy-link-label"
)}
</a>{" "}
{t(
"myrepresentations:publish-policy-label-two"
)}
</p>
) : (
<p className="govuk-hint govuk-!-font-size-14 govuk-!-margin-top-5">
{t(
"myrepresentations:publish-policy-label"
)}{" "}
<a
href={t(
"myrepresentations:publish-policy-link"
)}
>
{t(
"myrepresentations:publish-policy-link-label"
)}
</a>{" "}
{t(
"myrepresentations:publish-policy-label-two"
)}
</p>
)}
</div>
<div className="govuk-form-group govuk-!-margin-bottom-9">
<FileUploadField
name={"representationDocuments"}
id={"representationDocuments"}
label={t(
"myrepresentations:add-files-label"
)}
ticketnumber={props.props.caseReference}
hint={"sdsd"}
fileList={
props.currentView.fileList
// props.currentView.caseReference.hasOwnProperty(
// "repDetails"
// )
// ? props.currentView.caseReference.repDetails.hasOwnProperty(
// "filesList"
// ) &&
// props.currentView
// .caseReference.repDetails
// .filesList.length > 0
// ? props.currentView
// .caseReference
// .repDetails.filesList
// : []
// : []
}
setFilesForRepresentations={
setFilesForRepresentations
}
containerID={
props.props.props.accountDetails
.containerID
}
filenamePrefix={props.formObj}
props={props.props.props}
setCurrentReference={
props.setCurrentReference
}
/>
</div>
</fieldset>
</div>{" "}
</div>
)}
{typeof formObj.representationForm.values.representationType !=
"undefined" && (
<div className="govuk-grid-row">
<div className="govuk-button-group">
<button
type="submit"
className="govuk-button"
data-module="govuk-button"
disabled={shouldDisableButton({
props,
formObj,
})}
>
{t("common:continue-button")}
</button>
{savingStatus ? (
<span className=" progress-save-active">
{router.locale == "cy"
? "Nôl data"
: "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 progress-save "
onClick={() => {
let valuesObj =
props.props.props.form[props.form]
.values || {};
//console.log("valuesobj:", valuesObj);
delete valuesObj[
"_pinswg_appellant_value"
];
//console.log("on save:", valuesObj);
updateRepresentation(
valuesObj,
false,
true
);
}}
>
{t("common:save-exit-button")}
</button>
)}
</div>
</div>
)}
</>
);
}
};
//const mapStateToProps = (state, props) => {};
const mapDispatchToProps = (dispatch) => ({
updateField: (form, field, newValue) =>
dispatch(change(form, field, newValue)),
});
const mapDispatchToProps = (dispatch) => {
return {
updateField: (form, field, newValue) =>
dispatch(change(form, field, newValue)),
setFilesForRepresentations: (fileList) => {
dispatch(setFilesForRepresentations(fileList));
},
};
};
export default connect(
null,
@@ -17,6 +17,7 @@ let RepCapacitySelection = (props) => {
casesObj,
validate,
handleSubmit,
setCurrentReference,
} = props;
const { acceptedFiles, getRootProps, getInputProps } = useDropzone();
const files = acceptedFiles.map((file) => (
@@ -26,6 +27,7 @@ let RepCapacitySelection = (props) => {
));
const required = (value) => (value ? undefined : "Required");
const appealType = props.props.currentView.caseReference.appealType;
return (
<>
@@ -37,6 +39,8 @@ let RepCapacitySelection = (props) => {
searchResultsObj={props.props.searchResultsObj}
myRepresentations={props.props.myRepresentations}
props={props}
setCurrentReference={setCurrentReference}
appealType={appealType}
/>{" "}
<div id="rep-details" className="">
<div className="govuk-grid-column-full">
@@ -50,9 +54,15 @@ let RepCapacitySelection = (props) => {
<Field
name="representationCapacity"
datafieldname="representationCapacity"
label={t(
"myrepresentations:capacity-select-what-capacity-label"
)}
label={
appealType != 846040002
? t(
"myrepresentations:capacity-select-what-capacity-label"
)
: t(
"myrepresentations:sips-capacity-select-what-capacity-label"
)
}
options={capacityOptionsArr}
id="representationCapacity"
className="govuk-radios__input"
@@ -53,7 +53,7 @@ const RepComplete = (props) => {
props.props.currentView.representationMessageSent != true &&
(setRepInvolvment(
props.props.currentView.caseReference.incidentid,
props.props.props.props.accountDetails.loggedinUserId
props.props.props.props.accountDetails.accountDetails.contactid
),
sendRepCompleteMessage(
props.props.props.props.accountDetails.containerID,
@@ -68,7 +68,8 @@ const RepComplete = (props) => {
")",
"pinswg_Contact@odata.bind":
"/contacts(" +
props.props.props.props.accountDetails.loggedinUserId +
props.props.props.props.accountDetails.accountDetails
.contactid +
")",
"pinswg_appealcasetype":
props.props.currentView.caseReference.appealType,
@@ -92,9 +93,7 @@ const RepComplete = (props) => {
{t("myrepresentations:rep-complete-heading")}
</h1>
<p>{t("myrepresentations:rep-complete-para-one")}</p>
<p>{t("myrepresentations:rep-complete-para-two")}</p>
<p> {t("myrepresentations:rep-complete-para-three")}</p>
</div>
<div className="govuk-grid-row">
@@ -7,11 +7,22 @@ import { connect } from "react-redux";
import RepComplete from "./representationComplete";
import RepLPAQuestionnaireCheck_enforcement from "./representationQuestionnairesCheck/representationLPAQuestionnaireCheck_enforcement";
import RepLPAQuestionnaireCheck_s78 from "./representationQuestionnairesCheck/representationLPAQuestionnaireCheck_s78";
import Link from "next/link";
import {
bytesToSize,
getThumbnailIconByExtension,
formatDates,
updateLinks,
} from "../../utils";
import { bytesToSize, getThumbnailIconByExtension } from "../../utils";
import {
setCurrentReference,
setCurrentView,
} from "../../../store/currentView/action";
const RepCompleteSubmit = (props) => {
let { t } = useTranslation();
const [confirmSections, setConfirmSections] = useState(false);
const router = useRouter();
const { locale } = router;
@@ -25,6 +36,11 @@ const RepCompleteSubmit = (props) => {
setRepresentationSubmitConfirmation,
setRepresentationMessageSent,
setRepresentationReset,
setShowQuestionnaireSection,
showQuestionnaireSection,
questionnaireCount,
finaliseAppealProcess,
setCurrentReference,
} = props;
const { acceptedFiles, getRootProps, getInputProps } = useDropzone();
const files = acceptedFiles.map((file) => (
@@ -33,9 +49,9 @@ const RepCompleteSubmit = (props) => {
</li>
));
const [confirmSections, setConfirmSections] = useState(false);
let repFormData = formObj.representationForm.values;
const repFormData = formObj.representationForm.values;
repFormData = updateLinks(repFormData);
//const repDate = new Date();
@@ -90,14 +106,13 @@ const RepCompleteSubmit = (props) => {
// "caseRef": props.props.currentView.caseReference.currentReference,
// });
console.log("///////// repFormData:", repFormData);
//console.log("///////// repFormData:", repFormData);
const whichQuestionnaireCheck = () => {
{
switch (currentView.caseReference.appealType) {
case 846040000:
case 846040001:
case 846040006:
case 846040025:
case 846040004:
case 846040018:
@@ -110,6 +125,10 @@ const RepCompleteSubmit = (props) => {
props={props}
formObj={formObj}
setSubmitBack={setSubmitBack}
setShowQuestionnaireSection={
setShowQuestionnaireSection
}
setRepresentationSubmit={setRepresentationSubmit}
/>
);
break;
@@ -121,6 +140,10 @@ const RepCompleteSubmit = (props) => {
props={props}
formObj={formObj}
setSubmitBack={setSubmitBack}
setShowQuestionnaireSection={
setShowQuestionnaireSection
}
setRepresentationSubmit={setRepresentationSubmit}
/>
);
break;
@@ -133,51 +156,99 @@ const RepCompleteSubmit = (props) => {
let buildAppealFilesArray = [];
let filesUploadObj =
formObj.representationForm.values.representationDocuments;
let filesUploadObj = props.currentView.fileList;
// formObj.representationForm.values.representationDocuments;
for (let key in filesUploadObj) {
typeof filesUploadObj[key].name != "undefined" &&
buildAppealFilesArray.push({
"name": filesUploadObj[key].name,
"size": filesUploadObj[key].size,
"size": filesUploadObj[key].contentLength,
});
}
console.log(
buildAppealFilesArray,
formObj.representationForm.values.filesList
);
// console.log(
// buildAppealFilesArray,
// formObj.representationForm.values.filesList
// );
buildAppealFilesArray = formObj.representationForm.values.hasOwnProperty(
"filesList"
)
? buildAppealFilesArray.concat(
formObj.representationForm.values.filesList
)
: buildAppealFilesArray;
// buildAppealFilesArray = formObj.representationForm.values.hasOwnProperty(
// "filesList"
// )
// ? formObj.representationForm.values.filesList
// : [];
console.log(buildAppealFilesArray);
// const arrUniq = [
// ...new Map(buildAppealFilesArray.map((v) => [v.name, v])).values(),
// ];
let arrUniq = [
...new Map(buildAppealFilesArray.map((v) => [v.name, v])).values(),
];
buildAppealFilesArray = buildAppealFilesArray.filter(function (el) {
return el != null;
});
const arrUniq = buildAppealFilesArray.filter(
(obj1, i, arr) => arr.findIndex((obj2) => obj2.name === obj1.name) === i
);
// const arrUniq = buildAppealFilesArray.filter(
// (obj1, i, arr) => arr.findIndex((obj2) => obj2.name === obj1.name) === i
// );
console.log(arrUniq);
//arrUniq = arrUniq.concat(filesUploadObj);
function removeNullObjects(arr) {
if (arr.length === 0) {
return arr;
}
return arr.filter((obj) => obj !== null);
}
function removeEmptyObjects(arr) {
if (arr.length === 0) {
return arr;
}
return arr.filter(
(obj) =>
obj && typeof obj === "object" && Object.keys(obj).length > 0
);
}
arrUniq = removeNullObjects(arrUniq);
arrUniq = removeEmptyObjects(arrUniq);
Object.assign(formObj.representationForm.values, {
"filesList": arrUniq,
});
let filterFiles = [];
function showRepsEnded(endDate) {
let date = new Date();
date = new Date(date.toDateString());
let end = new Date(endDate);
end.setUTCHours(23);
end.setUTCMinutes(59);
end.setUTCSeconds(59);
end.toISOString();
return end > date ? false : true;
}
const checkRepDatePassed = () => {
if (repFormData.representationType == "Questionnaire") {
return false;
} else {
if (repFormData.representationType == "Final comments") {
return repFormData.hasOwnProperty(
"pinswg_finalcommentsduedate"
) && showRepsEnded(repFormData.pinswg_finalcommentsduedate)
? true
: false;
}
if (repFormData.representationType == "Statement") {
return repFormData.hasOwnProperty("pinswg_statementduedate") &&
showRepsEnded(repFormData.pinswg_statementduedate)
? true
: false;
}
}
};
return (
<>
{currentView.representationSubmitConfirmation == true ? (
@@ -193,21 +264,33 @@ const RepCompleteSubmit = (props) => {
<div className="govuk-grid-row govuk-body">
<h1 className="govuk-heading-m ">
{" "}
{t(
"myrepresentations:rep-check-submit-heading"
)}
{repFormData.appealType == 846040002
? t(
"myrepresentations:consultation-check-submit-heading"
)
: t(
"myrepresentations:rep-check-submit-heading"
)}
</h1>
<dl className="govuk-summary-list ">
<h2 className="govuk-heading-m govuk-!-margin-top-9">
{t(
"myrepresentations:rep-check-your-rep-heading"
)}
{repFormData.appealType == 846040002
? t(
"myrepresentations:consultation-check-your-rep-heading"
)
: t(
"myrepresentations:rep-check-your-rep-heading"
)}
</h2>
<div className="govuk-summary-list__row">
<dt className="govuk-summary-list__key">
{t(
"case:representation-representation-type"
)}
{repFormData.appealType == 846040002
? t(
"case:consultation-representation-type"
)
: t(
"case:representation-representation-type"
)}
</dt>
<dd className="govuk-summary-list__value">
@@ -226,7 +309,7 @@ const RepCompleteSubmit = (props) => {
</dd>
<dd className="govuk-summary-list__actions">
<a
{/* <a
className="govuk-link"
href="#"
onClick={() => {
@@ -236,11 +319,11 @@ const RepCompleteSubmit = (props) => {
{t("common:change-link-label")}
<span className="govuk-visually-hidden">
{" "}
{/* {FieldsTranslations(
{FieldsTranslations(
rows[0].value
)} */}
)}
</span>
</a>
</a> */}
</dd>
</div>
{_.has(
@@ -266,7 +349,24 @@ const RepCompleteSubmit = (props) => {
className="govuk-link"
href="#"
onClick={() => {
setSubmitBack();
// setSubmitBack();
setCurrentReference({
"ticketnumber":
repFormData.ticketnumber,
"currentReference":
repFormData.caseRef,
"currentType":
"myRepresentations",
"incidentid":
repFormData.incidentID,
"appealType":
repFormData.appealType,
"repDetails":
repFormData,
});
setRepresentationSubmit(
false
);
}}
>
{t(
@@ -301,7 +401,26 @@ const RepCompleteSubmit = (props) => {
className="govuk-link"
href="#"
onClick={() => {
setSubmitBack();
// setSubmitBack();
setCurrentReference(
{
"ticketnumber":
repFormData.ticketnumber,
"currentReference":
repFormData.caseRef,
"currentType":
"myRepresentations",
"incidentid":
repFormData.incidentID,
"appealType":
repFormData.appealType,
"repDetails":
repFormData,
}
);
setRepresentationSubmit(
false
);
}}
>
{t(
@@ -319,53 +438,72 @@ const RepCompleteSubmit = (props) => {
)}
</>
)}
<div className="govuk-summary-list__row">
<dt className="govuk-summary-list__key">
{t("case:representation-comments")}
</dt>
{repFormData.representationType !=
"Questionnaire" &&
repFormData.appealType != 846040002 && (
<div className="govuk-summary-list__row">
<dt className="govuk-summary-list__key">
{t(
"case:representation-comments"
)}
</dt>
<dd className="govuk-summary-list__value">
<span
className="multiline-elipsis"
dangerouslySetInnerHTML={{
__html: repFormData.representationComments,
}}
/>
</dd>
<dd className="govuk-summary-list__value">
<span
className="multiline-elipsis"
dangerouslySetInnerHTML={{
__html: repFormData.representationComments,
}}
/>
</dd>
<dd className="govuk-summary-list__actions">
<a
className="govuk-link"
href="#"
onClick={() => {
setSubmitBack();
}}
>
{t("common:change-link-label")}
<span className="govuk-visually-hidden">
{" "}
{/* {FieldsTranslations(
<dd className="govuk-summary-list__actions">
<a
className="govuk-link"
href="#"
onClick={() => {
// setSubmitBack();
setCurrentReference({
"ticketnumber":
repFormData.ticketnumber,
"currentReference":
repFormData.caseRef,
"currentType":
"myRepresentations",
"incidentid":
repFormData.incidentID,
"appealType":
repFormData.appealType,
"repDetails":
repFormData,
});
setRepresentationSubmit(
false
);
}}
>
{t(
"common:change-link-label"
)}
<span className="govuk-visually-hidden">
{" "}
{/* {FieldsTranslations(
rows[0].value
)} */}
</span>
</a>
</dd>
</div>
</span>
</a>
</dd>
</div>
)}
<div className="govuk-summary-list__row">
<dt className="govuk-summary-list__key">
{t("case:representation-files")}
</dt>
<dd className="govuk-summary-list__value">
{formObj.representationForm.values
.filesList.length > 0
? ((filterFiles =
formObj.representationForm.values.filesList.filter(
function (el) {
return el != null;
}
)),
filterFiles.map((blob, i) => (
{arrUniq.length > 0
? arrUniq.map((blob, i) => (
<div
key={blob.name + "_" + i}
className="govuk-!-margin-bottom-5 fileThumb "
@@ -386,8 +524,8 @@ const RepCompleteSubmit = (props) => {
)
</span>
</div>
)))
: ""}{" "}
))
: ""}
</dd>
<dd className="govuk-summary-list__actions">
@@ -395,10 +533,38 @@ const RepCompleteSubmit = (props) => {
className="govuk-link"
href="#"
onClick={() => {
setSubmitBack();
repFormData.representationType ==
"Questionnaire"
? (setShowQuestionnaireSection(
questionnaireCount ==
7
? 6
: 8
),
setRepresentationSubmit(
false
))
: (setCurrentReference({
"ticketnumber":
repFormData.ticketnumber,
"currentReference":
repFormData.caseRef,
"currentType":
"myRepresentations",
"incidentid":
repFormData.incidentID,
"appealType":
repFormData.appealType,
"repDetails":
repFormData,
}),
setRepresentationSubmit(
false
));
}}
>
{t("common:change-link-label")}
<span className="govuk-visually-hidden">
{" "}
{/* {FieldsTranslations(
@@ -408,92 +574,136 @@ const RepCompleteSubmit = (props) => {
</a>
</dd>
</div>
{whichQuestionnaireCheck()}
{repFormData.representationType ==
"Questionnaire"
? whichQuestionnaireCheck()
: ""}
</dl>
<p>
{t(
"myrepresentations:rep-check-tandc-para-one"
)}
</p>
<p>
{t(
"myrepresentations:rep-check-tandc-para-two"
)}
)}{" "}
<Link
href={t("common:footer-privacy-link")}
target="_blank"
>
{t(
"common:footer-privacy-notice-link-label"
)}
</Link>
.
</p>
<p>
{t(
"myrepresentations:rep-check-tandc-para-three"
)}
</p>
<div className="govuk-form-group">
<div className="govuk-checkboxes govuk-checkboxes--small">
<div className="govuk-checkboxes__item">
<input
name="pinswg_checkconfirmation"
id="pinswg_checkconfirmation"
type="checkbox"
className="govuk-checkboxes__input"
value=""
onChange={(e) => {
setConfirmSections(
!confirmSections
);
}}
/>
<label
className="govuk-label govuk-checkboxes__label"
htmlFor="pinswg_checkconfirmation"
>
{t(
"myrepresentations:rep-check-tandc-para-four"
)}
</label>
{checkRepDatePassed() ? (
<div className="govuk-warning-text noticebanner">
<strong className="govuk-warning-text__text">
<span className="govuk-visually-hidden">
Warning
</span>
</strong>
<div>
<div className=" govuk-body-s">
<h2 className="govuk-heading-s">
{t(
"myrepresentations:rep-period-passed-heading"
)}
</h2>
<p className="govuk-body-s">
{t(
"myrepresentations:rep-period-notice-label"
)}
</p>
</div>
</div>
</div>
) : finaliseAppealProcess ? (
<div className="">
<h3 className="govuk-heading-m govuk-!-margin-top-9">
{t(
"myrepresentations:rep-finalising-heading"
)}
</h3>
<p className="govuk-body">
{t(
"myrepresentations:rep-finalising-label"
)}
</p>
<p className="govuk-body textloading">
{t("myrepresentations:rep-wait-label")}
</p>
</div>
) : (
<>
<div className="govuk-form-group">
<div className="govuk-checkboxes govuk-checkboxes--small">
<div className="govuk-checkboxes__item">
<input
name="pinswg_checkconfirmation"
id="pinswg_checkconfirmation"
type="checkbox"
className="govuk-checkboxes__input"
value=""
onChange={(e) => {
setConfirmSections(
!confirmSections
);
}}
/>
<label
className="govuk-label govuk-checkboxes__label"
htmlFor="pinswg_checkconfirmation"
>
{t(
"myrepresentations:rep-check-tandc-para-four"
)}
</label>
</div>
</div>
</div>
{/* <Field
name="representationType"
component={RenderPickList}
datafieldname="representationType"
optionsArr={appellantApplicantRepresentationArr}
/> */}
</div>
</div>
<div className="govuk-grid-row">
<div className="govuk-button-group">
<button
disabled={confirmSections ? false : true}
type="submit"
className="govuk-button"
data-module="govuk-button"
onClick={() => {
setRepresentationSubmitConfirmation(
true
);
setRepresentationSubmit(true);
}}
>
{t("common:continue-button")}
</button>
{/* <a
onClick={() => {
setRepresentationSubmit(false);
}}
className="govuk-button"
>
{t("common:continue-button")}
</a> */}
<a
onClick={() => setSubmitBack()}
className="govuk-link"
>
{t("case:summary-back-button-label")}
</a>
</div>
<div className="govuk-grid-row">
<div className="govuk-button-group">
<button
disabled={
confirmSections
? false
: true
}
type="submit"
className="govuk-button"
data-module="govuk-button"
onClick={() => {
// setRepresentationSubmitConfirmation(
// true
// );
setRepresentationSubmit(
true
);
}}
>
{t("common:continue-button")}
</button>
<a
onClick={() => setSubmitBack()}
className="govuk-link"
>
{t(
"case:summary-back-button-label"
)}
</a>
</div>
</div>
</>
)}
</div>
</div>
</div>
@@ -517,7 +727,11 @@ const mapStateToProps = (state) => {
};
const mapDispatchToProps = (dispatch) => {
return {};
return {
setCurrentReference: (currentReference) => {
dispatch(setCurrentReference(currentReference));
},
};
};
export default connect(mapStateToProps, mapDispatchToProps)(RepCompleteSubmit);
@@ -8,7 +8,7 @@ const RepDetails = (props) => {
const router = useRouter();
const { locale } = router;
const { currentType, casesObj } = props;
const { currentType, casesObj, appealType } = props;
let { caseReference } = props;
@@ -28,10 +28,11 @@ const RepDetails = (props) => {
: caseReference
: caseReference;
detailsObj = jsonpath(
'$..[?(@.pinswg_name=="' + caseReference + '")]',
setCaseDetailsObj
);
detailsObj = jsonpath({
path: '$..[?(@ && @.pinswg_name=="' + caseReference + '")]',
json: setCaseDetailsObj,
eval: true,
});
detailsObj = detailsObj[0];
@@ -96,10 +97,14 @@ const RepDetails = (props) => {
</div>
<div className="govuk-grid-row">
<p className="govuk-body">
{t("myrepresentations:capacity-para-one")}
{appealType == 846040002
? t("myrepresentations:sips-capacity-para-one")
: t("myrepresentations:capacity-para-one")}
</p>
<p className="govuk-body">
{t("myrepresentations:capacity-para-two")}
{appealType == 846040002
? t("myrepresentations:sips-capacity-para-two")
: t("myrepresentations:capacity-para-two")}
</p>
</div>
</div>
@@ -2,13 +2,31 @@ import useTranslation from "next-translate/useTranslation";
import dynamic from "next/dynamic";
import Link from "next/link";
import router from "next/router";
import React, { useMemo, useState } from "react";
import React, { useMemo, useState, useRef } from "react";
import DatePicker from "react-datepicker";
import "react-datepicker/dist/react-datepicker.css";
import Dropzone from "react-dropzone";
import "react-quill-new/dist/quill.snow.css";
import { Field } from "redux-form";
const ReactQuill = dynamic(() => import("react-quill-new"), { ssr: false });
import { Field, change } from "redux-form";
import {
uploadSingleFile,
deleteBlob,
deleteRepBlob,
getFilesFromBlobHashed,
getFilesFromBlobproxy,
} from "../../../actions";
const LoadingMessage = () => <div>Loading the editor...</div>;
// Dynamically import ReactQuill with a proper loading state
const ReactQuill = dynamic(
() => import("react-quill-new").then((mod) => mod.default),
{
ssr: false,
loading: () => <LoadingMessage />, // This is valid as long as it's a valid React component
}
);
import { useDispatch } from "react-redux"; // Import the useDispatch hook
import {
addDays,
@@ -20,7 +38,11 @@ import {
subYears,
} from "date-fns";
import { bytesToSize, getThumbnailIconByExtension } from "../../utils";
import {
bytesToSize,
getThumbnailIconByExtension,
updateLinks,
} from "../../utils";
import { useRouter } from "next/router";
@@ -199,8 +221,8 @@ export const RenderRadioListWithText = ({
}
label={
router.locale == "en"
? "Please give further details for this selection"
: "Rhowch fanylion pellach am y dewis hwn"
? "Please give further details if required"
: "Rhowch fanylion pellach os oes angen"
}
component={RenderRichMultiline}
type="text"
@@ -279,9 +301,7 @@ export const RenderCondtionalRadioList = ({
</legend>
<div id={id + "-hint"} className="govuk-hint">
e.g. &lsquo;Owners of Numbers 1-5 High Street&lsquo;, or
&lsquo;Mr and Mrs Smith&lsquo; or &lsquo;The executors
of Mr Evans&lsquo; estate&lsquo;
{custom.hint}
</div>
<div className="govuk-radios">
{Object.keys(options).map((key, index) => (
@@ -304,40 +324,46 @@ export const RenderCondtionalRadioList = ({
className="govuk-label govuk-radios__label"
htmlFor={id + "_" + index}
>
{options[key]}
{options[key] == "Yes"
? t(
"myrepresentations:questionnaire-yes"
)
: t(
"myrepresentations:questionnaire-no"
)}
</label>
</div>
{value ==
t("myrepresentations:questionnaire-yes") &&
options[key] ==
t(
"myrepresentations:questionnaire-yes"
) && (
{value == "Yes" && options[key] == "Yes" && (
<div
className="govuk-radios__conditional "
id={"conditional-" + id}
>
<div
className="govuk-radios__conditional "
id={"conditional-" + id}
className="govuk-form-group"
key={"yes_group_" + key}
>
<div
className="govuk-form-group"
key={"yes_group_" + key}
<label
className="govuk-label"
htmlFor={id + "_details"}
>
<label
className="govuk-label"
htmlFor={id + "_details"}
>
Enter the name of the
company/group/organisation *
</label>
<Field
className="govuk-input govuk-!-width-one-half"
id={id + "_details"}
name={id + "_details"}
component="input"
type="text"
/>
</div>
{t(
"myrepresentations:representation-onbehalfof-label"
)}
</label>
<Field
className="govuk-input govuk-!-width-one-half"
id={id + "_details"}
name={id + "_details"}
component={RenderTextfield}
type="text"
validate={[required]}
errorMsg={t(
"myrepresentations:is-required-label"
)}
/>
</div>
)}
</div>
)}
</div>
))}
</div>
@@ -360,8 +386,7 @@ export const RenderLPACondtionalRadioList = ({
...custom
}) => {
const required = (value) => (value ? undefined : "Required");
console.log(error);
let { t } = useTranslation();
return (
<>
@@ -394,7 +419,15 @@ export const RenderLPACondtionalRadioList = ({
</label>
</legend>
<div id={id + "-hint"} className="govuk-hint"></div>
{typeof custom.hint != undefined && (
<div
className="govuk-hint govuk-!-font-size-14"
id={id + "-hint"}
>
{custom.hint}
</div>
)}
<div className="govuk-radios govuk-radios--small">
{Object.keys(options).map((key, index) => (
<div key={key} className="govuk-!-margin-bottom-3">
@@ -410,7 +443,7 @@ export const RenderLPACondtionalRadioList = ({
type="radio"
className="govuk-radios__input"
value={options[key]}
validate={[eval(required)]}
// validate={[required]}
/>
<label
className="govuk-label govuk-radios__label"
@@ -463,7 +496,7 @@ export const RenderPickList = ({
errorMsg,
...custom
}) => {
console.log(custom.disabled);
// console.log(custom.disabled);
let { t } = useTranslation();
return (
@@ -494,7 +527,9 @@ export const RenderPickList = ({
disabled={custom.disabled}
// onChange={onChange}
>
<option>{t("common:drop-down-select")}</option>
<option value="" disabled defaultValue>
{t("common:drop-down-select")}
</option>
{Object.keys(optionsArr).map((key, index) => {
return (
<option key={key} value={optionsArr[key]}>
@@ -506,6 +541,13 @@ export const RenderPickList = ({
: optionsArr[key] ==
"Final comments"
? "Sylwadau terfynol"
: optionsArr[key] ==
"Written representations"
? "Sylwadau ysgrifenedig"
: optionsArr[key] == "Inquiry"
? "Ymchwiliad"
: optionsArr[key] == "Hearing"
? "Gwrandawiad"
: optionsArr[key]
: optionsArr[key]}
</option>
@@ -557,6 +599,7 @@ export const RenderTextfield = ({
name={name}
id={id}
type={type}
disabled={custom.disabled == true ? true : false}
/>
</div>
</>
@@ -695,7 +738,7 @@ export const RenderMultiline = ({
toolbar: [
[{ "header": [1, 2, false] }],
["bold", "italic", "underline", "blockquote"],
[{ "list": "ordered" }, { "list": "bullet" }, "link"],
[{ "list": "ordered" }, { "list": "bullet" }],
["clean"],
],
};
@@ -752,6 +795,7 @@ export const RenderRichMultiline = ({
);
const changeEdit = (valStr) => {
valStr = updateLinks(valStr);
setEditValue(valStr);
input.onChange(valStr);
};
@@ -847,6 +891,8 @@ const rejectStyle = {
export const RenderFileUpload = (field) => {
const files = field.input.value;
const dispatch = useDispatch(); // Get dispatch using useDispatch hook
let { t } = useTranslation();
const style = useMemo(
@@ -898,111 +944,146 @@ export const RenderFileUpload = (field) => {
return "/assets/images/documenttypes/zip.png";
break;
case "image/jpeg":
return "/assets/images/documenttypes/jpg.png";
case "image/png":
return URL.createObjectURL(fileObj);
return "/assets/images/documenttypes/jpg.png";
//return URL.createObjectURL(fileObj);
break;
default:
return "/assets/images/documenttypes/txt.png";
return "/assets/images/documenttypes/default.png";
break;
}
};
const getDocumentType = (docCode) => {
switch (docCode) {
case "000001":
return "000001";
break;
case "000002":
return "000002";
break;
case "000003":
return "000003";
break;
case "000004":
return "000004";
break;
case "000005":
return "000005";
break;
case "000006":
return "000006";
break;
case "000007":
return "000007";
break;
case "000008":
return "000008";
break;
case "000009":
return "000009";
break;
case "000010":
return "000010";
break;
case "000011":
return "000011";
break;
case "000012":
return "000012";
break;
case "000013":
return "000013";
break;
case "000014":
return "000014";
break;
case "000015":
return "000015";
break;
default:
return "000000";
}
};
const filelistObj = field.fileList || {};
console.log("----", filelistObj.length);
let blobList = filelistObj;
// let buildAppealFilesArray = [];
//let blobList = field.props.currentView.fileList;
// let filesUploadObj = field.input.value;
function removeNullObjects(arr) {
if (arr.length === 0) {
return arr;
}
return arr.filter((obj) => obj !== null);
}
// for (let key in filesUploadObj) {
// typeof filesUploadObj[key].name != "undefined" &&
// buildAppealFilesArray.push({
// "name": filesUploadObj[key].name,
// "size": filesUploadObj[key].size,
// });
// }
function removeObjectsWithUndefinedKey(arr, key) {
if (arr.length === 0) {
return arr;
}
return arr.filter((obj) => obj[key] !== undefined);
}
// buildAppealFilesArray = buildAppealFilesArray.concat(blobList);
function removeEmptyObjects(arr) {
if (arr.length === 0) {
return arr;
}
return arr.filter(
(obj) =>
obj && typeof obj === "object" && Object.keys(obj).length > 0
);
}
// blobList = buildAppealFilesArray;
//blobList = removeEmptyObjects(blobList);
//blobList = removeObjectsWithUndefinedKey(blobList, "name");
//blobList = removeNullObjects(blobList);
let buildAppealFilesArray = [];
let filesUploadObj = field.input.value;
for (let key in filesUploadObj) {
typeof filesUploadObj[key].name != "undefined" &&
buildAppealFilesArray.push({
"name": filesUploadObj[key].name,
"size": filesUploadObj[key].size,
});
}
//buildAppealFilesArray = buildAppealFilesArray.concat(blobList);
function removeDuplicates(arr) {
const seen = new Set();
return arr.filter((obj) => {
const serializedObj = JSON.stringify(obj);
if (seen.has(serializedObj)) {
return false; // Skip this object (duplicate)
}
seen.add(serializedObj); // Add the serialized object to the "seen" set
return true; // Keep this object
});
}
buildAppealFilesArray = removeDuplicates(buildAppealFilesArray);
//blobList = buildAppealFilesArray;
const deleteThisBlob = async (
containerName,
blobName,
deleteblobhash,
getblobshash,
casefolderID
casefolderID,
filenamePrefix
) => {
deleteBlob(containerName, blobName, deleteblobhash, casefolderID)
deleteRepBlob(
containerName,
blobName,
deleteblobhash,
casefolderID,
filenamePrefix
)
.then((data) => data)
.then(() => {
getFilesFromBlobHashed(
containerName,
getblobshash,
casefolderID
).then((newfilelist) => field.setFilesForAppeal(newfilelist));
casefolderID + "/" + filenamePrefix
).then((newfilelist) =>
field.setFilesForRepresentations(newfilelist.value[0])
);
});
};
const [rejectedFiles, setRejectedFiles] = useState([]); // Store rejected files
const [completedUploadFiles, setCompletedUploadFiles] = useState(false);
const [uploadCountMessage, setUploadCountMessage] = useState("");
const handleDropRejected = (fileRejections) => {
const errors = fileRejections
.map(({ file, errors }) => {
return errors.map((error) => {
if (error.code === "file-too-large") {
return `${file.name} ${t(
"myrepresentations:fileupload-file-error-filesize-label"
)}`;
}
if (error.code === "file-invalid-type") {
return `${file.name} ${t(
"myrepresentations:fileupload-file-error-invalid-type-label"
)}`;
}
return `${file.name} ${t(
"myrepresentations:fileupload-file-error-invalid-label"
)}`;
});
})
.flat(); // Flatten the errors array
setRejectedFiles(errors); // Store the error messages for rejected files
};
// Handle accepted files (clear error message when files are accepted)
const handleDropAccepted = () => {
setErrorMessage(null);
setRejectedFiles([]); // Clear any previously rejected file errorsss
};
return (
<>
<Dropzone
maxSize={50 * 1024 * 1024}
accept={{
"application/pdf": [".pdf"],
"application/msword": [".doc"],
@@ -1012,20 +1093,116 @@ export const RenderFileUpload = (field) => {
"image/jpeg": [".jpg", ".jpeg"],
"application/zip": [".zip"],
"image/png": [".png"],
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":
[".xlsx"],
}}
onDrop={(filesToUpload, e) => {
setCompletedUploadFiles(false);
const renamedAcceptedFiles = filesToUpload.map(
(file) =>
new File(
[file],
`${field.filenamePrefix}_-_Attachment_-_${file.name}`,
`${
field.filenamePrefix.hasOwnProperty(
"representationForm"
) &&
field.filenamePrefix.representationForm.hasOwnProperty(
"values"
) &&
field.filenamePrefix.representationForm.values.hasOwnProperty(
"repfile_name"
) &&
field.filenamePrefix.representationForm
.values.repfile_name
}_-_Attachment_-_${file.name}`,
{
type: file.type,
}
)
);
field.input.onChange(renamedAcceptedFiles);
setUploadCountMessage(renamedAcceptedFiles.length);
uploadSingleFile(
renamedAcceptedFiles,
field.containerID,
field.ticketnumber +
"/" +
field.filenamePrefix.representationForm.values
.repfile_name
).then((data) => {
console.log(data);
let buildAppealFilesArray = [];
let values = field;
let filesUploadObj = renamedAcceptedFiles;
for (let key in filesUploadObj) {
typeof filesUploadObj[key].name != "undefined" &&
buildAppealFilesArray.push({
"name": filesUploadObj[key].name,
"size": filesUploadObj[key].size,
});
}
//console.log(buildAppealFilesArray);
function removeDuplicates(arr, key) {
const seen = new Set();
return arr.filter((item) => {
const value = item[key];
if (seen.has(value)) {
return false; // Duplicate found
} else {
seen.add(value); // Add value to the set
return true; // Keep the item
}
});
}
buildAppealFilesArray = values.hasOwnProperty(
"fileList"
)
? buildAppealFilesArray.concat(values.fileList)
: buildAppealFilesArray;
buildAppealFilesArray = removeDuplicates(
buildAppealFilesArray,
"name"
);
// Object.assign(values, {
// "fileList": buildAppealFilesArray,
// });
data.invalidFiles.length > 0 &&
(setRejectedFiles(data.invalidFiles),
setUploadCountMessage(
renamedAcceptedFiles.length -
data.invalidFiles.length
));
getFilesFromBlobproxy(
field.containerID,
field.ticketnumber +
"/" +
(typeof field.filenamePrefix != "object"
? field.filenamePrefix
: encodeURIComponent(
field.filenamePrefix
.representationForm.values
.repfile_name
))
).then((data) => {
data = data.value || {};
field.input.value = "";
field.setFilesForRepresentations(data[0]);
setCompletedUploadFiles(true);
dispatch(
change("representationForm", field.name, null)
); // Set the field value to null
});
});
}}
onDropRejected={handleDropRejected}
onDropAccepted={handleDropAccepted}
>
{({ getRootProps, getInputProps }) => (
<>
@@ -1037,6 +1214,7 @@ export const RenderFileUpload = (field) => {
{t(
"myrepresentations:fileupload-drop-label"
)}
(Max 50 MB)
</div>
<em>
(
@@ -1046,58 +1224,101 @@ export const RenderFileUpload = (field) => {
)
</em>
</div>
<aside>{thumbs}</aside>
{/* <aside>{thumbs}</aside> */}
</section>
</>
)}
</Dropzone>
{rejectedFiles.length > 0 && completedUploadFiles == true && (
<div
style={{ color: "red", marginTop: "10px" }}
className="govuk-body govuk-!-font-size-14 "
>
<ul>
{rejectedFiles.map((error, index) => (
<li key={index}>{error}</li>
))}
</ul>
</div>
)}
{uploadCountMessage > 0 && completedUploadFiles == false && (
<div className="govuk-body govuk-!-font-size-14">
{t("home:uploading-files-label", {
number: uploadCountMessage,
})}
</div>
)}
{completedUploadFiles > 0 && uploadCountMessage >= 0 && (
<div className="govuk-body govuk-!-font-size-14">
{t("home:completed-uploading-files-label", {
number: uploadCountMessage,
})}
</div>
)}
{field.meta.touched && field.meta.error && (
<span className="error">{field.meta.error}</span>
)}
{files && Array.isArray(files) && (
<ul>
{files.map(
(file, i) =>
typeof file.name != "undefined" && (
<div
key={file.name}
className="govuk-!-margin-bottom-5 fileThumb"
>
<img
src={getThumbnailIcon(file, file.type)}
alt={file.name}
width="50"
/>
<span className="govuk-body govuk-!-font-size-14 govuk-!-padding-left-5">
{file.name} ({bytesToSize(file.size)})
</span>
</div>
)
)}
</ul>
{!completedUploadFiles &&
filesUploadObj &&
Array.isArray(filesUploadObj) &&
filesUploadObj.map(
(file, i) =>
typeof file.name != "undefined" && (
<div
key={file.name}
className="govuk-!-margin-bottom-5 fileThumb"
>
<img
src={getThumbnailIcon(file, file.type)}
alt={file.name}
width="50"
/>
<span className="govuk-body govuk-!-font-size-14 govuk-!-padding-left-5">
{file.name} ({bytesToSize(file.size)}
)<br />
<div id={file.name + "_" + i}>
{completedUploadFiles ? (
<p className="govuk-body govuk-!-font-size-14">
Upload complete
</p>
) : (
<p className="govuk-body textloading govuk-!-font-size-14">
{t(
"home:uploading-files-progress-label"
)}
</p>
)}
</div>
</span>
</div>
)
)}
{blobList.length > 0 && (
<h4>{t("myrepresentations:previously-added-files")}</h4>
)}
{blobList.map((blob, i) => (
<div
key={blob.name + "_" + i}
className="govuk-!-margin-bottom-5 fileThumb govuk-!-margin-top-5"
>
<div className="">
<span
className="govuk-summary-list__actionLink watched_link govuk-!-margin-right-5 govuk-!-text-align-left"
onClick={() => {
deleteThisBlob(
field.containerID,
blob.name,
blob.hasheddeletepath,
blob.hashgetblobs,
field.ticketnumber
);
}}
title="Remove this file"
>
&minus;
</span>
</div>
<span
className="govuk-summary-list__actionLink watched_link govuk-!-margin-right-5 govuk-!-text-align-left"
onClick={() => {
setUploadCountMessage(uploadCountMessage - 1);
deleteThisBlob(
field.containerID,
blob.name,
blob.hasheddeletepath,
blob.hashgetblobs,
field.ticketnumber,
blob.path.split("/")[1]
);
}}
title={t("home:remove-this-file-label")}
>
&minus;
</span>
<img
src={getThumbnailIconByExtension(blob.name)}
alt={blob.name}
@@ -1110,7 +1331,12 @@ export const RenderFileUpload = (field) => {
"/api/file/downloadblob?container=" +
field.containerID +
"&casefolderID=" +
field.ticketnumber +
encodeURIComponent(
field.ticketnumber +
"/" +
field.filenamePrefix.representationForm
?.values?.repfile_name
) +
"&blobname=" +
blob.name +
blob.hashedfilepath
@@ -1141,17 +1367,35 @@ export function FileUploadField(props) {
ticketnumber={props.ticketnumber}
hint={props.hint}
fileList={props.fileList}
setFilesForAppeal={props.setFilesForAppeal}
setFilesForRepresentations={props.setFilesForRepresentations}
containerID={props.containerID}
filenamePrefix={
props.filenamePrefix.formObj.representationForm.values
.repfile_name
props.filenamePrefix.hasOwnProperty("representationForm") &&
props.filenamePrefix.representationForm.hasOwnProperty(
"values"
) &&
props.filenamePrefix.representationForm.values.hasOwnProperty(
"repfile_name"
)
? props.filenamePrefix.representationForm.values
.repfile_name
: props.filenamePrefix.hasOwnProperty("formObj")
? props.filenamePrefix.formObj["representationForm"]
.values.repfile_name
: ""
}
props={props}
/>
</>
);
}
export const shouldDisableButton = ({ props, formObj }) =>
!(
props?.currentView?.fileList?.length > 0 ||
typeof formObj?.representationForm?.values?.representationComments !==
"undefined"
);
// export const RepresentationGuidanceText = (appealType) => {
// let { t } = useTranslation();
@@ -1,17 +1,25 @@
import useTranslation from "next-translate/useTranslation";
import { useRouter } from "next/router";
import { useDropzone } from "react-dropzone";
import { connect } from "react-redux";
import { Field, change, reduxForm } from "redux-form";
import { useState } from "react";
import { bytesToSize, getThumbnailIconByExtension } from "../../utils";
import {
FileUploadField,
RenderCondtionalRadioList,
RenderPickList,
RenderRichMultiline,
shouldDisableButton,
} from "./representationElements";
import { useDropzone } from "react-dropzone";
import {
setRepresentationCapacity,
setRepresentationSubmit,
setFilesForRepresentations,
} from "../../../store/currentView/action";
const RepInterestedPartyPerson = (props) => {
let { t } = useTranslation();
@@ -24,170 +32,221 @@ const RepInterestedPartyPerson = (props) => {
setRepresentationSubmit,
setRepFileName,
updateRepresentation,
setSavingStatus,
savingStatus,
setFilesForRepresentations,
} = props;
const required = (value) => (value ? undefined : "Required");
const { acceptedFiles, getRootProps, getInputProps } = useDropzone();
const [savingStatus, setSavingStatus] = useState(false);
setRepFileName(formObj.representationForm.values);
if (JSON.stringify(formObj) != "{}") {
setRepFileName(formObj.representationForm.values);
let filterFilesList =
props.currentView.caseReference.repDetails.filesList.filter(function (
el
) {
return el != null;
});
let filterFilesList = props.currentView.caseReference.hasOwnProperty(
"repDetails"
)
? props.currentView.caseReference.repDetails.hasOwnProperty(
"filesList"
)
? props.currentView.caseReference.repDetails.filesList.filter(
function (el) {
return el != null;
}
)
: []
: [];
const files = acceptedFiles.map((file) => (
<li key={file.path}>
{file.path} - {file.size} bytes
</li>
));
return (
<>
<div className="govuk-grid-row">
<div className="govuk-form-group">
{typeof formObj.representationForm.values
.representationType == "undefined" &&
props.representationType != "Select..." ? (
<>
<h2 className="govuk-heading-m ">
{t(
"myrepresentations:representation-from-an-interested-person-heading"
)}
</h2>
<label
className="govuk-label govuk-body-m"
htmlFor="representationType"
>
{t("myrepresentations:kind-of-rep-label")}
</label>
<Field
name="representationType"
component={RenderPickList}
datafieldname="representationType"
validate={[required]}
optionsArr={interestedPersonRepresentationArr}
errorMsg={t(
"myrepresentations:select-an-option-label"
)}
/>
</>
) : (
<label className="govuk-label govuk-body-m">
{t("myrepresentations:representation-type")}:{" "}
{router.locale == "cy"
? formObj.representationForm.values
.representationType == "Questionnaire"
? "Holiadur"
: formObj.representationForm.values
.representationType == "Statement"
? "Datganiad"
: formObj.representationForm.values
.representationType ==
"Final comments"
? "Sylwadau terfynol"
: formObj.representationForm.values
.representationType
: formObj.representationForm.values
.representationType}
</label>
)}
</div>
</div>
{(typeof props.representationType != "undefined" ||
typeof formObj.representationForm.values.representationType !=
"undefined") && (
<>
<div className="govuk-grid-row">
<div className="govuk-form-group">
<Field
name="representationOnBehalfOf"
datafieldname="representationOnBehalfOf"
// label="In what capacity do you wish to make representations on this case?"
options={["Yes", "No"]}
id="representationOnBehalfOf"
className="govuk-radios__input"
errorMsg={t(
"myrepresentations:select-an-option-label"
)}
component={RenderCondtionalRadioList}
validate={[required]}
legend={
"Are you acting on behalf of a company, group or organisation?"
}
/>
</div>
</div>
<div className="govuk-grid-row">
<div className="govuk-form-group">
<p className="govuk-body">
{t("myrepresentations:enter-comment-label")}
</p>
<fieldset
className="govuk-fieldset"
aria-describedby="commentBox-hint"
>
<div
id="commentBox-hint"
className="govuk-hint"
>
{t(
"myrepresentations:comments-set-out-label"
)}
:
</div>
<div className="govuk-form-group">
<Field
name="representationComments"
id="representationComments"
component={RenderRichMultiline}
type="text"
rows="5"
className="govuk-textarea govuk-input--width-30"
aria-describedby={props.name + "-hint"}
/>
</div>
<div className="govuk-form-group govuk-!-margin-bottom-9">
<FileUploadField
name={"representationDocuments"}
id={"representationDocuments"}
label={t(
"myrepresentations:add-files-label"
)}
ticketnumber={props.props.caseReference}
hint={"sdsd"}
fileList={[]}
setFilesForRepresentation={[]}
containerID={
props.props.props.accountDetails
.containerID
}
filenamePrefix={props}
/>
</div>
</fieldset>
</div>{" "}
</div>
</>
)}
{typeof formObj.representationForm.values.representationType !=
"undefined" && (
const files = acceptedFiles.map((file) => (
<li key={file.path}>
{file.path} - {file.size} bytes
</li>
));
return (
<>
<div className="govuk-grid-row">
<div className="govuk-button-group">
<button
type="submit"
className="govuk-button"
data-module="govuk-button"
>
{t("common:continue-button")}
</button>
{/*
<div className="govuk-form-group">
{typeof formObj.representationForm.values
.representationType == "undefined" &&
props.representationType != "Select..." ? (
<>
<h2 className="govuk-heading-m ">
{t(
"myrepresentations:consultation-from-an-interested-person-heading"
)}
</h2>
<label
className="govuk-label govuk-body-m"
htmlFor="representationType"
>
{t("myrepresentations:kind-of-rep-label")}
</label>
<Field
name="representationType"
component={RenderPickList}
datafieldname="representationType"
validate={[required]}
optionsArr={
interestedPersonRepresentationArr
}
errorMsg={t(
"myrepresentations:select-an-option-label"
)}
/>
</>
) : (
<label className="govuk-label govuk-body-m">
{t("myrepresentations:representation-type")}:{" "}
{router.locale == "cy"
? formObj.representationForm.values
.representationType == "Questionnaire"
? "Holiadur"
: formObj.representationForm.values
.representationType == "Statement"
? "Datganiad"
: formObj.representationForm.values
.representationType ==
"Final comments"
? "Sylwadau terfynol"
: formObj.representationForm.values
.representationType
: formObj.representationForm.values
.representationType}
</label>
)}
</div>
</div>
{(typeof props.representationType != "undefined" ||
typeof formObj.representationForm.values
.representationType != "undefined") && (
<>
<div className="govuk-grid-row">
<div className="govuk-form-group">
<Field
name="representationOnBehalfOf"
datafieldname="representationOnBehalfOf"
// label="In what capacity do you wish to make representations on this case?"
options={[
t(
"myrepresentations:questionnaire-yes"
),
t("myrepresentations:questionnaire-no"),
]}
id="representationOnBehalfOf"
className="govuk-radios__input"
errorMsg={t(
"myrepresentations:select-an-option-label"
)}
component={RenderCondtionalRadioList}
validate={[required]}
legend={t("case:representation-onbehalfof")}
hint={t(
"myrepresentations:representation-onbehalfof-hint"
)}
/>
</div>
</div>
<div className="govuk-grid-row">
<div className="govuk-form-group">
<p className="govuk-body">
{t("myrepresentations:enter-comment-label")}
</p>
<fieldset
className="govuk-fieldset"
aria-describedby="commentBox-hint"
>
{/* <div
id="commentBox-hint"
className="govuk-hint"
>
{t(
"myrepresentations:comments-set-out-label"
)}
:
</div> */}
<div className="govuk-form-group">
<Field
name="representationComments"
id="representationComments"
component={RenderRichMultiline}
type="text"
rows="5"
className="govuk-textarea govuk-input--width-30"
aria-describedby={
props.name + "-hint"
}
/>
</div>
<div className="govuk-form-group govuk-!-margin-bottom-9">
<FileUploadField
name={"representationDocuments"}
id={"representationDocuments"}
label={t(
"myrepresentations:add-files-label"
)}
ticketnumber={
props.props.caseReference
}
hint={"sdsd"}
fileList={
props.currentView.fileList
// props.currentView.caseReference.hasOwnProperty(
// "repDetails"
// )
// ? props.currentView.caseReference.repDetails.hasOwnProperty(
// "filesList"
// ) &&
// props.currentView
// .caseReference
// .repDetails.filesList
// .length > 0
// ? props.currentView
// .caseReference
// .repDetails
// .filesList
// : []
// : []
}
setFilesForRepresentations={
setFilesForRepresentations
}
containerID={
props.props.props.accountDetails
.containerID
}
filenamePrefix={props.formObj}
props={props.props.props}
setCurrentReference={
props.setCurrentReference
}
/>
</div>
</fieldset>
</div>{" "}
</div>
</>
)}
{typeof formObj.representationForm.values.representationType !=
"undefined" && (
<div className="govuk-grid-row">
<div className="govuk-button-group">
<button
type="submit"
className="govuk-button"
data-module="govuk-button"
disabled={shouldDisableButton({
props,
formObj,
})}
>
{t("common:continue-button")}
</button>
{/*
<a
onClick={() => {
setRepresentationCapacity();
@@ -206,49 +265,52 @@ const RepInterestedPartyPerson = (props) => {
>
{t("case:summary-back-button-label")}
</a> */}
{savingStatus ? (
<span className=" progress-save-active">
{router.locale == "cy"
? "Nôl data"
: "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 progress-save "
onClick={() => {
let valuesObj =
props.props.props.form[props.form]
.values || {};
{savingStatus ? (
<span className=" progress-save-active">
{router.locale == "cy"
? "Nôl data"
: "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 progress-save "
onClick={() => {
let valuesObj =
props.props.props.form[props.form]
.values || {};
console.log("valuesobj:", valuesObj);
//console.log("valuesobj:", valuesObj);
delete valuesObj["_pinswg_appellant_value"];
delete valuesObj[
"_pinswg_appellant_value"
];
console.log("on save:", valuesObj);
updateRepresentation(
valuesObj,
false,
true
);
}}
>
{t("common:save-exit-button")}
</button>
)}
//console.log("on save:", valuesObj);
updateRepresentation(
valuesObj,
false,
true
);
}}
>
{t("common:save-exit-button")}
</button>
)}
</div>
</div>
</div>
)}
</>
);
)}
</>
);
}
};
//const mapStateToProps = (state, props) => {};
@@ -256,6 +318,9 @@ const RepInterestedPartyPerson = (props) => {
const mapDispatchToProps = (dispatch) => ({
updateField: (form, field, newValue) =>
dispatch(change(form, field, newValue)),
setFilesForRepresentations: (fileList) => {
dispatch(setFilesForRepresentations(fileList));
},
});
export default connect(
@@ -5,21 +5,29 @@ import { useRouter } from "next/router";
import { useDropzone } from "react-dropzone";
import { connect } from "react-redux";
import { Field, change, formValueSelector, reduxForm } from "redux-form";
import { useState } from "react";
import { useState, useEffect } from "react";
import {
FileUploadField,
RenderMultiline,
RenderPickList,
shouldDisableButton,
} from "./representationElements";
import RepresentationProgress_enforcement from "./representationProgress/representationProgress_enforcement";
import RepresentationProgress_s78 from "./representationProgress/representationProgress_s78";
import Enforcement_Questionnaire from "./representationQuestionnaires/representationLPAQuestionnaire_enforcement";
import S78_Questionnaire from "./representationQuestionnaires/representationLPAQuestionnaire_s78";
import {
setRepresentationCapacity,
setRepresentationSubmit,
setFilesForRepresentations,
setCurrentPage,
setCurrentReference,
} from "../../../store/currentView/action";
let RepLPA = (props) => {
let { t } = useTranslation();
const router = useRouter();
const { locale } = router;
const {
@@ -38,9 +46,11 @@ let RepLPA = (props) => {
setQuestionnaireCount,
setRepFileName,
updateRepresentation,
setSavingStatus,
savingStatus,
setFilesForRepresentations,
} = props;
const { acceptedFiles, getRootProps, getInputProps } = useDropzone();
const [savingStatus, setSavingStatus] = useState(false);
const files = acceptedFiles.map((file) => (
<li key={file.path}>
@@ -49,50 +59,22 @@ let RepLPA = (props) => {
));
const required = (value) => (value ? undefined : "Required");
const updateQuestionnaireCount = () => {
{
switch (currentView.caseReference.appealType) {
case 846040000:
case 846040001:
case 846040006:
case 846040025:
case 846040004:
case 846040018:
case 846040003:
case 846040009:
case 846040008:
setQuestionnaireCount(7);
break;
case 846040005:
case 846040006:
case 846040007:
setQuestionnaireCount(9);
break;
default:
setQuestionnaireCount(7);
break;
}
}
};
const whichQuestionnaire = () => {
{
switch (currentView.caseReference.appealType) {
case 846040000:
case 846040001:
case 846040006:
case 846040025:
case 846040004:
case 846040018:
case 846040003:
case 846040009:
case 846040008:
case 846040010:
case 846040017:
updateQuestionnaireCount();
return (
<S78_Questionnaire
questionnaireType={"s78"}
props={props}
containerID={
props.props.props.accountDetails.containerID
@@ -103,6 +85,7 @@ let RepLPA = (props) => {
setShowQuestionnaireSection
}
questionnaireCount={questionnaireCount}
setRepresentationSubmit={setRepresentationSubmit}
/>
);
break;
@@ -110,9 +93,9 @@ let RepLPA = (props) => {
case 846040005:
case 846040006:
case 846040007:
updateQuestionnaireCount();
return (
<Enforcement_Questionnaire
questionnaireType={"enf"}
props={props}
containerID={
props.props.props.accountDetails.containerID
@@ -123,6 +106,7 @@ let RepLPA = (props) => {
setShowQuestionnaireSection
}
questionnaireCount={questionnaireCount}
setRepresentationSubmit={setRepresentationSubmit}
/>
);
break;
@@ -138,13 +122,13 @@ let RepLPA = (props) => {
switch (currentView.caseReference.appealType) {
case 846040000:
case 846040001:
case 846040006:
case 846040025:
case 846040004:
case 846040018:
case 846040003:
case 846040009:
case 846040008:
case 846040010:
case 846040017:
return (
<RepresentationProgress_s78
@@ -193,12 +177,14 @@ let RepLPA = (props) => {
var detailsObj = {};
detailsObj = jsonpath(
'$..[?(@.pinswg_name=="' +
detailsObj = jsonpath({
path:
'$..[?(@ && @.pinswg_name=="' +
currentView.caseReference.currentReference +
'")]',
setCaseDetailsObj
);
json: setCaseDetailsObj,
eval: true,
});
let setCaseResultssObj = router.query.hasOwnProperty("state")
? router.query.state == "edit"
@@ -210,15 +196,18 @@ let RepLPA = (props) => {
var resultsObj = {};
resultsObj = jsonpath(
'$..[?(@.pinswg_name=="' +
resultsObj = jsonpath({
path:
'$..[?@ && @.pinswg_name=="' +
currentView.caseReference.currentReference +
'")]',
setCaseResultssObj
);
json: setCaseResultssObj,
eval: true,
});
resultsObj = resultsObj[0];
props.formObj["representationForm"].hasOwnProperty("values") &&
props.formObj.hasOwnProperty("representationForm") &&
props.formObj["representationForm"].hasOwnProperty("values") &&
props.formObj["representationForm"].values.hasOwnProperty(
"representationCapacity"
) &&
@@ -227,6 +216,13 @@ let RepLPA = (props) => {
) &&
setRepFileName(props.formObj["representationForm"].values);
let filesListObj =
props.formObj.hasOwnProperty("representationForm") &&
props.formObj["representationForm"].hasOwnProperty("values") &&
props.formObj["representationForm"].values.hasOwnProperty("filesList")
? props.formObj["representationForm"].values.filesList
: {};
return (
<>
<div className="govuk-grid-row">
@@ -234,7 +230,8 @@ let RepLPA = (props) => {
{!_.has(
formObj["representationForm"],
["values", "representationType"] ||
typeof props.representationType != "undefined"
typeof props.currentView.caseReference.repDetails !=
"undefined"
) ? (
<>
<label
@@ -292,7 +289,7 @@ let RepLPA = (props) => {
className="govuk-fieldset"
aria-describedby="commentBox-hint"
>
<div
{/* <div
id="commentBox-hint"
className="govuk-hint"
>
@@ -300,7 +297,7 @@ let RepLPA = (props) => {
"myrepresentations:comments-set-out-label"
)}
:
</div>
</div> */}
<div className="govuk-form-group">
<Field
name="representationComments"
@@ -321,6 +318,35 @@ let RepLPA = (props) => {
>
{" "}
<div className="govuk-form-group govuk-!-margin-bottom-9">
{console.log(
"--------",
props.formObj.hasOwnProperty(
"representationForm"
) &&
props.formObj[
"representationForm"
].hasOwnProperty("values") &&
props.formObj[
"representationForm"
].values.hasOwnProperty(
"filesList"
)
? props.props.props.form[
"representationForm"
].values.filesList
: ""
)}
{/* {props.formObj.hasOwnProperty(
"representationForm"
) &&
props.formObj[
"representationForm"
].hasOwnProperty("values") &&
props.formObj[
"representationForm"
].values.hasOwnProperty(
"filesList"
) && ( */}
<FileUploadField
name={"representationDocuments"}
id={"representationDocuments"}
@@ -332,17 +358,39 @@ let RepLPA = (props) => {
}
hint={"sdsd"}
fileList={
props.props.props.form[
"representationForm"
].values.filesList || []
props.currentView.fileList
// (props.formObj.hasOwnProperty(
// "representationForm"
// ) &&
// props.formObj[
// "representationForm"
// ].hasOwnProperty(
// "values"
// ) &&
// props.formObj[
// "representationForm"
// ].values.hasOwnProperty(
// "filesList"
// ) &&
// props.props.props.form[
// "representationForm"
// ].values.filesList) ||
// []
}
setFilesForRepresentations={
setFilesForRepresentations
}
setFilesForRepresentation={[]}
containerID={
props.props.props.accountDetails
.containerID
}
filenamePrefix={props}
filenamePrefix={props.formObj}
props={props.props.props}
setCurrentReference={
props.setCurrentReference
}
/>
{/* // )} */}
</div>
</fieldset>
</>
@@ -391,10 +439,10 @@ let RepLPA = (props) => {
{showQuestionnaireSection > 1 && (
<a
onClick={() => {
window.scrollTo({
top: 0,
behavior: "smooth",
});
// window.scrollTo({
// top: 0,
// behavior: "smooth",
// });
setRepFileName(
props.formObj[
"representationForm"
@@ -409,7 +457,6 @@ let RepLPA = (props) => {
Back
</a>
)}
{savingStatus ? (
<span className=" progress-save-active">
{router.locale == "cy"
@@ -434,16 +481,16 @@ let RepLPA = (props) => {
props.form
].values || {};
console.log(
"valuesobj:",
valuesObj
);
// console.log(
// "valuesobj:",
// valuesObj
// );
delete valuesObj[
"_pinswg_appellant_value"
];
console.log("on save:", valuesObj);
//console.log("on save:", valuesObj);
updateRepresentation(
valuesObj,
false,
@@ -464,6 +511,29 @@ let RepLPA = (props) => {
type="submit"
className="govuk-button"
data-module="govuk-button"
disabled={shouldDisableButton({
props,
formObj,
})}
onClick={() => {
let valuesObj =
props.props.props.form[props.form]
.values || {};
//console.log("valuesobj:", valuesObj);
delete valuesObj[
"_pinswg_appellant_value"
];
//console.log("on save:", valuesObj);
updateRepresentation(
valuesObj,
false,
false
);
setRepresentationSubmit(true);
}}
>
{t("common:continue-button")}
</button>
@@ -502,19 +572,20 @@ let RepLPA = (props) => {
className="govuk-button progress-save "
onClick={() => {
let valuesObj =
props.props.form[props.form]
.values || {};
props.props.props.form[
props.form
].values || {};
console.log(
"valuesobj:",
valuesObj
);
// console.log(
// "valuesobj:",
// valuesObj
// );
delete valuesObj[
"_pinswg_appellant_value"
];
console.log("on save:", valuesObj);
//console.log("on save:", valuesObj);
updateRepresentation(
valuesObj,
false,
@@ -548,6 +619,13 @@ RepLPA = connect((state) => {
const mapDispatchToProps = (dispatch) => ({
updateField: (form, field, newValue) =>
dispatch(change(form, field, newValue)),
setFilesForRepresentations: (fileList) => {
dispatch(setFilesForRepresentations(fileList));
},
setCurrentReference: (currentReference) => {
dispatch(setCurrentReference(currentReference));
},
});
const mapStateToProps = (state, props) => {
@@ -556,7 +634,7 @@ const mapStateToProps = (state, props) => {
? state.currentView.caseReference.repDetails
: state.currentView.caseReference,
{
"representationCapacity": "lpa",
"representationCapacity": "LPA",
"onBehalfOfLPA":
props.props.props.accountDetails.accountDetails[
"pinswg_contact_associatedlpa@OData.Community.Display.V1.FormattedValue"
@@ -12,9 +12,9 @@ let RepLPAQuestionnaire = (props) => {
className="govuk-fieldset"
aria-describedby="commentBox-hint"
>
<div id="commentBox-hint" className="govuk-hint">
{/* <div id="commentBox-hint" className="govuk-hint">
{t("myrepresentations:comments-set-out-label")}:
</div>
</div> */}
<div className="govuk-form-group">
<Field
name="representationComments"
@@ -20,10 +20,11 @@ const RepLPADetails = (props) => {
var detailsObj = {};
detailsObj = jsonpath(
'$..[?(@.pinswg_name=="' + caseReference + '")]',
setCaseDetailsObj
);
detailsObj = jsonpath({
path: '$..[?(@ && @.pinswg_name=="' + caseReference + '")]',
json: setCaseDetailsObj,
eval: true,
});
detailsObj = detailsObj[0];
@@ -62,9 +62,9 @@ const RepLandOwner = (props) => {
className="govuk-fieldset"
aria-describedby="commentBox-hint"
>
<div id="commentBox-hint" className="govuk-hint">
{/* <div id="commentBox-hint" className="govuk-hint">
{t("myrepresentations:comments-set-out-label")}:
</div>
</div> */}
<div className="govuk-form-group">
<Field
name="representationComments"
@@ -455,7 +455,7 @@ const RepresentationProgress_enforcement = (props) => {
>
<span className="js-step-title-text govuk-!-font-size-16">
{t(
"myrepresentations:enf-section-heading-seven"
"myrepresentations:s78-section-heading-five-sub"
)}
</span>
</a>
@@ -332,7 +332,7 @@ const RepresentationProgress_s78 = (props) => {
>
<span className="js-step-title-text govuk-!-font-size-16">
{t(
"myrepresentations:s78-section-heading-three"
"myrepresentations:s78-section-heading-five-sub"
)}
</span>
</a>
@@ -4,6 +4,8 @@ import { useRouter } from "next/router";
import { useDropzone } from "react-dropzone";
import { connect } from "react-redux";
import { Field, formValueSelector, reduxForm } from "redux-form";
import { getFormCollectionByID } from "../../../../components/utils";
import {
FileUploadField,
RenderDatePicker,
@@ -14,6 +16,11 @@ import {
RenderRichMultiline,
RenderTextfield,
} from "../representationElements";
import {
setRepresentationCapacity,
setRepresentationSubmit,
setFilesForRepresentations,
} from "../../../../store/currentView/action";
let Enforcement_Questionnaire = (props) => {
let { t } = useTranslation();
@@ -29,6 +36,7 @@ let Enforcement_Questionnaire = (props) => {
procedureTypeValue,
onBehalfOfLPA,
showQuestionnaireSection,
setFilesForRepresentations,
} = props;
const { acceptedFiles, getRootProps, getInputProps } = useDropzone();
const files = acceptedFiles.map((file) => (
@@ -50,12 +58,14 @@ let Enforcement_Questionnaire = (props) => {
var detailsObj = {};
detailsObj = jsonpath(
'$..[?(@.pinswg_name=="' +
detailsObj = jsonpath({
path:
'$..[?(@ && @.pinswg_name=="' +
currentView.caseReference.currentReference +
'")]',
setCaseDetailsObj
);
json: setCaseDetailsObj,
eval: true,
});
let setCaseResultssObj = router.query.hasOwnProperty("state")
? router.query.state == "edit"
@@ -71,12 +81,14 @@ let Enforcement_Questionnaire = (props) => {
var resultsObj = {};
resultsObj = jsonpath(
'$..[?(@.ticketnumber=="' +
resultsObj = jsonpath({
path:
'$..[?(@ && @.ticketnumber=="' +
currentView.caseReference.currentReference +
'")]',
setCaseResultssObj
);
json: setCaseResultssObj,
eval: true,
});
resultsObj = resultsObj[0];
return (
@@ -87,7 +99,14 @@ let Enforcement_Questionnaire = (props) => {
aria-describedby="commentBox-hint"
>
<h3 className="govuk-heading-s ">
Enforcement_Questionnaire{" "}
Enforcement Questionnaire
</h3>
<p className="govuk-body">
{t("myrepresentations:questionnaire-hint-para")}
</p>
<h3 className="govuk-heading-s ">
{t("myrepresentations:enf-section-heading-one")}{" "}
</h3>
<div className="govuk-form-group">
@@ -106,19 +125,32 @@ let Enforcement_Questionnaire = (props) => {
<div className="govuk-label">
3. {t("myrepresentations:enf-section-question-3")}:{" "}
{detailsObj.pinswg_siteaddressline1 +
" " +
detailsObj.pinswg_siteaddressline2 +
" " +
(detailsObj.pinswg_siteaddressline2 != null
? " " +
detailsObj.pinswg_siteaddressline2 +
" "
: " ") +
detailsObj.pinswg_siteaddresstown +
" " +
detailsObj.pinswg_siteaddresspostcode}
</div>
</div>
<div className="govuk-form-group">
<div className="govuk-label">
4. {t("myrepresentations:s78-section-question-4")}:{" "}
{
getFormCollectionByID(
currentView.caseReference.appealType
).value
}
</div>
</div>
<div className="govuk-form-group">
<Field
label={t(
"myrepresentations:enf-section-question-4"
)}
label={
"5." +
t("myrepresentations:enf-section-question-4")
}
name="procedureType"
optionsArr={[
"Written representations",
@@ -150,7 +182,7 @@ let Enforcement_Questionnaire = (props) => {
<Field
label={
"5. " +
"6. " +
t("myrepresentations:enf-section-question-5")
}
name="enterToView"
@@ -164,6 +196,9 @@ let Enforcement_Questionnaire = (props) => {
rows="5"
className="govuk-textarea govuk-input--width-30"
aria-describedby={props.name + "-hint"}
errorMsg={t(
"myrepresentations:select-an-option-label"
)}
/>
<div className="govuk-form-group">
@@ -182,7 +217,7 @@ let Enforcement_Questionnaire = (props) => {
component={RenderLPACondtionalRadioList}
validate={[required]}
legend={
"6. " +
"7. " +
t(
"myrepresentations:enf-section-question-6"
)
@@ -211,7 +246,7 @@ let Enforcement_Questionnaire = (props) => {
component={RenderLPACondtionalRadioList}
validate={[required]}
legend={
"7. " +
"8. " +
t(
"myrepresentations:enf-section-question-7"
)
@@ -240,7 +275,7 @@ let Enforcement_Questionnaire = (props) => {
component={RenderLPACondtionalRadioList}
validate={[required]}
legend={
"8. " +
"9. " +
t(
"myrepresentations:enf-section-question-8"
)
@@ -264,7 +299,7 @@ let Enforcement_Questionnaire = (props) => {
type="text"
component={RenderRichMultiline}
label={
"9. " +
"10. " +
t(
"myrepresentations:enf-section-question-9"
)
@@ -285,7 +320,7 @@ let Enforcement_Questionnaire = (props) => {
<div className="govuk-form-group">
<Field
label={
"10. " +
"11. " +
t("myrepresentations:enf-section-question-10")
}
name="feePaid"
@@ -317,7 +352,7 @@ let Enforcement_Questionnaire = (props) => {
component={RenderLPACondtionalRadioList}
validate={[required]}
legend={
"11. " +
"12. " +
t("myrepresentations:enf-section-question-11")
}
conditionalLabel={t(
@@ -354,7 +389,7 @@ let Enforcement_Questionnaire = (props) => {
component={RenderLPACondtionalRadioList}
validate={[required]}
legend={
"12. " +
"13. " +
t("myrepresentations:enf-section-question-12")
}
conditionalLabel={t(
@@ -381,8 +416,8 @@ let Enforcement_Questionnaire = (props) => {
component={RenderLPACondtionalRadioList}
validate={[required]}
legend={
"13. " +
t("myrepresentations:enf-section-question-12")
"14. " +
t("myrepresentations:enf-section-question-13")
}
conditionalLabel={t(
"myrepresentations:enf-section-question-13-hint"
@@ -408,7 +443,7 @@ let Enforcement_Questionnaire = (props) => {
component={RenderLPACondtionalRadioList}
validate={[required]}
legend={
"14. " +
"15. " +
t("myrepresentations:enf-section-question-14")
}
conditionalLabel={t(
@@ -435,7 +470,7 @@ let Enforcement_Questionnaire = (props) => {
component={RenderLPACondtionalRadioList}
validate={[required]}
legend={
"15. " +
"16. " +
t("myrepresentations:enf-section-question-15")
}
conditionalLabel={t(
@@ -462,7 +497,7 @@ let Enforcement_Questionnaire = (props) => {
component={RenderLPACondtionalRadioList}
validate={[required]}
legend={
"16. " +
"17. " +
t("myrepresentations:enf-section-question-16")
}
conditionalLabel={t(
@@ -489,7 +524,7 @@ let Enforcement_Questionnaire = (props) => {
component={RenderLPACondtionalRadioList}
validate={[required]}
legend={
"17. " +
"18. " +
t("myrepresentations:enf-section-question-17")
}
conditionalLabel={t(
@@ -514,7 +549,7 @@ let Enforcement_Questionnaire = (props) => {
<div className="govuk-form-group">
<Field
label={
"18. " +
"19. " +
t("myrepresentations:enf-section-question-18")
}
name="LPAldpAndMap"
@@ -533,7 +568,7 @@ let Enforcement_Questionnaire = (props) => {
<div className="govuk-form-group">
<Field
label={
"19. " +
"20. " +
t("myrepresentations:enf-section-question-19")
}
name="LPAlocalGuidance"
@@ -551,7 +586,7 @@ let Enforcement_Questionnaire = (props) => {
</div>
<Field
label={
"20. " +
"21. " +
t("myrepresentations:enf-section-question-20")
}
name="LPAintentionToSubmitFullStatement"
@@ -578,7 +613,7 @@ let Enforcement_Questionnaire = (props) => {
</h3>
<Field
label={
"21. " +
"22. " +
t("myrepresentations:enf-section-question-21")
}
name="AONB"
@@ -610,7 +645,7 @@ let Enforcement_Questionnaire = (props) => {
component={RenderLPACondtionalRadioList}
validate={[required]}
legend={
"22. " +
"23. " +
t("myrepresentations:enf-section-question-22")
}
conditionalLabel={t(
@@ -637,7 +672,7 @@ let Enforcement_Questionnaire = (props) => {
component={RenderLPACondtionalRadioList}
validate={[required]}
legend={
"23. " +
"24. " +
t("myrepresentations:enf-section-question-23")
}
conditionalLabel={t(
@@ -664,8 +699,8 @@ let Enforcement_Questionnaire = (props) => {
component={RenderLPACondtionalRadioList}
validate={[required]}
legend={
"24. " +
t("myrepresentations:enf-section-question-23")
"25. " +
t("myrepresentations:enf-section-question-24")
}
conditionalLabel={t(
"myrepresentations:enf-section-question-24-hint"
@@ -691,7 +726,7 @@ let Enforcement_Questionnaire = (props) => {
component={RenderLPACondtionalRadioList}
validate={[required]}
legend={
"25. " +
"26. " +
t("myrepresentations:enf-section-question-25")
}
conditionalLabel={t(
@@ -718,7 +753,7 @@ let Enforcement_Questionnaire = (props) => {
component={RenderLPACondtionalRadioList}
validate={[required]}
legend={
"26. " +
"27. " +
t("myrepresentations:enf-section-question-26")
}
conditionalLabel={t(
@@ -745,7 +780,7 @@ let Enforcement_Questionnaire = (props) => {
component={RenderLPACondtionalRadioList}
validate={[required]}
legend={
"27. " +
"28. " +
t("myrepresentations:enf-section-question-27")
}
conditionalLabel={t(
@@ -759,7 +794,7 @@ let Enforcement_Questionnaire = (props) => {
<div className="govuk-form-group">
<Field
label={
"28. " +
"29. " +
t("myrepresentations:enf-section-question-28")
}
name="gypsyTravellerInvolvment"
@@ -791,7 +826,7 @@ let Enforcement_Questionnaire = (props) => {
component={RenderLPACondtionalRadioList}
validate={[required]}
legend={
"29. " +
"30. " +
t("myrepresentations:enf-section-question-29")
}
conditionalLabel={t(
@@ -818,7 +853,7 @@ let Enforcement_Questionnaire = (props) => {
component={RenderLPACondtionalRadioList}
validate={[required]}
legend={
"30. " +
"31. " +
t("myrepresentations:enf-section-question-30")
}
conditionalLabel={t(
@@ -840,7 +875,7 @@ let Enforcement_Questionnaire = (props) => {
{t("myrepresentations:enf-section-heading-six")}
</h3>
<div className="govuk-form-group govuk-body-m">
{t("myrepresentations:enf-section-question-31")}
32. {t("myrepresentations:enf-section-question-31")}
</div>
<div className="govuk-form-group">
@@ -858,9 +893,10 @@ let Enforcement_Questionnaire = (props) => {
)}
component={RenderLPACondtionalRadioList}
validate={[required]}
legend={t(
"myrepresentations:enf-section-question-31a"
)}
legend={
"a) " +
t("myrepresentations:enf-section-question-31a")
}
conditionalLabel={t(
"myrepresentations:enf-section-question-31a-hint"
)}
@@ -870,7 +906,10 @@ let Enforcement_Questionnaire = (props) => {
/>
</div>
<Field
label={t("myrepresentations:enf-section-question-31b")}
label={
"b) " +
t("myrepresentations:enf-section-question-31b")
}
name="developmentNotTakePlaceBiodiversity"
id="developmentNotTakePlaceBiodiversity"
component={RenderRadioList}
@@ -884,7 +923,10 @@ let Enforcement_Questionnaire = (props) => {
aria-describedby={props.name + "-hint"}
/>
<Field
label={t("myrepresentations:enf-section-question-31c")}
label={
"c) " +
t("myrepresentations:enf-section-question-31c")
}
name="developmentNotTakePlaceBroadband"
id="developmentNotTakePlaceBroadband"
component={RenderRadioList}
@@ -914,7 +956,7 @@ let Enforcement_Questionnaire = (props) => {
component={RenderLPACondtionalRadioList}
validate={[required]}
legend={
"32. " +
"33. " +
t("myrepresentations:enf-section-question-32")
}
conditionalLabel={t(
@@ -933,8 +975,11 @@ let Enforcement_Questionnaire = (props) => {
aria-describedby="commentBox-hint"
>
<h3 className="govuk-heading-s ">
{t("myrepresentations:enf-section-heading-seven")}
{t("myrepresentations:s78-section-heading-five-sub")}
</h3>
<p className="govuk-body">
{t("myrepresentations:s78-section-heading-five")}
</p>
<div className="govuk-form-group">
<Field
@@ -952,7 +997,7 @@ let Enforcement_Questionnaire = (props) => {
component={RenderLPACondtionalRadioList}
validate={[required]}
legend={
"33. " +
"34. " +
t("myrepresentations:enf-section-question-33")
}
conditionalLabel={t(
@@ -979,7 +1024,7 @@ let Enforcement_Questionnaire = (props) => {
component={RenderLPACondtionalRadioList}
validate={[required]}
legend={
"34. " +
"35. " +
t("myrepresentations:enf-section-question-34")
}
conditionalLabel={t(
@@ -1006,7 +1051,7 @@ let Enforcement_Questionnaire = (props) => {
component={RenderLPACondtionalRadioList}
validate={[required]}
legend={
"35. " +
"36. " +
t("myrepresentations:enf-section-question-35")
}
conditionalLabel={t(
@@ -1033,7 +1078,7 @@ let Enforcement_Questionnaire = (props) => {
component={RenderLPACondtionalRadioList}
validate={[required]}
legend={
"36. " +
"37. " +
t("myrepresentations:enf-section-question-36")
}
conditionalLabel={t(
@@ -1060,12 +1105,15 @@ let Enforcement_Questionnaire = (props) => {
component={RenderLPACondtionalRadioList}
validate={[required]}
legend={
"37. " +
"38. " +
t("myrepresentations:enf-section-question-37")
}
conditionalLabel={t(
"myrepresentations:enf-section-question-37-hint"
)}
hint={
"Regulation 45 of the Town and Country Planning (Environmental Impact Assessment) (Wales) Regulations 2017 (as amended)."
}
optionSelect={t(
"myrepresentations:questionnaire-yes"
)}
@@ -1087,7 +1135,7 @@ let Enforcement_Questionnaire = (props) => {
component={RenderLPACondtionalRadioList}
validate={[required]}
legend={
"38. " +
"39. " +
t("myrepresentations:enf-section-question-38")
}
conditionalLabel={t(
@@ -1114,7 +1162,7 @@ let Enforcement_Questionnaire = (props) => {
component={RenderLPACondtionalRadioList}
validate={[required]}
legend={
"39. " +
"40. " +
t("myrepresentations:enf-section-question-39")
}
conditionalLabel={t(
@@ -1141,7 +1189,7 @@ let Enforcement_Questionnaire = (props) => {
component={RenderLPACondtionalRadioList}
validate={[required]}
legend={
"40. " +
"41. " +
t("myrepresentations:enf-section-question-40")
}
conditionalLabel={t(
@@ -1165,16 +1213,33 @@ let Enforcement_Questionnaire = (props) => {
name={"representationDocuments"}
id={"representationDocuments"}
label={t("myrepresentations:add-files-label")}
ticketnumber={props.props.caseReference}
ticketnumber={props.props.props.caseReference}
hint={"sdsd"}
fileList={
props.props.props.props.form[
"representationForm"
].values.filesList || []
props.currentView.fileList
// props.currentView.caseReference.hasOwnProperty(
// "repDetails"
// )
// ? props.currentView.caseReference.repDetails.hasOwnProperty(
// "filesList"
// ) &&
// props.currentView.caseReference.repDetails
// .filesList.length > 0
// ? props.currentView.caseReference
// .repDetails.filesList
// : []
// : []
}
setFilesForRepresentation={[]}
containerID={props.containerID}
filenamePrefix={props.props}
setFilesForRepresentations={
setFilesForRepresentations
}
containerID={
props.props.props.props.accountDetails
.containerID
}
filenamePrefix={props.props.formObj}
props={props.props.props}
setCurrentReference={props.setCurrentReference}
/>
</div>
</fieldset>
@@ -1214,6 +1279,7 @@ let Enforcement_Questionnaire = (props) => {
label={t(
"myrepresentations:enf-section-question-onbehalf"
)}
disabled={true}
validate={[required]}
/>
</div>
@@ -1223,9 +1289,9 @@ let Enforcement_Questionnaire = (props) => {
label={t("myrepresentations:enf-section-question-date")}
component={RenderDatePicker}
validate={[required]}
errorMsg="Select a date"
errorMsg={t("myrepresentations:select-a-date-label")}
dateStart="0"
dateEnd="1-y"
dateEnd="0"
/>
</fieldset>
)}
@@ -1247,6 +1313,17 @@ Enforcement_Questionnaire = connect((state) => {
};
})(Enforcement_Questionnaire);
const mapDispatchToProps = (dispatch) => {
return {
updateField: (form, field, newValue) =>
dispatch(change(form, field, newValue)),
setFilesForRepresentations: (fileList) => {
dispatch(setFilesForRepresentations(fileList));
},
};
};
const mapStateToProps = (state, props) => {
return {
search: state.search,
@@ -1259,10 +1336,13 @@ const mapStateToProps = (state, props) => {
};
};
export default connect(mapStateToProps)(
export default connect(
mapStateToProps,
mapDispatchToProps
)(
reduxForm({
form: "representationForm",
enableReinitialize: true,
enableReinitialize: false,
destroyOnUnmount: false,
})(Enforcement_Questionnaire)
);
@@ -14,6 +14,11 @@ import {
RenderRichMultiline,
RenderTextfield,
} from "../representationElements";
import {
setRepresentationCapacity,
setRepresentationSubmit,
setFilesForRepresentations,
} from "../../../../store/currentView/action";
import { connect } from "react-redux";
@@ -33,6 +38,7 @@ let S78_Questionnaire = (props) => {
procedureTypeValue,
onBehalfOfLPA,
showQuestionnaireSection,
setFilesForRepresentations,
} = props;
const { acceptedFiles, getRootProps, getInputProps } = useDropzone();
const files = acceptedFiles.map((file) => (
@@ -54,12 +60,14 @@ let S78_Questionnaire = (props) => {
var detailsObj = {};
detailsObj = jsonpath(
'$..[?(@.pinswg_name=="' +
detailsObj = jsonpath({
path:
'$..[?(@ && @.pinswg_name=="' +
currentView.caseReference.currentReference +
'")]',
setCaseDetailsObj
);
json: setCaseDetailsObj,
eval: true,
});
let setCaseResultssObj = router.query.hasOwnProperty("state")
? router.query.state == "edit"
@@ -75,8 +83,9 @@ let S78_Questionnaire = (props) => {
var resultsObj = {};
resultsObj = jsonpath(
"$..[?(@." +
resultsObj = jsonpath({
path:
"$..[?(@ && @." +
(router.query.hasOwnProperty("state")
? router.query.state == "edit"
? "caseRef"
@@ -85,11 +94,12 @@ let S78_Questionnaire = (props) => {
'=="' +
currentView.caseReference.currentReference +
'")]',
setCaseResultssObj
);
json: setCaseResultssObj,
eval: true,
});
resultsObj = resultsObj[0];
console.log(resultsObj);
//console.log(resultsObj);
const onHandleSubmit = (values) => {
//if (currentSection == sectionCount) {
@@ -109,28 +119,35 @@ let S78_Questionnaire = (props) => {
className="govuk-fieldset"
aria-describedby="commentBox-hint"
>
<p className="govuk-body">
{t("myrepresentations:questionnaire-hint-para")}
</p>
<h2 className="govuk-heading-s ">
{t("myrepresentations:s78-section-heading-one")}{" "}
</h2>
<div className="govuk-form-group">
<div className="govuk-label">
1. {t("myrepresentations:s78-section-question-1")}{" "}
1. {t("myrepresentations:s78-section-question-1")}:{" "}
{currentView.caseReference.currentReference}
</div>
</div>
<div className="govuk-form-group">
<div className="govuk-label">
2. {t("myrepresentations:s78-section-question-2")}{" "}
2. {t("myrepresentations:s78-section-question-2")}:{" "}
{resultsObj.pinswg_lpareference}
</div>
</div>
<div className="govuk-form-group">
<div className="govuk-label">
3. {t("myrepresentations:s78-section-question-3")}{" "}
3. {t("myrepresentations:s78-section-question-3")}:{" "}
{detailsObj.pinswg_siteaddressline1 +
" " +
detailsObj.pinswg_siteaddressline2 +
" " +
(detailsObj.pinswg_siteaddressline2 != null
? " " +
detailsObj.pinswg_siteaddressline2 +
" "
: " ") +
detailsObj.pinswg_siteaddresstown +
" " +
detailsObj.pinswg_siteaddresspostcode}
@@ -138,7 +155,7 @@ let S78_Questionnaire = (props) => {
</div>
<div className="govuk-form-group">
<div className="govuk-label">
4. {t("myrepresentations:s78-section-question-4")}{" "}
4. {t("myrepresentations:s78-section-question-4")}:{" "}
{
getFormCollectionByID(
currentView.caseReference.appealType
@@ -395,6 +412,7 @@ let S78_Questionnaire = (props) => {
className="govuk-textarea govuk-input--width-30"
aria-describedby={props.name + "-hint"}
validate={[required]}
errorMsg={t("myrepresentations:select-an-option-label")}
/>
</fieldset>
)}
@@ -423,6 +441,7 @@ let S78_Questionnaire = (props) => {
className="govuk-textarea govuk-input--width-30"
aria-describedby={props.name + "-hint"}
validate={[required]}
errorMsg={t("myrepresentations:select-an-option-label")}
/>
<div className="govuk-form-group">
@@ -647,7 +666,10 @@ let S78_Questionnaire = (props) => {
</div>
<Field
label={t("myrepresentations:s78-section-question-24a")}
label={
"a) " +
t("myrepresentations:s78-section-question-24a")
}
name="developmentNotBeginLaterThanFiveYears"
id="developmentNotBeginLaterThanFiveYears"
component={RenderRadioList}
@@ -660,6 +682,7 @@ let S78_Questionnaire = (props) => {
className="govuk-textarea govuk-input--width-30"
aria-describedby={props.name + "-hint"}
validate={[required]}
errorMsg={t("myrepresentations:select-an-option-label")}
/>
<div className="govuk-form-group">
@@ -677,9 +700,10 @@ let S78_Questionnaire = (props) => {
)}
component={RenderLPACondtionalRadioList}
validate={[required]}
legend={t(
"myrepresentations:s78-section-question-24b"
)}
legend={
"b) " +
t("myrepresentations:s78-section-question-24b")
}
conditionalLabel={t(
"myrepresentations:s78-section-question-24b-hint"
)}
@@ -689,7 +713,10 @@ let S78_Questionnaire = (props) => {
/>
</div>
<Field
label={t("myrepresentations:s78-section-question-24c")}
label={
"c) " +
t("myrepresentations:s78-section-question-24c")
}
name="developmentNotTakePlaceBiodiversity"
id="developmentNotTakePlaceBiodiversity"
component={RenderRadioList}
@@ -702,9 +729,13 @@ let S78_Questionnaire = (props) => {
className="govuk-textarea govuk-input--width-30"
aria-describedby={props.name + "-hint"}
validate={[required]}
errorMsg={t("myrepresentations:select-an-option-label")}
/>
<Field
label={t("myrepresentations:s78-section-question-24d")}
label={
"d) " +
t("myrepresentations:s78-section-question-24d")
}
name="developmentNotTakePlaceBroadband"
id="developmentNotTakePlaceBroadband"
component={RenderRadioList}
@@ -717,6 +748,7 @@ let S78_Questionnaire = (props) => {
className="govuk-textarea govuk-input--width-30"
aria-describedby={props.name + "-hint"}
validate={[required]}
errorMsg={t("myrepresentations:select-an-option-label")}
/>
<div className="govuk-form-group">
@@ -754,9 +786,11 @@ let S78_Questionnaire = (props) => {
aria-describedby="commentBox-hint"
>
<h2 className="govuk-heading-s ">
{t("myrepresentations:s78-section-heading-five")}
{t("myrepresentations:s78-section-heading-five-sub")}
</h2>
<p className="govuk-body">
{t("myrepresentations:s78-section-heading-five")}
</p>
<div className="govuk-form-group">
<Field
name="copyOfApplicantsCertificate"
@@ -772,9 +806,11 @@ let S78_Questionnaire = (props) => {
)}
component={RenderLPACondtionalRadioList}
validate={[required]}
legend={t(
"myrepresentations:s78-section-question-26"
)}
legend={
"26. " +
t("myrepresentations:s78-section-question-26")
}
hint={t("myrepresentations:s78-footnote-one")}
conditionalLabel={t(
"myrepresentations:s78-section-question-26-hint"
)}
@@ -798,9 +834,11 @@ let S78_Questionnaire = (props) => {
)}
component={RenderLPACondtionalRadioList}
validate={[required]}
legend={t(
"myrepresentations:s78-section-question-27"
)}
legend={
"27. " +
t("myrepresentations:s78-section-question-27")
}
hint={t("myrepresentations:s78-footnote-two")}
conditionalLabel={t(
"myrepresentations:s78-section-question-27-hint"
)}
@@ -824,9 +862,10 @@ let S78_Questionnaire = (props) => {
)}
component={RenderLPACondtionalRadioList}
validate={[required]}
legend={t(
"myrepresentations:s78-section-question-28"
)}
legend={
"28. " +
t("myrepresentations:s78-section-question-28")
}
conditionalLabel={t(
"myrepresentations:s78-section-question-28-hint"
)}
@@ -850,9 +889,10 @@ let S78_Questionnaire = (props) => {
)}
component={RenderLPACondtionalRadioList}
validate={[required]}
legend={t(
"myrepresentations:s78-section-question-29"
)}
legend={
"29. " +
t("myrepresentations:s78-section-question-29")
}
conditionalLabel={t(
"myrepresentations:s78-section-question-29-hint"
)}
@@ -876,9 +916,10 @@ let S78_Questionnaire = (props) => {
)}
component={RenderLPACondtionalRadioList}
validate={[required]}
legend={t(
"myrepresentations:s78-section-question-30"
)}
legend={
"30. " +
t("myrepresentations:s78-section-question-30")
}
conditionalLabel={t(
"myrepresentations:s78-section-question-30-hint"
)}
@@ -902,9 +943,10 @@ let S78_Questionnaire = (props) => {
)}
component={RenderLPACondtionalRadioList}
validate={[required]}
legend={t(
"myrepresentations:s78-section-question-31"
)}
legend={
"31. " +
t("myrepresentations:s78-section-question-31")
}
conditionalLabel={t(
"myrepresentations:s78-section-question-31-hint"
)}
@@ -928,9 +970,10 @@ let S78_Questionnaire = (props) => {
)}
component={RenderLPACondtionalRadioList}
validate={[required]}
legend={t(
"myrepresentations:s78-section-question-32"
)}
legend={
"32. " +
t("myrepresentations:s78-section-question-32")
}
conditionalLabel={t(
"myrepresentations:s78-section-question-32-hint"
)}
@@ -954,9 +997,10 @@ let S78_Questionnaire = (props) => {
)}
component={RenderLPACondtionalRadioList}
validate={[required]}
legend={t(
"myrepresentations:s78-section-question-33"
)}
legend={
"33. " +
t("myrepresentations:s78-section-question-33")
}
conditionalLabel={t(
"myrepresentations:s78-section-question-33-hint"
)}
@@ -978,16 +1022,33 @@ let S78_Questionnaire = (props) => {
name={"representationDocuments"}
id={"representationDocuments"}
label={t("myrepresentations:add-files-label")}
ticketnumber={props.props.caseReference}
ticketnumber={props.props.props.caseReference}
hint={"sdsd"}
fileList={
props.props.props.props.form[
"representationForm"
].values.filesList || []
props.currentView.fileList
// props.currentView.caseReference.hasOwnProperty(
// "repDetails"
// )
// ? props.currentView.caseReference.repDetails.hasOwnProperty(
// "filesList"
// ) &&
// props.currentView.caseReference.repDetails
// .filesList.length > 0
// ? props.currentView.caseReference
// .repDetails.filesList
// : []
// : []
}
setFilesForRepresentation={[]}
containerID={props.containerID}
filenamePrefix={props.props}
setFilesForRepresentations={
setFilesForRepresentations
}
containerID={
props.props.props.props.accountDetails
.containerID
}
filenamePrefix={props.props.formObj}
props={props.props.props}
setCurrentReference={props.setCurrentReference}
/>
</div>
</fieldset>
@@ -1010,7 +1071,7 @@ let S78_Questionnaire = (props) => {
"myrepresentations:s78-section-question-signed"
)}
validate={[required]}
errorMsg="Is required"
errorMsg={t("myrepresentations:is-required-label")}
/>
</div>
<div className="govuk-form-group">
@@ -1025,7 +1086,8 @@ let S78_Questionnaire = (props) => {
label={t(
"myrepresentations:s78-section-question-onbehalf"
)}
errorMsg="Is required"
disabled={true}
errorMsg={t("myrepresentations:is-required-label")}
/>
</div>
<Field
@@ -1035,8 +1097,8 @@ let S78_Questionnaire = (props) => {
component={RenderDatePicker}
validate={[required]}
dateStart="0"
dateEnd="1-y"
errorMsg="Is required"
dateEnd="0"
errorMsg={t("myrepresentations:select-a-date-label")}
locale={locale}
/>
</fieldset>
@@ -1059,8 +1121,18 @@ S78_Questionnaire = connect((state) => {
};
})(S78_Questionnaire);
const mapDispatchToProps = (dispatch) => {
return {
updateField: (form, field, newValue) =>
dispatch(change(form, field, newValue)),
setFilesForRepresentations: (fileList) => {
dispatch(setFilesForRepresentations(fileList));
},
};
};
const mapStateToProps = (state, props) => {
console.log();
return {
search: state.search,
searchResultsObj: state.searchResultsObj,
@@ -1072,10 +1144,13 @@ const mapStateToProps = (state, props) => {
};
};
export default connect(mapStateToProps)(
export default connect(
mapStateToProps,
mapDispatchToProps
)(
reduxForm({
form: "representationForm",
enableReinitialize: true,
enableReinitialize: false,
destroyOnUnmount: false,
})(S78_Questionnaire)
);
+12 -8
View File
@@ -57,12 +57,14 @@ const RepresentationList = (props) => {
</div>
{representationsArr.map((item, key) => {
let detailsObj = jsonpath(
"$..[?(@.pinswg_representationsid=='" +
let detailsObj = jsonpath({
path:
"$..[?(@ && @.pinswg_representationsid=='" +
incidentid +
"')]",
item
);
json: item,
eval: true,
});
detailsObj = item;
console.log(detailsObj);
@@ -87,14 +89,16 @@ const RepresentationList = (props) => {
</span>
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
detailsObj[
"pinswg_isharedocumentlocations@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
sanbox: {},
})
: detailsObj[
"pinswg_isharedocumentlocations@OData.Community.Display.V1.FormattedValue"
] ||
+1758 -896
View File
File diff suppressed because it is too large Load Diff
+81
View File
@@ -0,0 +1,81 @@
import Link from "next/link";
import { useRouter } from "next/router";
export function capitalizeFirstLetter(val) {
return String(val).charAt(0).toUpperCase() + String(val).slice(1);
}
export function formatDates(dateObj, showTime) {
const d = new Date(dateObj);
const dd = String(d.getDate()).padStart(2, "0");
const mm = String(d.getMonth() + 1).padStart(2, "0");
const yyyy = d.getFullYear();
const hh = String(d.getHours()).padStart(2, "0");
const mins = String(d.getMinutes()).padStart(2, "0");
return showTime && !(hh === "00" && mins === "00")
? `${hh}:${mins}`
: `${dd}/${mm}/${yyyy}`;
}
export function hasValidKey(obj, key) {
return obj?.hasOwnProperty(key) && obj[key] !== null && obj[key] !== "";
}
export function showReps(startDate, endDate) {
const now = new Date();
const start = new Date(startDate);
const end = new Date(endDate);
return now >= start && now <= end;
}
export function showRepsEnded(startDate, endDate) {
const now = new Date();
const start = new Date(startDate);
const end = new Date(endDate);
return now > start && now > end;
}
export function isObjectNotEmpty(obj, key) {
return obj.hasOwnProperty(key) && Object.keys(obj[key]).length > 0;
}
export function hasOwnPropertyAndNotNull(obj, property) {
return obj.hasOwnProperty(property) && obj[property] !== null;
}
export function linkedCasesList(linkedCasesReference) {
//console.log(linkedCasesReference);
const router = useRouter();
linkedCasesReference = linkedCasesReference.value || [];
return (
<>
<ul className="govuk-list govuk-!-font-size-16">
{linkedCasesReference.map((item, key) => {
return (
<li key={key}>
<Link
href={
router.locale == "cy"
? "/canlyniadauchwilio?q=" +
item.title +
"&lk=1"
: "/searchresults?q=" +
item.title +
"&lk=1"
}
className=""
>
{item.title}
</Link>
</li>
);
//console.log(item.incidentid, item.title);
})}
</ul>
</>
);
}
+26
View File
@@ -0,0 +1,26 @@
export { default as Pinswg_advertsid } from "./pinswg_advertsid";
export { default as Pinswg_callinss77id } from "./pinswg_callinss77id";
export { default as Pinswg_commonlandid } from "./pinswg_commonlandid";
export { default as Pinswg_communityinfrastructurelevyid } from "./pinswg_communityinfrastructurelevyid";
export { default as Pinswg_compulsorypurchaseordersid } from "./pinswg_compulsorypurchaseordersid";
export { default as Pinswg_dnsid } from "./pinswg_dnsid";
export { default as Pinswg_sipscase } from "./pinswg_sipscase";
export { default as Pinswg_electricityactid } from "./pinswg_electricityactid";
export { default as Pinswg_enforcementlistedbuildingconseid } from "./pinswg_enforcementlistedbuildingconseid";
export { default as Pinswg_enforcementnoticeappeals174id } from "./pinswg_enforcementnoticeappeals174id";
export { default as Pinswg_environmentalpermittingid } from "./pinswg_environmentalpermittingid";
export { default as Pinswg_harbourrevisionorderid } from "./pinswg_harbourrevisionorderid";
export { default as Pinswg_hedgeshedgerowstreepreservatioid } from "./pinswg_hedgeshedgerowstreepreservatioid";
export { default as Pinswg_householderappealhasid } from "./pinswg_householderappealhasid";
export { default as Pinswg_lawfuldevelopmentcertificatappid } from "./pinswg_lawfuldevelopmentcertificatappid";
export { default as Pinswg_ldpid } from "./pinswg_ldpid";
export { default as Pinswg_listedbuildingandconservationrid } from "./pinswg_listedbuildingandconservationrid";
export { default as Pinswg_maintenanceoflands217id } from "./pinswg_maintenanceoflands217id";
export { default as Pinswg_miscellaneouscasewordid } from "./pinswg_miscellaneouscasewordid";
export { default as Pinswg_nonvalidationid } from "./pinswg_nonvalidationid";
export { default as Pinswg_planningappeals78id } from "./pinswg_planningappeals78id";
export { default as Pinswg_planningconditionss73s79id } from "./pinswg_planningconditionss73s79id";
export { default as Pinswg_planningobligationappeals106id } from "./pinswg_planningobligationappeals106id";
export { default as Pinswg_rowid } from "./pinswg_rowid";
export { default as Pinswg_transportandworkactid } from "./pinswg_transportandworkactid";
export { default as Pinswg_wayleaveid } from "./pinswg_wayleaveid";
@@ -27,14 +27,16 @@ const Pinswg_advertsid = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
casesObj[
"pinswg_appealcasetype@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: casesObj[
"pinswg_appealcasetype@OData.Community.Display.V1.FormattedValue"
] ||
@@ -50,14 +52,16 @@ const Pinswg_advertsid = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
detailsObj[
"pinswg_speacialistcaseprocess@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: detailsObj[
"pinswg_speacialistcaseprocess@OData.Community.Display.V1.FormattedValue"
] || ""}
@@ -70,14 +74,16 @@ const Pinswg_advertsid = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
casesObj[
"_pinswg_associatedlpa_value@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: casesObj[
"_pinswg_associatedlpa_value@OData.Community.Display.V1.FormattedValue"
] || ""}
@@ -85,17 +91,24 @@ const Pinswg_advertsid = (props) => {
</div>
<div className="govuk-summary-list__row">
<dt className="govuk-summary-list__key">
{t("case:summary-case-officer-label")}
{t("case:summary-eia-required-label")}
</dt>
<dd className="govuk-summary-list__value">
{" "}
{/* {casesObj.caseDetails.caseOfficer ||
""} */}
{_.has(casesObj, "_ownerid_value")
? casesObj[
"_ownerid_value@OData.Community.Display.V1.FormattedValue"
]
: ""}
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
detailsObj[
"pinswg_detailedeiascreeningrequired@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
: detailsObj[
"pinswg_detailedeiascreeningrequired@OData.Community.Display.V1.FormattedValue"
] ||
t(
"case:summary-to-be-confirmed-label"
)}
</dd>
</div>
<div className="govuk-summary-list__row">
@@ -104,14 +117,16 @@ const Pinswg_advertsid = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
detailsObj[
"pinswg_procedure@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: detailsObj[
"pinswg_procedure@OData.Community.Display.V1.FormattedValue"
] || ""}
@@ -123,14 +138,16 @@ const Pinswg_advertsid = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
detailsObj[
"pinswg_typeofevent@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: detailsObj[
"pinswg_typeofevent@OData.Community.Display.V1.FormattedValue"
] || ""}
@@ -142,14 +159,16 @@ const Pinswg_advertsid = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
casesObj[
"statuscode@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: casesObj[
"statuscode@OData.Community.Display.V1.FormattedValue"
] ||
@@ -165,14 +184,16 @@ const Pinswg_advertsid = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
detailsObj[
"pinswg_decision@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: detailsObj[
"pinswg_decision@OData.Community.Display.V1.FormattedValue"
] ||
@@ -27,14 +27,16 @@ const Pinswg_callinss77id = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
casesObj[
"pinswg_appealcasetype@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: casesObj[
"pinswg_appealcasetype@OData.Community.Display.V1.FormattedValue"
] ||
@@ -49,14 +51,16 @@ const Pinswg_callinss77id = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
casesObj[
"_pinswg_associatedlpa_value@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: casesObj[
"_pinswg_associatedlpa_value@OData.Community.Display.V1.FormattedValue"
] || ""}
@@ -64,17 +68,24 @@ const Pinswg_callinss77id = (props) => {
</div>
<div className="govuk-summary-list__row">
<dt className="govuk-summary-list__key">
{t("case:summary-case-officer-label")}
{t("case:summary-eia-required-label")}
</dt>
<dd className="govuk-summary-list__value">
{" "}
{/* {casesObj.caseDetails.caseOfficer ||
""} */}
{_.has(casesObj, "_ownerid_value")
? casesObj[
"_ownerid_value@OData.Community.Display.V1.FormattedValue"
]
: ""}
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
detailsObj[
"pinswg_eiarequired@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
: detailsObj[
"pinswg_eiarequired@OData.Community.Display.V1.FormattedValue"
] ||
t(
"case:summary-to-be-confirmed-label"
)}
</dd>
</div>
<div className="govuk-summary-list__row">
@@ -83,14 +94,16 @@ const Pinswg_callinss77id = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
detailsObj[
"pinswg_procedure@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: detailsObj[
"pinswg_procedure@OData.Community.Display.V1.FormattedValue"
] || ""}
@@ -102,14 +115,16 @@ const Pinswg_callinss77id = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
detailsObj[
"pinswg_typeofevent@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: detailsObj[
"pinswg_typeofevent@OData.Community.Display.V1.FormattedValue"
] || ""}
@@ -121,14 +136,16 @@ const Pinswg_callinss77id = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
casesObj[
"statuscode@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: casesObj[
"statuscode@OData.Community.Display.V1.FormattedValue"
] ||
@@ -143,14 +160,16 @@ const Pinswg_callinss77id = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
detailsObj[
"pinswg_decision@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: detailsObj[
"pinswg_decision@OData.Community.Display.V1.FormattedValue"
] ||
@@ -313,13 +332,13 @@ const Pinswg_callinss77id = (props) => {
<dd className="govuk-summary-list__value">
{_.has(
detailsObj,
"pinswg_statementduedate"
"pinswg_statementsduedate"
)
? !_.isEmpty(
detailsObj.pinswg_statementduedate
detailsObj.pinswg_statementsduedate
)
? formatDates(
detailsObj.pinswg_statementduedate
detailsObj.pinswg_statementsduedate
)
: t(
"case:summary-no-date-entered-label"
@@ -27,14 +27,16 @@ const Pinswg_commonlandid = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
casesObj[
"pinswg_appealcasetype@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: casesObj[
"pinswg_appealcasetype@OData.Community.Display.V1.FormattedValue"
] ||
@@ -49,14 +51,16 @@ const Pinswg_commonlandid = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
casesObj[
"_pinswg_associatedlpa_value@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: casesObj[
"_pinswg_associatedlpa_value@OData.Community.Display.V1.FormattedValue"
] || ""}
@@ -64,17 +68,24 @@ const Pinswg_commonlandid = (props) => {
</div>
<div className="govuk-summary-list__row">
<dt className="govuk-summary-list__key">
{t("case:summary-case-officer-label")}
{t("case:summary-eia-required-label")}
</dt>
<dd className="govuk-summary-list__value">
{" "}
{/* {casesObj.caseDetails.caseOfficer ||
""} */}
{_.has(casesObj, "_ownerid_value")
? casesObj[
"_ownerid_value@OData.Community.Display.V1.FormattedValue"
]
: ""}
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
detailsObj[
"pinswg_detailedeiascreeningrequired@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
: detailsObj[
"pinswg_detailedeiascreeningrequired@OData.Community.Display.V1.FormattedValue"
] ||
t(
"case:summary-to-be-confirmed-label"
)}
</dd>
</div>
<div className="govuk-summary-list__row">
@@ -83,14 +94,16 @@ const Pinswg_commonlandid = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
detailsObj[
"pinswg_procedure@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: detailsObj[
"pinswg_procedure@OData.Community.Display.V1.FormattedValue"
] || ""}
@@ -102,14 +115,16 @@ const Pinswg_commonlandid = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
detailsObj[
"pinswg_typeofevent@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: detailsObj[
"pinswg_typeofevent@OData.Community.Display.V1.FormattedValue"
] || ""}
@@ -121,14 +136,16 @@ const Pinswg_commonlandid = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
casesObj[
"statuscode@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: casesObj[
"statuscode@OData.Community.Display.V1.FormattedValue"
] ||
@@ -143,14 +160,16 @@ const Pinswg_commonlandid = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
detailsObj[
"pinswg_decision@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: detailsObj[
"pinswg_decision@OData.Community.Display.V1.FormattedValue"
] ||
@@ -217,18 +236,22 @@ const Pinswg_commonlandid = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.pinswg_lpa=="' +
? jsonpath({
path:
'$..[?(@ && @.pinswg_lpa=="' +
detailsObj.pinswg_relevantauthorityname +
'")].value_cy',
transLookup
)
: jsonpath(
'$..[?(@.pinswg_lpa=="' +
json: transLookup,
eval: true,
})
: jsonpath({
path:
'$..[?(@ && @.pinswg_lpa=="' +
detailsObj.pinswg_relevantauthorityname +
'")].value',
transLookup
) ||
json: transLookup,
eval: true,
}) ||
t(
"case:summary-no-date-entered-label"
)}
@@ -27,14 +27,16 @@ const Pinswg_communityinfrastructurelevyid = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
casesObj[
"pinswg_appealcasetype@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: casesObj[
"pinswg_appealcasetype@OData.Community.Display.V1.FormattedValue"
] ||
@@ -49,14 +51,16 @@ const Pinswg_communityinfrastructurelevyid = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
casesObj[
"_pinswg_associatedlpa_value@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: casesObj[
"_pinswg_associatedlpa_value@OData.Community.Display.V1.FormattedValue"
] || ""}
@@ -64,17 +68,24 @@ const Pinswg_communityinfrastructurelevyid = (props) => {
</div>
<div className="govuk-summary-list__row">
<dt className="govuk-summary-list__key">
{t("case:summary-case-officer-label")}
{t("case:summary-eia-required-label")}
</dt>
<dd className="govuk-summary-list__value">
{" "}
{/* {casesObj.caseDetails.caseOfficer ||
""} */}
{_.has(casesObj, "_ownerid_value")
? casesObj[
"_ownerid_value@OData.Community.Display.V1.FormattedValue"
]
: ""}
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
detailsObj[
"pinswg_detailedeiascreeningrequired@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
: detailsObj[
"pinswg_detailedeiascreeningrequired@OData.Community.Display.V1.FormattedValue"
] ||
t(
"case:summary-to-be-confirmed-label"
)}
</dd>
</div>
<div className="govuk-summary-list__row">
@@ -83,14 +94,16 @@ const Pinswg_communityinfrastructurelevyid = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
detailsObj[
"pinswg_procedure@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: detailsObj[
"pinswg_procedure@OData.Community.Display.V1.FormattedValue"
] || ""}
@@ -102,14 +115,16 @@ const Pinswg_communityinfrastructurelevyid = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
detailsObj[
"pinswg_typeofevent@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: detailsObj[
"pinswg_typeofevent@OData.Community.Display.V1.FormattedValue"
] || ""}
@@ -121,14 +136,16 @@ const Pinswg_communityinfrastructurelevyid = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
casesObj[
"statuscode@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: casesObj[
"statuscode@OData.Community.Display.V1.FormattedValue"
] ||
@@ -143,14 +160,16 @@ const Pinswg_communityinfrastructurelevyid = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
detailsObj[
"pinswg_decision@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: detailsObj[
"pinswg_decision@OData.Community.Display.V1.FormattedValue"
] ||
@@ -27,14 +27,16 @@ const Pinswg_compulsorypurchaseordersid = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
casesObj[
"pinswg_appealcasetype@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: casesObj[
"pinswg_appealcasetype@OData.Community.Display.V1.FormattedValue"
] ||
@@ -46,17 +48,24 @@ const Pinswg_compulsorypurchaseordersid = (props) => {
<div className="govuk-summary-list__row">
<dt className="govuk-summary-list__key">
{t("case:summary-case-officer-label")}
{t("case:summary-eia-required-label")}
</dt>
<dd className="govuk-summary-list__value">
{" "}
{/* {casesObj.caseDetails.caseOfficer ||
""} */}
{_.has(casesObj, "_ownerid_value")
? casesObj[
"_ownerid_value@OData.Community.Display.V1.FormattedValue"
]
: ""}
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
detailsObj[
"pinswg_detailedeiascreening@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
: detailsObj[
"pinswg_detailedeiascreening@OData.Community.Display.V1.FormattedValue"
] ||
t(
"case:summary-to-be-confirmed-label"
)}
</dd>
</div>
<div className="govuk-summary-list__row">
@@ -65,14 +74,16 @@ const Pinswg_compulsorypurchaseordersid = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
detailsObj[
"pinswg_procedure@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: detailsObj[
"pinswg_procedure@OData.Community.Display.V1.FormattedValue"
] || ""}
@@ -84,14 +95,16 @@ const Pinswg_compulsorypurchaseordersid = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
detailsObj[
"pinswg_typeofevent@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: detailsObj[
"pinswg_typeofevent@OData.Community.Display.V1.FormattedValue"
] || ""}
@@ -103,14 +116,16 @@ const Pinswg_compulsorypurchaseordersid = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
casesObj[
"statuscode@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: casesObj[
"statuscode@OData.Community.Display.V1.FormattedValue"
] ||
@@ -125,14 +140,16 @@ const Pinswg_compulsorypurchaseordersid = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
detailsObj[
"pinswg_decision@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: detailsObj[
"pinswg_decision@OData.Community.Display.V1.FormattedValue"
] ||
@@ -199,18 +216,22 @@ const Pinswg_compulsorypurchaseordersid = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.pinswg_lpa=="' +
? jsonpath({
path:
'$..[?(@ && @.pinswg_lpa=="' +
detailsObj.pinswg_relevantauthorityname +
'")].value_cy',
transLookup
)
: jsonpath(
'$..[?(@.pinswg_lpa=="' +
json: transLookup,
eval: true,
})
: jsonpath({
path:
'$..[?(@ && @.pinswg_lpa=="' +
detailsObj.pinswg_relevantauthorityname +
'")].value',
transLookup
) ||
json: transLookup,
eval: true,
}) ||
t(
"case:summary-no-date-entered-label"
)}
+65 -28
View File
@@ -122,14 +122,17 @@ const Pinswg_dnsid = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
casesObj[
"pinswg_appealcasetype@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: casesObj[
"pinswg_appealcasetype@OData.Community.Display.V1.FormattedValue"
] ||
@@ -148,12 +151,14 @@ const Pinswg_dnsid = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
detailsObj.pinswg_webaddress +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: (
<a
target="_blank"
@@ -184,33 +189,61 @@ const Pinswg_dnsid = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
casesObj[
"_pinswg_associatedlpa_value@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: casesObj[
"_pinswg_associatedlpa_value@OData.Community.Display.V1.FormattedValue"
] || ""}
</dd>
</div>
<div className="govuk-summary-list__row">
<dt className="govuk-summary-list__key">
{t(
"case:summary-eia-required-label"
)}
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
detailsObj[
"pinswg_eiarequired@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
: detailsObj[
"pinswg_eiarequired@OData.Community.Display.V1.FormattedValue"
] ||
t(
"case:summary-to-be-confirmed-label"
)}
</dd>
</div>
<div className="govuk-summary-list__row">
<dt className="govuk-summary-list__key">
{t("case:summary-procedure-label")}
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
detailsObj[
"pinswg_choiceofprocedure@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: detailsObj[
"pinswg_choiceofprocedure@OData.Community.Display.V1.FormattedValue"
] ||
@@ -225,9 +258,9 @@ const Pinswg_dnsid = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
? jsonpath({path:
'$..[?(@.value=="' +
'$..[?(@ && @.value=="' +
casesObj[
"statuscode@OData.Community.Display.V1.FormattedValue"
] +
@@ -264,14 +297,16 @@ const Pinswg_dnsid = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
detailsObj[
"pinswg_typeofevent@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: detailsObj[
"pinswg_typeofevent@OData.Community.Display.V1.FormattedValue"
] || ""}
@@ -331,14 +366,16 @@ const Pinswg_dnsid = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
detailsObj[
"pinswg_decision@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: detailsObj[
"pinswg_decision@OData.Community.Display.V1.FormattedValue"
] ||
@@ -430,8 +467,8 @@ const Pinswg_dnsid = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({path:
'$..[?(@ && @.value=="' +
detailsObj.pinswg_recommendation +
'")].value_cy',
transLookup,
@@ -65,14 +65,16 @@ const Pinswg_electricityactid = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
casesObj[
"pinswg_appealcasetype@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: casesObj[
"pinswg_appealcasetype@OData.Community.Display.V1.FormattedValue"
] ||
@@ -87,19 +89,45 @@ const Pinswg_electricityactid = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
casesObj[
"_pinswg_associatedlpa_value@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: casesObj[
"_pinswg_associatedlpa_value@OData.Community.Display.V1.FormattedValue"
] || ""}
</dd>
</div>
<div className="govuk-summary-list__row">
<dt className="govuk-summary-list__key">
{t(
"case:summary-eia-required-label"
)}
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
detailsObj[
"pinswg_eiarequired@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
: detailsObj[
"pinswg_eiarequired@OData.Community.Display.V1.FormattedValue"
] ||
t(
"case:summary-to-be-confirmed-label"
)}
</dd>
</div>
<div className="govuk-summary-list__row">
<dt className="govuk-summary-list__key">
{t(
@@ -123,14 +151,16 @@ const Pinswg_electricityactid = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
detailsObj[
"pinswg_procedure@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: detailsObj[
"pinswg_procedure@OData.Community.Display.V1.FormattedValue"
] || ""}
@@ -144,14 +174,16 @@ const Pinswg_electricityactid = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
detailsObj[
"pinswg_typeofevent@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: detailsObj[
"pinswg_typeofevent@OData.Community.Display.V1.FormattedValue"
] || ""}
@@ -163,14 +195,16 @@ const Pinswg_electricityactid = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
casesObj[
"statuscode@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: casesObj[
"statuscode@OData.Community.Display.V1.FormattedValue"
] ||
@@ -185,14 +219,16 @@ const Pinswg_electricityactid = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
detailsObj[
"pinswg_decision@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: detailsObj[
"pinswg_decision@OData.Community.Display.V1.FormattedValue"
] ||
@@ -259,12 +295,14 @@ const Pinswg_electricityactid = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
detailsObj.pinswg_recommendation +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: detailsObj.pinswg_recommendation ||
t(
"case:summary-no-date-entered-label"
@@ -280,12 +318,14 @@ const Pinswg_electricityactid = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
detailsObj.pinswg_webaddress +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: detailsObj.pinswg_webaddress ||
t(
"case:summary-no-date-entered-label"
@@ -27,14 +27,16 @@ const Pinswg_enforcementlistedbuildingconseid = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
casesObj[
"pinswg_appealcasetype@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: casesObj[
"pinswg_appealcasetype@OData.Community.Display.V1.FormattedValue"
] ||
@@ -49,14 +51,16 @@ const Pinswg_enforcementlistedbuildingconseid = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
casesObj[
"_pinswg_associatedlpa_value@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: casesObj[
"_pinswg_associatedlpa_value@OData.Community.Display.V1.FormattedValue"
] || ""}
@@ -64,17 +68,24 @@ const Pinswg_enforcementlistedbuildingconseid = (props) => {
</div>
<div className="govuk-summary-list__row">
<dt className="govuk-summary-list__key">
{t("case:summary-case-officer-label")}
{t("case:summary-eia-required-label")}
</dt>
<dd className="govuk-summary-list__value">
{" "}
{/* {casesObj.caseDetails.caseOfficer ||
""} */}
{_.has(casesObj, "_ownerid_value")
? casesObj[
"_ownerid_value@OData.Community.Display.V1.FormattedValue"
]
: ""}
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
detailsObj[
"pinswg_detailedeiascreeningrequired@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
: detailsObj[
"pinswg_detailedeiascreeningrequired@OData.Community.Display.V1.FormattedValue"
] ||
t(
"case:summary-to-be-confirmed-label"
)}
</dd>
</div>
<div className="govuk-summary-list__row">
@@ -83,14 +94,16 @@ const Pinswg_enforcementlistedbuildingconseid = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
detailsObj[
"pinswg_procedure@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: detailsObj[
"pinswg_procedure@OData.Community.Display.V1.FormattedValue"
] || ""}
@@ -102,14 +115,16 @@ const Pinswg_enforcementlistedbuildingconseid = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
detailsObj[
"pinswg_typeofevent@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: detailsObj[
"pinswg_typeofevent@OData.Community.Display.V1.FormattedValue"
] || ""}
@@ -121,14 +136,16 @@ const Pinswg_enforcementlistedbuildingconseid = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
casesObj[
"statuscode@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: casesObj[
"statuscode@OData.Community.Display.V1.FormattedValue"
] ||
@@ -143,14 +160,16 @@ const Pinswg_enforcementlistedbuildingconseid = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
detailsObj[
"pinswg_decision@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: detailsObj[
"pinswg_decision@OData.Community.Display.V1.FormattedValue"
] ||
@@ -27,14 +27,16 @@ const Pinswg_enforcementnoticeappeals174id = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
casesObj[
"pinswg_appealcasetype@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: casesObj[
"pinswg_appealcasetype@OData.Community.Display.V1.FormattedValue"
] ||
@@ -49,14 +51,16 @@ const Pinswg_enforcementnoticeappeals174id = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
casesObj[
"_pinswg_associatedlpa_value@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: casesObj[
"_pinswg_associatedlpa_value@OData.Community.Display.V1.FormattedValue"
] || ""}
@@ -64,17 +68,24 @@ const Pinswg_enforcementnoticeappeals174id = (props) => {
</div>
<div className="govuk-summary-list__row">
<dt className="govuk-summary-list__key">
{t("case:summary-case-officer-label")}
{t("case:summary-eia-required-label")}
</dt>
<dd className="govuk-summary-list__value">
{" "}
{/* {casesObj.caseDetails.caseOfficer ||
""} */}
{_.has(casesObj, "_ownerid_value")
? casesObj[
"_ownerid_value@OData.Community.Display.V1.FormattedValue"
]
: ""}
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
detailsObj[
"pinswg_eiarequired@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
: detailsObj[
"pinswg_eiarequired@OData.Community.Display.V1.FormattedValue"
] ||
t(
"case:summary-to-be-confirmed-label"
)}
</dd>
</div>
<div className="govuk-summary-list__row">
@@ -83,14 +94,16 @@ const Pinswg_enforcementnoticeappeals174id = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
detailsObj[
"pinswg_procedure@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: detailsObj[
"pinswg_procedure@OData.Community.Display.V1.FormattedValue"
] || ""}
@@ -102,14 +115,16 @@ const Pinswg_enforcementnoticeappeals174id = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
detailsObj[
"pinswg_typeofevent@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: detailsObj[
"pinswg_typeofevent@OData.Community.Display.V1.FormattedValue"
] || ""}
@@ -121,14 +136,16 @@ const Pinswg_enforcementnoticeappeals174id = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
casesObj[
"statuscode@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: casesObj[
"statuscode@OData.Community.Display.V1.FormattedValue"
] ||
@@ -143,14 +160,16 @@ const Pinswg_enforcementnoticeappeals174id = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
detailsObj[
"pinswg_decision@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: detailsObj[
"pinswg_decision@OData.Community.Display.V1.FormattedValue"
] ||
@@ -27,14 +27,16 @@ const Pinswg_environmentalpermittingid = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
casesObj[
"pinswg_appealcasetype@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: casesObj[
"pinswg_appealcasetype@OData.Community.Display.V1.FormattedValue"
] ||
@@ -49,14 +51,16 @@ const Pinswg_environmentalpermittingid = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
casesObj[
"_pinswg_associatedlpa_value@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: casesObj[
"_pinswg_associatedlpa_value@OData.Community.Display.V1.FormattedValue"
] || ""}
@@ -64,17 +68,24 @@ const Pinswg_environmentalpermittingid = (props) => {
</div>
<div className="govuk-summary-list__row">
<dt className="govuk-summary-list__key">
{t("case:summary-case-officer-label")}
{t("case:summary-eia-required-label")}
</dt>
<dd className="govuk-summary-list__value">
{" "}
{/* {casesObj.caseDetails.caseOfficer ||
""} */}
{_.has(casesObj, "_ownerid_value")
? casesObj[
"_ownerid_value@OData.Community.Display.V1.FormattedValue"
]
: ""}
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
detailsObj[
"pinswg_eiarequired@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
: detailsObj[
"pinswg_eiarequired@OData.Community.Display.V1.FormattedValue"
] ||
t(
"case:summary-to-be-confirmed-label"
)}
</dd>
</div>
<div className="govuk-summary-list__row">
@@ -83,14 +94,16 @@ const Pinswg_environmentalpermittingid = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
detailsObj[
"pinswg_procedure@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: detailsObj[
"pinswg_procedure@OData.Community.Display.V1.FormattedValue"
] || ""}
@@ -102,14 +115,16 @@ const Pinswg_environmentalpermittingid = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
detailsObj[
"pinswg_typeofevent@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: detailsObj[
"pinswg_typeofevent@OData.Community.Display.V1.FormattedValue"
] || ""}
@@ -121,14 +136,16 @@ const Pinswg_environmentalpermittingid = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
casesObj[
"statuscode@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: casesObj[
"statuscode@OData.Community.Display.V1.FormattedValue"
] ||
@@ -143,14 +160,16 @@ const Pinswg_environmentalpermittingid = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
detailsObj[
"pinswg_decision@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: detailsObj[
"pinswg_decision@OData.Community.Display.V1.FormattedValue"
] ||
@@ -217,18 +236,22 @@ const Pinswg_environmentalpermittingid = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.pinswg_lpa=="' +
? jsonpath({
path:
'$..[?(@ && @.pinswg_lpa=="' +
detailsObj.pinswg_relevantauthorityname +
'")].value_cy',
transLookup
)
: jsonpath(
'$..[?(@.pinswg_lpa=="' +
json: transLookup,
eval: true,
})
: jsonpath({
path:
'$..[?(@ && @.pinswg_lpa=="' +
detailsObj.pinswg_relevantauthorityname +
'")].value',
transLookup
) ||
json: transLookup,
eval: true,
}) ||
t(
"case:summary-no-date-entered-label"
)}
@@ -65,14 +65,16 @@ const Pinswg_harbourrevisionorderid = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
casesObj[
"pinswg_appealcasetype@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: casesObj[
"pinswg_appealcasetype@OData.Community.Display.V1.FormattedValue"
] ||
@@ -87,19 +89,45 @@ const Pinswg_harbourrevisionorderid = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
casesObj[
"_pinswg_associatedlpa_value@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: casesObj[
"_pinswg_associatedlpa_value@OData.Community.Display.V1.FormattedValue"
] || ""}
</dd>
</div>
<div className="govuk-summary-list__row">
<dt className="govuk-summary-list__key">
{t(
"case:summary-eia-required-label"
)}
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
detailsObj[
"pinswg_eiarequired@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
: detailsObj[
"pinswg_eiarequired@OData.Community.Display.V1.FormattedValue"
] ||
t(
"case:summary-to-be-confirmed-label"
)}
</dd>
</div>
<div className="govuk-summary-list__row">
<dt className="govuk-summary-list__key">
{t(
@@ -123,14 +151,16 @@ const Pinswg_harbourrevisionorderid = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
detailsObj[
"pinswg_procedure@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: detailsObj[
"pinswg_procedure@OData.Community.Display.V1.FormattedValue"
] || ""}
@@ -142,14 +172,16 @@ const Pinswg_harbourrevisionorderid = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
casesObj[
"statuscode@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: casesObj[
"statuscode@OData.Community.Display.V1.FormattedValue"
] ||
@@ -164,14 +196,16 @@ const Pinswg_harbourrevisionorderid = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
detailsObj[
"pinswg_decision@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: detailsObj[
"pinswg_decision@OData.Community.Display.V1.FormattedValue"
] ||
@@ -238,12 +272,14 @@ const Pinswg_harbourrevisionorderid = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
detailsObj.pinswg_recommendation +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: detailsObj.pinswg_recommendation ||
t(
"case:summary-no-date-entered-label"
@@ -259,12 +295,14 @@ const Pinswg_harbourrevisionorderid = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
detailsObj.pinswg_webaddress +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: detailsObj.pinswg_webaddress ||
t(
"case:summary-no-date-entered-label"
@@ -27,14 +27,16 @@ const Pinswg_hedgeshedgerowstreepreservatioid = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
casesObj[
"pinswg_appealcasetype@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: casesObj[
"pinswg_appealcasetype@OData.Community.Display.V1.FormattedValue"
] ||
@@ -50,14 +52,16 @@ const Pinswg_hedgeshedgerowstreepreservatioid = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
detailsObj[
"pinswg_specialistcaseprocess@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: detailsObj[
"pinswg_specialistcaseprocess@OData.Community.Display.V1.FormattedValue"
] || ""}
@@ -70,14 +74,16 @@ const Pinswg_hedgeshedgerowstreepreservatioid = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
casesObj[
"_pinswg_associatedlpa_value@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: casesObj[
"_pinswg_associatedlpa_value@OData.Community.Display.V1.FormattedValue"
] || ""}
@@ -85,17 +91,24 @@ const Pinswg_hedgeshedgerowstreepreservatioid = (props) => {
</div>
<div className="govuk-summary-list__row">
<dt className="govuk-summary-list__key">
{t("case:summary-case-officer-label")}
{t("case:summary-eia-required-label")}
</dt>
<dd className="govuk-summary-list__value">
{" "}
{/* {casesObj.caseDetails.caseOfficer ||
""} */}
{_.has(casesObj, "_ownerid_value")
? casesObj[
"_ownerid_value@OData.Community.Display.V1.FormattedValue"
]
: ""}
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
detailsObj[
"pinswg_detailedeiascreening@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
: detailsObj[
"pinswg_detailedeiascreening@OData.Community.Display.V1.FormattedValue"
] ||
t(
"case:summary-to-be-confirmed-label"
)}
</dd>
</div>
<div className="govuk-summary-list__row">
@@ -104,14 +117,16 @@ const Pinswg_hedgeshedgerowstreepreservatioid = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
detailsObj[
"pinswg_procedure@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: detailsObj[
"pinswg_procedure@OData.Community.Display.V1.FormattedValue"
] || ""}
@@ -123,14 +138,16 @@ const Pinswg_hedgeshedgerowstreepreservatioid = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
detailsObj[
"pinswg_typeofevent@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: detailsObj[
"pinswg_typeofevent@OData.Community.Display.V1.FormattedValue"
] || ""}
@@ -142,14 +159,16 @@ const Pinswg_hedgeshedgerowstreepreservatioid = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
casesObj[
"statuscode@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: casesObj[
"statuscode@OData.Community.Display.V1.FormattedValue"
] ||
@@ -164,14 +183,16 @@ const Pinswg_hedgeshedgerowstreepreservatioid = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
detailsObj[
"pinswg_decision@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: detailsObj[
"pinswg_decision@OData.Community.Display.V1.FormattedValue"
] ||
@@ -238,18 +259,22 @@ const Pinswg_hedgeshedgerowstreepreservatioid = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.pinswg_lpa=="' +
? jsonpath({
path:
'$..[?(@ && @.pinswg_lpa=="' +
detailsObj.pinswg_relevantauthorityname +
'")].value_cy',
transLookup
)
: jsonpath(
'$..[?(@.pinswg_lpa=="' +
json: transLookup,
eval: true,
})
: jsonpath({
path:
'$..[?(@ && @.pinswg_lpa=="' +
detailsObj.pinswg_relevantauthorityname +
'")].value',
transLookup
) ||
json: transLookup,
eval: true,
}) ||
t(
"case:summary-no-date-entered-label"
)}
@@ -27,14 +27,16 @@ const Pinswg_householderappealhasid = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
casesObj[
"pinswg_appealcasetype@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: casesObj[
"pinswg_appealcasetype@OData.Community.Display.V1.FormattedValue"
] ||
@@ -49,14 +51,16 @@ const Pinswg_householderappealhasid = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
casesObj[
"_pinswg_associatedlpa_value@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: casesObj[
"_pinswg_associatedlpa_value@OData.Community.Display.V1.FormattedValue"
] || ""}
@@ -64,17 +68,24 @@ const Pinswg_householderappealhasid = (props) => {
</div>
<div className="govuk-summary-list__row">
<dt className="govuk-summary-list__key">
{t("case:summary-case-officer-label")}
{t("case:summary-eia-required-label")}
</dt>
<dd className="govuk-summary-list__value">
{" "}
{/* {casesObj.caseDetails.caseOfficer ||
""} */}
{_.has(casesObj, "_ownerid_value")
? casesObj[
"_ownerid_value@OData.Community.Display.V1.FormattedValue"
]
: ""}
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
detailsObj[
"pinswg_eiarequired@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
: detailsObj[
"pinswg_eiarequired@OData.Community.Display.V1.FormattedValue"
] ||
t(
"case:summary-to-be-confirmed-label"
)}
</dd>
</div>
<div className="govuk-summary-list__row">
@@ -83,14 +94,16 @@ const Pinswg_householderappealhasid = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
detailsObj[
"pinswg_procedure@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: detailsObj[
"pinswg_procedure@OData.Community.Display.V1.FormattedValue"
] || ""}
@@ -102,14 +115,16 @@ const Pinswg_householderappealhasid = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
casesObj[
"statuscode@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: casesObj[
"statuscode@OData.Community.Display.V1.FormattedValue"
] ||
@@ -124,14 +139,16 @@ const Pinswg_householderappealhasid = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
detailsObj[
"pinswg_decision@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: detailsObj[
"pinswg_decision@OData.Community.Display.V1.FormattedValue"
] ||
@@ -27,14 +27,16 @@ const Pinswg_lawfuldevelopmentcertificatappid = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
casesObj[
"pinswg_appealcasetype@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: casesObj[
"pinswg_appealcasetype@OData.Community.Display.V1.FormattedValue"
] ||
@@ -49,14 +51,16 @@ const Pinswg_lawfuldevelopmentcertificatappid = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
casesObj[
"_pinswg_associatedlpa_value@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: casesObj[
"_pinswg_associatedlpa_value@OData.Community.Display.V1.FormattedValue"
] || ""}
@@ -64,17 +68,24 @@ const Pinswg_lawfuldevelopmentcertificatappid = (props) => {
</div>
<div className="govuk-summary-list__row">
<dt className="govuk-summary-list__key">
{t("case:summary-case-officer-label")}
{t("case:summary-eia-required-label")}
</dt>
<dd className="govuk-summary-list__value">
{" "}
{/* {casesObj.caseDetails.caseOfficer ||
""} */}
{_.has(casesObj, "_ownerid_value")
? casesObj[
"_ownerid_value@OData.Community.Display.V1.FormattedValue"
]
: ""}
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
detailsObj[
"pinswg_detailedeiascreeningrequiered@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
: detailsObj[
"pinswg_detailedeiascreeningrequiered@OData.Community.Display.V1.FormattedValue"
] ||
t(
"case:summary-to-be-confirmed-label"
)}
</dd>
</div>
<div className="govuk-summary-list__row">
@@ -83,14 +94,16 @@ const Pinswg_lawfuldevelopmentcertificatappid = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
detailsObj[
"pinswg_procedure@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: detailsObj[
"pinswg_procedure@OData.Community.Display.V1.FormattedValue"
] || ""}
@@ -102,14 +115,16 @@ const Pinswg_lawfuldevelopmentcertificatappid = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
detailsObj[
"pinswg_typeofevent@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: detailsObj[
"pinswg_typeofevent@OData.Community.Display.V1.FormattedValue"
] || ""}
@@ -121,14 +136,16 @@ const Pinswg_lawfuldevelopmentcertificatappid = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
casesObj[
"statuscode@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: casesObj[
"statuscode@OData.Community.Display.V1.FormattedValue"
] ||
@@ -143,14 +160,16 @@ const Pinswg_lawfuldevelopmentcertificatappid = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
detailsObj[
"pinswg_decision@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: detailsObj[
"pinswg_decision@OData.Community.Display.V1.FormattedValue"
] ||
+37 -39
View File
@@ -27,14 +27,16 @@ const Pinswg_ldpid = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
casesObj[
"pinswg_appealcasetype@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: casesObj[
"pinswg_appealcasetype@OData.Community.Display.V1.FormattedValue"
] ||
@@ -49,48 +51,38 @@ const Pinswg_ldpid = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
casesObj[
"_pinswg_associatedlpa_value@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: casesObj[
"_pinswg_associatedlpa_value@OData.Community.Display.V1.FormattedValue"
] || ""}
</dd>
</div>
<div className="govuk-summary-list__row">
<dt className="govuk-summary-list__key">
{t("case:summary-case-officer-label")}
</dt>
<dd className="govuk-summary-list__value">
{" "}
{/* {casesObj.caseDetails.caseOfficer ||
""} */}
{_.has(casesObj, "_ownerid_value")
? casesObj[
"_ownerid_value@OData.Community.Display.V1.FormattedValue"
]
: ""}
</dd>
</div>
<div className="govuk-summary-list__row">
<dt className="govuk-summary-list__key">
{t("case:summary-procedure-label")}
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
detailsObj[
"pinswg_procedure@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: detailsObj[
"pinswg_procedure@OData.Community.Display.V1.FormattedValue"
] || ""}
@@ -102,14 +94,16 @@ const Pinswg_ldpid = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
detailsObj[
"pinswg_typeofevent@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: detailsObj[
"pinswg_typeofevent@OData.Community.Display.V1.FormattedValue"
] || ""}
@@ -121,14 +115,16 @@ const Pinswg_ldpid = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
casesObj[
"statuscode@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: casesObj[
"statuscode@OData.Community.Display.V1.FormattedValue"
] ||
@@ -143,14 +139,16 @@ const Pinswg_ldpid = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
detailsObj[
"pinswg_decision@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: detailsObj[
"pinswg_decision@OData.Community.Display.V1.FormattedValue"
] ||
@@ -27,14 +27,16 @@ const Pinswg_listedbuildingandconservationrid = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
casesObj[
"pinswg_appealcasetype@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: casesObj[
"pinswg_appealcasetype@OData.Community.Display.V1.FormattedValue"
] ||
@@ -49,14 +51,16 @@ const Pinswg_listedbuildingandconservationrid = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
casesObj[
"_pinswg_associatedlpa_value@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: casesObj[
"_pinswg_associatedlpa_value@OData.Community.Display.V1.FormattedValue"
] || ""}
@@ -64,17 +68,24 @@ const Pinswg_listedbuildingandconservationrid = (props) => {
</div>
<div className="govuk-summary-list__row">
<dt className="govuk-summary-list__key">
{t("case:summary-case-officer-label")}
{t("case:summary-eia-required-label")}
</dt>
<dd className="govuk-summary-list__value">
{" "}
{/* {casesObj.caseDetails.caseOfficer ||
""} */}
{_.has(casesObj, "_ownerid_value")
? casesObj[
"_ownerid_value@OData.Community.Display.V1.FormattedValue"
]
: ""}
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
detailsObj[
"pinswg_detailedeiascreeningrequiered@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
: detailsObj[
"pinswg_detailedeiascreeningrequiered@OData.Community.Display.V1.FormattedValue"
] ||
t(
"case:summary-to-be-confirmed-label"
)}
</dd>
</div>
<div className="govuk-summary-list__row">
@@ -83,14 +94,16 @@ const Pinswg_listedbuildingandconservationrid = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
detailsObj[
"pinswg_procedure@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: detailsObj[
"pinswg_procedure@OData.Community.Display.V1.FormattedValue"
] || ""}
@@ -102,14 +115,16 @@ const Pinswg_listedbuildingandconservationrid = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
detailsObj[
"pinswg_typeofevent@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: detailsObj[
"pinswg_typeofevent@OData.Community.Display.V1.FormattedValue"
] || ""}
@@ -121,14 +136,16 @@ const Pinswg_listedbuildingandconservationrid = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
casesObj[
"statuscode@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: casesObj[
"statuscode@OData.Community.Display.V1.FormattedValue"
] ||
@@ -143,14 +160,16 @@ const Pinswg_listedbuildingandconservationrid = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
detailsObj[
"pinswg_decision@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: detailsObj[
"pinswg_decision@OData.Community.Display.V1.FormattedValue"
] ||
@@ -27,14 +27,16 @@ const Pinswg_maintenanceoflands217id = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
casesObj[
"pinswg_appealcasetype@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: casesObj[
"pinswg_appealcasetype@OData.Community.Display.V1.FormattedValue"
] ||
@@ -49,14 +51,16 @@ const Pinswg_maintenanceoflands217id = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
casesObj[
"_pinswg_associatedlpa_value@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: casesObj[
"_pinswg_associatedlpa_value@OData.Community.Display.V1.FormattedValue"
] || ""}
@@ -64,17 +68,24 @@ const Pinswg_maintenanceoflands217id = (props) => {
</div>
<div className="govuk-summary-list__row">
<dt className="govuk-summary-list__key">
{t("case:summary-case-officer-label")}
{t("case:summary-eia-required-label")}
</dt>
<dd className="govuk-summary-list__value">
{" "}
{/* {casesObj.caseDetails.caseOfficer ||
""} */}
{_.has(casesObj, "_ownerid_value")
? casesObj[
"_ownerid_value@OData.Community.Display.V1.FormattedValue"
]
: ""}
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
detailsObj[
"pinswg_detailedeiascreeningrequired@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
: detailsObj[
"pinswg_detailedeiascreeningrequired@OData.Community.Display.V1.FormattedValue"
] ||
t(
"case:summary-to-be-confirmed-label"
)}
</dd>
</div>
<div className="govuk-summary-list__row">
@@ -83,14 +94,16 @@ const Pinswg_maintenanceoflands217id = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
detailsObj[
"pinswg_procedure@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: detailsObj[
"pinswg_procedure@OData.Community.Display.V1.FormattedValue"
] || ""}
@@ -102,14 +115,16 @@ const Pinswg_maintenanceoflands217id = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
detailsObj[
"pinswg_typeofevent@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: detailsObj[
"pinswg_typeofevent@OData.Community.Display.V1.FormattedValue"
] || ""}
@@ -121,14 +136,16 @@ const Pinswg_maintenanceoflands217id = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
casesObj[
"statuscode@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: casesObj[
"statuscode@OData.Community.Display.V1.FormattedValue"
] ||
@@ -143,14 +160,16 @@ const Pinswg_maintenanceoflands217id = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
detailsObj[
"pinswg_decision@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: detailsObj[
"pinswg_decision@OData.Community.Display.V1.FormattedValue"
] ||
@@ -27,14 +27,16 @@ const Pinswg_miscellaneouscasewordid = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
casesObj[
"pinswg_appealcasetype@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: casesObj[
"pinswg_appealcasetype@OData.Community.Display.V1.FormattedValue"
] ||
@@ -49,14 +51,16 @@ const Pinswg_miscellaneouscasewordid = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
casesObj[
"_pinswg_associatedlpa_value@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: casesObj[
"_pinswg_associatedlpa_value@OData.Community.Display.V1.FormattedValue"
] || ""}
@@ -64,17 +68,24 @@ const Pinswg_miscellaneouscasewordid = (props) => {
</div>
<div className="govuk-summary-list__row">
<dt className="govuk-summary-list__key">
{t("case:summary-case-officer-label")}
{t("case:summary-eia-required-label")}
</dt>
<dd className="govuk-summary-list__value">
{" "}
{/* {casesObj.caseDetails.caseOfficer ||
""} */}
{_.has(casesObj, "_ownerid_value")
? casesObj[
"_ownerid_value@OData.Community.Display.V1.FormattedValue"
]
: ""}
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
detailsObj[
"pinswg_eiarequired@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
: detailsObj[
"pinswg_eiarequired@OData.Community.Display.V1.FormattedValue"
] ||
t(
"case:summary-to-be-confirmed-label"
)}
</dd>
</div>
<div className="govuk-summary-list__row">
@@ -83,14 +94,16 @@ const Pinswg_miscellaneouscasewordid = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
detailsObj[
"pinswg_procedure@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: detailsObj[
"pinswg_procedure@OData.Community.Display.V1.FormattedValue"
] || ""}
@@ -102,14 +115,16 @@ const Pinswg_miscellaneouscasewordid = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
detailsObj[
"pinswg_typeofevent@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: detailsObj[
"pinswg_typeofevent@OData.Community.Display.V1.FormattedValue"
] || ""}
@@ -121,14 +136,16 @@ const Pinswg_miscellaneouscasewordid = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
casesObj[
"statuscode@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: casesObj[
"statuscode@OData.Community.Display.V1.FormattedValue"
] ||
@@ -143,14 +160,16 @@ const Pinswg_miscellaneouscasewordid = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
detailsObj[
"pinswg_decision@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: detailsObj[
"pinswg_decision@OData.Community.Display.V1.FormattedValue"
] ||
@@ -217,18 +236,22 @@ const Pinswg_miscellaneouscasewordid = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.pinswg_lpa=="' +
? jsonpath({
path:
'$..[?(@ && @.pinswg_lpa=="' +
detailsObj.pinswg_relevantauthorityname +
'")].value_cy',
transLookup
)
: jsonpath(
'$..[?(@.pinswg_lpa=="' +
json: transLookup,
eval: true,
})
: jsonpath({
path:
'$..[?(@ && @.pinswg_lpa=="' +
detailsObj.pinswg_relevantauthorityname +
'")].value',
transLookup
) ||
json: transLookup,
eval: true,
}) ||
t(
"case:summary-no-date-entered-label"
)}
@@ -27,14 +27,16 @@ const Pinswg_nonvalidationid = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
casesObj[
"pinswg_appealcasetype@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: casesObj[
"pinswg_appealcasetype@OData.Community.Display.V1.FormattedValue"
] ||
@@ -49,48 +51,37 @@ const Pinswg_nonvalidationid = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
casesObj[
"_pinswg_associatedlpa_value@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: casesObj[
"_pinswg_associatedlpa_value@OData.Community.Display.V1.FormattedValue"
] || ""}
</dd>
</div>
<div className="govuk-summary-list__row">
<dt className="govuk-summary-list__key">
{t("case:summary-case-officer-label")}
</dt>
<dd className="govuk-summary-list__value">
{" "}
{/* {casesObj.caseDetails.caseOfficer ||
""} */}
{_.has(casesObj, "_ownerid_value")
? casesObj[
"_ownerid_value@OData.Community.Display.V1.FormattedValue"
]
: ""}
</dd>
</div>
{/* <div className="govuk-summary-list__row">
<dt className="govuk-summary-list__key">
{t("case:summary-procedure-label")}
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({path:
'$..[?(@ && @.value=="' +
detailsObj[
"pinswg_procedure@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: detailsObj[
"pinswg_procedure@OData.Community.Display.V1.FormattedValue"
] || ""}
@@ -102,14 +93,16 @@ const Pinswg_nonvalidationid = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
casesObj[
"statuscode@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: casesObj[
"statuscode@OData.Community.Display.V1.FormattedValue"
] ||
@@ -124,14 +117,16 @@ const Pinswg_nonvalidationid = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
detailsObj[
"pinswg_decisionissued@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: detailsObj[
"pinswg_decisionissued@OData.Community.Display.V1.FormattedValue"
] ||
@@ -27,14 +27,16 @@ const Pinswg_planningappeals78id = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
casesObj[
"pinswg_appealcasetype@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: casesObj[
"pinswg_appealcasetype@OData.Community.Display.V1.FormattedValue"
] ||
@@ -49,14 +51,16 @@ const Pinswg_planningappeals78id = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
casesObj[
"_pinswg_associatedlpa_value@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: casesObj[
"_pinswg_associatedlpa_value@OData.Community.Display.V1.FormattedValue"
] || ""}
@@ -64,17 +68,24 @@ const Pinswg_planningappeals78id = (props) => {
</div>
<div className="govuk-summary-list__row">
<dt className="govuk-summary-list__key">
{t("case:summary-case-officer-label")}
{t("case:summary-eia-required-label")}
</dt>
<dd className="govuk-summary-list__value">
{" "}
{/* {casesObj.caseDetails.caseOfficer ||
""} */}
{_.has(casesObj, "_ownerid_value")
? casesObj[
"_ownerid_value@OData.Community.Display.V1.FormattedValue"
]
: ""}
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
detailsObj[
"pinswg_eiarequired@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
: detailsObj[
"pinswg_eiarequired@OData.Community.Display.V1.FormattedValue"
] ||
t(
"case:summary-to-be-confirmed-label"
)}
</dd>
</div>
<div className="govuk-summary-list__row">
@@ -83,14 +94,16 @@ const Pinswg_planningappeals78id = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
detailsObj[
"pinswg_procedure@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: detailsObj[
"pinswg_procedure@OData.Community.Display.V1.FormattedValue"
] || ""}
@@ -102,14 +115,16 @@ const Pinswg_planningappeals78id = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
detailsObj[
"pinswg_typeofevent@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: detailsObj[
"pinswg_typeofevent@OData.Community.Display.V1.FormattedValue"
] ||
@@ -124,14 +139,16 @@ const Pinswg_planningappeals78id = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
casesObj[
"statuscode@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: casesObj[
"statuscode@OData.Community.Display.V1.FormattedValue"
] ||
@@ -146,14 +163,16 @@ const Pinswg_planningappeals78id = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
detailsObj[
"pinswg_dicision@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: detailsObj[
"pinswg_dicision@OData.Community.Display.V1.FormattedValue"
] ||
@@ -27,14 +27,16 @@ const Pinswg_planningconditionss73s79id = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
casesObj[
"pinswg_appealcasetype@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: casesObj[
"pinswg_appealcasetype@OData.Community.Display.V1.FormattedValue"
] ||
@@ -49,14 +51,16 @@ const Pinswg_planningconditionss73s79id = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
casesObj[
"_pinswg_associatedlpa_value@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: casesObj[
"_pinswg_associatedlpa_value@OData.Community.Display.V1.FormattedValue"
] || ""}
@@ -64,17 +68,24 @@ const Pinswg_planningconditionss73s79id = (props) => {
</div>
<div className="govuk-summary-list__row">
<dt className="govuk-summary-list__key">
{t("case:summary-case-officer-label")}
{t("case:summary-eia-required-label")}
</dt>
<dd className="govuk-summary-list__value">
{" "}
{/* {casesObj.caseDetails.caseOfficer ||
""} */}
{_.has(casesObj, "_ownerid_value")
? casesObj[
"_ownerid_value@OData.Community.Display.V1.FormattedValue"
]
: ""}
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
detailsObj[
"pinswg_detailedeiascreeningrequiered@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
: detailsObj[
"pinswg_detailedeiascreeningrequiered@OData.Community.Display.V1.FormattedValue"
] ||
t(
"case:summary-to-be-confirmed-label"
)}
</dd>
</div>
<div className="govuk-summary-list__row">
@@ -83,14 +94,16 @@ const Pinswg_planningconditionss73s79id = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
detailsObj[
"pinswg_procedure@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: detailsObj[
"pinswg_procedure@OData.Community.Display.V1.FormattedValue"
] || ""}
@@ -102,14 +115,16 @@ const Pinswg_planningconditionss73s79id = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
detailsObj[
"pinswg_typeofevent@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: detailsObj[
"pinswg_typeofevent@OData.Community.Display.V1.FormattedValue"
] || ""}
@@ -121,14 +136,16 @@ const Pinswg_planningconditionss73s79id = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
casesObj[
"statuscode@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: casesObj[
"statuscode@OData.Community.Display.V1.FormattedValue"
] ||
@@ -143,14 +160,16 @@ const Pinswg_planningconditionss73s79id = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
detailsObj[
"pinswg_decision@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: detailsObj[
"pinswg_decision@OData.Community.Display.V1.FormattedValue"
] ||
@@ -27,14 +27,16 @@ const Pinswg_planningobligationappeals106id = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
casesObj[
"pinswg_appealcasetype@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: casesObj[
"pinswg_appealcasetype@OData.Community.Display.V1.FormattedValue"
] ||
@@ -49,14 +51,16 @@ const Pinswg_planningobligationappeals106id = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
casesObj[
"_pinswg_associatedlpa_value@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: casesObj[
"_pinswg_associatedlpa_value@OData.Community.Display.V1.FormattedValue"
] || ""}
@@ -64,17 +68,24 @@ const Pinswg_planningobligationappeals106id = (props) => {
</div>
<div className="govuk-summary-list__row">
<dt className="govuk-summary-list__key">
{t("case:summary-case-officer-label")}
{t("case:summary-eia-required-label")}
</dt>
<dd className="govuk-summary-list__value">
{" "}
{/* {casesObj.caseDetails.caseOfficer ||
""} */}
{_.has(casesObj, "_ownerid_value")
? casesObj[
"_ownerid_value@OData.Community.Display.V1.FormattedValue"
]
: ""}
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
detailsObj[
"pinswg_detailedeiascreeningrequired@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
: detailsObj[
"pinswg_detailedeiascreeningrequired@OData.Community.Display.V1.FormattedValue"
] ||
t(
"case:summary-to-be-confirmed-label"
)}
</dd>
</div>
<div className="govuk-summary-list__row">
@@ -83,14 +94,16 @@ const Pinswg_planningobligationappeals106id = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
detailsObj[
"pinswg_procedure@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: detailsObj[
"pinswg_procedure@OData.Community.Display.V1.FormattedValue"
] || ""}
@@ -102,14 +115,16 @@ const Pinswg_planningobligationappeals106id = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
detailsObj[
"pinswg_typeofevent@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: detailsObj[
"pinswg_typeofevent@OData.Community.Display.V1.FormattedValue"
] || ""}
@@ -121,14 +136,16 @@ const Pinswg_planningobligationappeals106id = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
casesObj[
"statuscode@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: casesObj[
"statuscode@OData.Community.Display.V1.FormattedValue"
] ||
@@ -143,14 +160,16 @@ const Pinswg_planningobligationappeals106id = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
detailsObj[
"pinswg_decision@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: detailsObj[
"pinswg_decision@OData.Community.Display.V1.FormattedValue"
] ||
+70 -45
View File
@@ -27,14 +27,16 @@ const Pinswg_rowid = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
casesObj[
"pinswg_appealcasetype@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: casesObj[
"pinswg_appealcasetype@OData.Community.Display.V1.FormattedValue"
] ||
@@ -50,14 +52,16 @@ const Pinswg_rowid = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
detailsObj[
"pinswg_specialistcaseprocess@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: detailsObj[
"pinswg_specialistcaseprocess@OData.Community.Display.V1.FormattedValue"
] || ""}
@@ -70,14 +74,16 @@ const Pinswg_rowid = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
casesObj[
"_pinswg_associatedlpa_value@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: casesObj[
"_pinswg_associatedlpa_value@OData.Community.Display.V1.FormattedValue"
] || ""}
@@ -85,17 +91,24 @@ const Pinswg_rowid = (props) => {
</div>
<div className="govuk-summary-list__row">
<dt className="govuk-summary-list__key">
{t("case:summary-case-officer-label")}
{t("case:summary-eia-required-label")}
</dt>
<dd className="govuk-summary-list__value">
{" "}
{/* {casesObj.caseDetails.caseOfficer ||
""} */}
{_.has(casesObj, "_ownerid_value")
? casesObj[
"_ownerid_value@OData.Community.Display.V1.FormattedValue"
]
: ""}
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
detailsObj[
"pinswg_detailedeiascreeningrequired@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
: detailsObj[
"pinswg_detailedeiascreeningrequired@OData.Community.Display.V1.FormattedValue"
] ||
t(
"case:summary-to-be-confirmed-label"
)}
</dd>
</div>
<div className="govuk-summary-list__row">
@@ -104,14 +117,16 @@ const Pinswg_rowid = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
detailsObj[
"pinswg_procedure@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: detailsObj[
"pinswg_procedure@OData.Community.Display.V1.FormattedValue"
] || ""}
@@ -123,14 +138,16 @@ const Pinswg_rowid = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
detailsObj[
"pinswg_typeofevent@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: detailsObj[
"pinswg_typeofevent@OData.Community.Display.V1.FormattedValue"
] || ""}
@@ -142,14 +159,16 @@ const Pinswg_rowid = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
casesObj[
"statuscode@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: casesObj[
"statuscode@OData.Community.Display.V1.FormattedValue"
] ||
@@ -164,14 +183,16 @@ const Pinswg_rowid = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
detailsObj[
"pinswg_decision@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: detailsObj[
"pinswg_decision@OData.Community.Display.V1.FormattedValue"
] ||
@@ -238,18 +259,22 @@ const Pinswg_rowid = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.pinswg_lpa=="' +
? jsonpath({
path:
'$..[?(@ && @.pinswg_lpa=="' +
detailsObj.pinswg_relevantauthorityname +
'")].value_cy',
transLookup
)
: jsonpath(
'$..[?(@.pinswg_lpa=="' +
json: transLookup,
eval: true,
})
: jsonpath({
path:
'$..[?(@ && @.pinswg_lpa=="' +
detailsObj.pinswg_relevantauthorityname +
'")].value',
transLookup
) ||
json: transLookup,
eval: true,
}) ||
t(
"case:summary-no-date-entered-label"
)}
File diff suppressed because it is too large Load Diff
@@ -65,14 +65,16 @@ const Pinswg_transportandworkactid = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
casesObj[
"pinswg_appealcasetype@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: casesObj[
"pinswg_appealcasetype@OData.Community.Display.V1.FormattedValue"
] ||
@@ -81,6 +83,30 @@ const Pinswg_transportandworkactid = (props) => {
)}
</dd>
</div>
<div className="govuk-summary-list__row">
<dt className="govuk-summary-list__key">
{t(
"case:summary-eia-required-label"
)}
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
detailsObj[
"pinswg_eiarequired@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
: detailsObj[
"pinswg_eiarequired@OData.Community.Display.V1.FormattedValue"
] ||
t(
"case:summary-to-be-confirmed-label"
)}
</dd>
</div>
<div className="govuk-summary-list__row">
<dt className="govuk-summary-list__key">
@@ -90,12 +116,14 @@ const Pinswg_transportandworkactid = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
detailsObj.pinswg_recommendation +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: detailsObj.pinswg_recommendation ||
t(
"case:summary-no-date-entered-label"
@@ -111,12 +139,14 @@ const Pinswg_transportandworkactid = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
detailsObj.pinswg_webaddress +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: detailsObj.pinswg_webaddress ||
t(
"case:summary-no-date-entered-label"
@@ -27,14 +27,16 @@ const Pinswg_wayleaveid = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
casesObj[
"pinswg_appealcasetype@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: casesObj[
"pinswg_appealcasetype@OData.Community.Display.V1.FormattedValue"
] ||
@@ -49,14 +51,16 @@ const Pinswg_wayleaveid = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
casesObj[
"_pinswg_associatedlpa_value@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: casesObj[
"_pinswg_associatedlpa_value@OData.Community.Display.V1.FormattedValue"
] || ""}
@@ -64,17 +68,24 @@ const Pinswg_wayleaveid = (props) => {
</div>
<div className="govuk-summary-list__row">
<dt className="govuk-summary-list__key">
{t("case:summary-case-officer-label")}
{t("case:summary-eia-required-label")}
</dt>
<dd className="govuk-summary-list__value">
{" "}
{/* {casesObj.caseDetails.caseOfficer ||
""} */}
{_.has(casesObj, "_ownerid_value")
? casesObj[
"_ownerid_value@OData.Community.Display.V1.FormattedValue"
]
: ""}
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
detailsObj[
"pinswg_detailedeiascreening@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
: detailsObj[
"pinswg_detailedeiascreening@OData.Community.Display.V1.FormattedValue"
] ||
t(
"case:summary-to-be-confirmed-label"
)}
</dd>
</div>
<div className="govuk-summary-list__row">
@@ -83,14 +94,16 @@ const Pinswg_wayleaveid = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
detailsObj[
"pinswg_procedure@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: detailsObj[
"pinswg_procedure@OData.Community.Display.V1.FormattedValue"
] || ""}
@@ -102,14 +115,16 @@ const Pinswg_wayleaveid = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
detailsObj[
"pinswg_typeofevent@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: detailsObj[
"pinswg_typeofevent@OData.Community.Display.V1.FormattedValue"
] || ""}
@@ -121,14 +136,16 @@ const Pinswg_wayleaveid = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
casesObj[
"statuscode@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: casesObj[
"statuscode@OData.Community.Display.V1.FormattedValue"
] ||
@@ -143,14 +160,16 @@ const Pinswg_wayleaveid = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
detailsObj[
"pinswg_decision@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: detailsObj[
"pinswg_decision@OData.Community.Display.V1.FormattedValue"
] ||
@@ -217,18 +236,22 @@ const Pinswg_wayleaveid = (props) => {
</dt>
<dd className="govuk-summary-list__value">
{router.locale == "cy"
? jsonpath(
'$..[?(@.pinswg_lpa=="' +
? jsonpath({
path:
'$..[?(@ && @.pinswg_lpa=="' +
detailsObj.pinswg_relevantauthorityname +
'")].value_cy',
transLookup
)
: jsonpath(
'$..[?(@.pinswg_lpa=="' +
json: transLookup,
eval: true,
})
: jsonpath({
path:
'$..[?(@ && @.pinswg_lpa=="' +
detailsObj.pinswg_relevantauthorityname +
'")].value',
transLookup
) ||
json: transLookup,
eval: true,
}) ||
t(
"case:summary-no-date-entered-label"
)}
+94
View File
@@ -0,0 +1,94 @@
import { signOut } from "next-auth/react";
import useTranslation from "next-translate/useTranslation";
import { useRouter } from "next/router";
import { useState, useEffect } from "react";
import { destroyCookie, parseCookies, setCookie } from "nookies";
import { signIn, useSession } from "next-auth/react";
const WatchModal = (props) => {
let { t } = useTranslation();
const { isOpen, onClose } = props;
const currentType = props.currentType;
const casesObj = props.casesObj;
const { data: session, status } = useSession();
const router = useRouter();
const { locale } = router;
let now = new Date();
let expDate = new Date(now);
expDate.setDate(now.getDate() + 365);
if (!isOpen) return null;
return (
<>
<div
className={open ? "modal fade show" : "modal fade"}
style={{
display: open ? "flex" : "none",
}}
>
<div className="modal-dialog">
<div className="modal-content">
<h3>Watch case</h3>
<p className="govuk-body">
{!session
? " You will now be signed in to watch this case"
: " you are logged in already"}
</p>
<div className="govuk-checkboxes__item">
<input
className="govuk-checkboxes__input"
type="checkbox"
name="addInvolvement"
/>
<label
className="govuk-label-s govuk-checkboxes__label"
htmlFor="addInvolvement"
>
{} Yes, I want you want to be emailed updates
for case
<div> {casesObj.title}</div>
</label>
</div>
<div>
<button
className="govuk-button"
onClick={() => {
setCookie(
null,
"pedwWatchCase",
currentType == "searchResultsObj"
? detailsObj.pinswg_name
: currentType == "directResultsObj"
? casesObj.title
: casesObj.reference,
{
path: "/",
expires: expDate,
}
),
signIn();
}}
>
Yes
</button>{" "}
<button
className="govuk-button govuk-button--secondary"
onClick={onClose}
>
No
</button>
</div>
</div>
</div>
<div className="modal-backdrop fade show"></div>
</div>
</>
);
};
export default WatchModal;
File diff suppressed because it is too large Load Diff
+69
View File
@@ -0,0 +1,69 @@
// validationUtils.js
// Validation functions
const required = (value, requiredMessage, emojiNotAllowedMessage) => {
let errors;
if (!value) {
errors = requiredMessage;
} else {
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;
if (emojiRegex.test(value)) {
errors = emojiNotAllowedMessage;
}
}
return errors;
};
const postcode = (value, invalidPostcodeMessage) =>
value &&
!/^([A-Z][A-HJ-Y]?[0-9][A-Z0-9]? ?[0-9][A-Z]{2}|GIR ?0A{2})$/i.test(value)
? "Invalid postcode"
: undefined;
// Function to parse the validation string
export const parseValidationString = (validationString) => {
if (typeof validationString !== "string") {
return []; // Return an empty array if it's not a string
}
// Remove square brackets and split by commas
return validationString
.replace(/[\[\]']+/g, "") // Remove square brackets
.split(",") // Split by commas
.map((rule) => rule.trim()); // Trim each validation rule
};
// Function to handle multiple validation rules
export const validateField = (
value,
validationString,
requiredMessage,
emojiNotAllowedMessage,
invalidPostcodeMessage
) => {
const validations = parseValidationString(validationString); // Parse the validation string
let errors;
for (let validationRule of validations) {
const validationFunc = validationFunctions[validationRule];
if (validationFunc) {
errors = validationFunc(
value,
requiredMessage,
emojiNotAllowedMessage,
invalidPostcodeMessage
);
}
if (errors) break; // Exit if any validation fails
}
return errors;
};
// Map validation strings to actual validation functions
export const validationFunctions = {
required,
postcode,
// Add other validation functions as needed
};
+2 -2
View File
@@ -110,9 +110,9 @@ export default function AccessibilityCY() {
Ffoniwch:{" "}
<a
className="govuk-link govuk-link--no-underline govuk-!-font-weight-bold"
href="tel:03000 604400"
href="tel:0300 123 1590"
>
03000 604400
0300 123 1590
</a>
</li>
</ul>
+2 -2
View File
@@ -105,9 +105,9 @@ export default function AccessibilityEN() {
Call:{" "}
<a
className="govuk-link govuk-link--no-underline govuk-!-font-weight-bold"
href="tel:03000 604400"
href="tel:0300 123 1590"
>
03000 604400
0300 123 1590
</a>
</li>
</ul>
+73 -102
View File
@@ -19,6 +19,7 @@ const Header = (props) => {
"/",
"/logout",
"/dns",
"/dns/[developmentName]",
"/dns/application-process",
"/dns/help",
"/dns/contact-us",
@@ -47,12 +48,22 @@ const Header = (props) => {
"/newappeal/[appealtypes]",
"/newappeal",
"/myportal/dnsapplications",
"/myportal/dns/[developmentName]",
"/myportal/dnsdetails",
"/myportal/addresssearch",
"/myportal/addresssearchresults",
"/myportal/advancedsearch",
"/myportal/advancedsearchresults",
"/myportal/case/[ticketnumber]",
"/account/personaldetails",
"/register",
"/myportal/searchresults",
"/myportal/representation",
"/myportal/viewall",
"/contactus",
"/myportal/contactus",
"/unsubscribe/[watchlistid]",
"/unsubscribeall/[watchlistid]",
];
const hasContactLink = [
@@ -78,7 +89,44 @@ const Header = (props) => {
destroyCookie(null, "next-auth.callback-url", { path: "/" }),
destroyCookie(null, "pedw_locale", { path: "/" }),
destroyCookie(null, "pinsUser", { path: "/" }),
signOut({ callbackUrl: "/logout" });
signOut({
callbackUrl: locale == "cy" ? "/cy/allgofnodi" : "/logout",
});
};
//const switchLocale = locale === "en" ? "cy" : "en";
const switchLocale = router.asPath.startsWith("/cy") ? "en" : "cy";
console.log("switch locale", locale === "en" ? "cy" : "en");
const handleLocaleSwitch = () => {
// const router = useRouter();
const isWelsh = router.asPath.startsWith("/cy");
console.log(
isWelsh,
router.asPath,
router.basePath,
router.pathname,
router.route
);
// Switch path: remove /cy if switching to English, add /cy if switching to Welsh
const newPath = isWelsh
? router.asPath.replace(/^\/cy/, "") || "/"
: router.asPath === "/"
? "/cy"
: `/cy${router.asPath}`;
// Persist user's choice in cookie
setCookie(null, "pedw_locale", isWelsh ? "en" : "cy", {
path: "/",
maxAge: 60 * 60 * 24 * 365, // 1 year
});
// Navigate to new language path
router.push(newPath);
};
return (
@@ -103,106 +151,6 @@ const Header = (props) => {
</div>
<div className="languageSwitch">
{/* <div className="mobileNav">
<div className="mobileMenu">
<input
type="radio"
id="mobileMenu-1"
name="mobileMenu-group-1"
/>
<label htmlFor="mobileMenu-1">
{t("common:mobile-nav-label")} <i></i>
</label>
<div className="mobileMenu close-mobileMenu">
<input
type="radio"
id="mobileMenu-close"
name="mobileMenu-group-1"
/>
<label htmlFor="mobileMenu-close">
{t("common:mobile-nav-label")} <i></i>
</label>
</div>
<div className="content">
<ul>
{hasContactLink.includes(router.pathname) ==
true ? (
<li>
<Link href="/dns/contact-us">
<a className="govuk-header__link ">
Contact
</a>
</Link>
</li>
) : (
""
)}
{noSignoutLink.includes(router.pathname) ==
true ? (
""
) : (
<li>
<a
href={
router.locale == "cy"
? "/allgofnodi"
: "/logout"
}
onClick={() => {
setLogout(),
window.localStorage.clear();
}}
className="govuk-header__link "
>
{t("common:signout-label")}
</a>
</li>
)}
<li>
<Link
href={
locale == "en"
? router.query.q != null
? router.pathname +
"?q=" +
router.query.q
: router.pathname
: router.query.q != null
? process.env.I18N_DOMAIN +
"/" +
router.asPath +
"?q=" +
router.query.q
: router.asPath
}
locale={
locale == "en" ? "cy" : "en"
}
className="govuk-header__link "
lang={locale == "en" ? "cy" : "en"}
hrefLang={
locale == "en" ? "cy" : "en"
}
data-journey-click={
locale == "en"
? "link - click:lang-select:Cymraeg"
: "link - click:lang-select:English"
}
aria-label={
locale == "en"
? "Dewiswch Cymraeg"
: "Select English"
}
>
{" "}
{t("common:available-in")}
</Link>
</li>
</ul>
</div>
</div>
</div> */}
<div className="fullNavs">
{hasContactLink.includes(router.pathname) == true ? (
<Link
@@ -220,7 +168,7 @@ const Header = (props) => {
<Link
href={
router.locale == "cy"
? "/allgofnodi"
? "/cy/allgofnodi"
: "/logout"
}
onClick={() => {
@@ -232,6 +180,29 @@ const Header = (props) => {
</Link>
)}
{/* <span
onClick={handleLocaleSwitch}
className="govuk-header__link"
lang={switchLocale}
hrefLang={switchLocale}
role="link"
tabIndex={0}
onKeyDown={(e) => {
if (e.key === "Enter") handleLocaleSwitch();
}}
data-journey-click={
locale === "en"
? "link - click:lang-select:Cymraeg"
: "link - click:lang-select:English"
}
aria-label={
locale === "en"
? "Dewiswch Cymraeg"
: "Select English"
}
>
{t("common:available-in")}
</span> */}
<Link
href={
Object.keys(router.query).length > 0
+10
View File
@@ -1,5 +1,6 @@
import useTranslation from "next-translate/useTranslation";
import { useRouter } from "next/router";
import Link from "next/link";
export default function CaseComment() {
let { t } = useTranslation();
@@ -24,6 +25,15 @@ export default function CaseComment() {
<p className="govuk-body-s">
{t("home:casescomment-card-paragraph-two")}
</p>
<div className="govuk-form-group">
<Link
href={router.locale == "cy" ? "/cyswllt" : "/contactus"}
className="govuk-button withChevron govuk-button-cta"
>
{t("common:footer-contact-us-link-label")}
</Link>
</div>
</div>
</div>
);
+63 -15
View File
@@ -1,3 +1,4 @@
import { he } from "date-fns/locale";
import GoogleMapReact from "google-map-react";
const GoogleMapComponent = (props) => {
const { center, zoom } = props;
@@ -21,22 +22,69 @@ const GoogleMapComponent = (props) => {
});
}
};
// console.log(
// "https://datamap.gov.wales/maps/pedw-dev/embed?center=" +
// props.center.lng +
// "," +
// props.center.lat +
// "&zoom=12#/"
// );
return (
<GoogleMapReact
options={function (maps) {
return {
overviewMapControl: true,
mapTypeControl: true,
};
}}
bootstrapURLKeys={{
key: "AIzaSyCzeVrHt544bp_72YCFkw21eDsmI2JEsQo",
}}
defaultCenter={center}
defaultZoom={zoom}
yesIWantToUseGoogleMapApiInternals
onGoogleApiLoaded={({ map, maps }) => ModelsMap(map, maps)}
></GoogleMapReact>
// <GoogleMapReact
// options={function (maps) {
// return {
// overviewMapControl: true,
// mapTypeControl: true,
// };
// }}
// bootstrapURLKeys={{
// key: "AIzaSyCzeVrHt544bp_72YCFkw21eDsmI2JEsQo",
// }}
// defaultCenter={center}
// defaultZoom={zoom}
// yesIWantToUseGoogleMapApiInternals
// onGoogleApiLoaded={({ map, maps }) => ModelsMap(map, maps)}
// ></GoogleMapReact>
<>
{" "}
<div className="govuk-grid-row">
<div className="govuk-grid-column-full">
<a
href={
"https://datamap.gov.wales/maps/pedw-dev/embed?center=" +
props.center.lng +
"," +
props.center.lat +
"&zoom=7#/"
}
rel="noreferrer noopener"
className="govuk-link govuk-link--no-underline govuk-!-font-size-14 "
target="_blank"
>
See this map on Datamap Wales
</a>
</div>
</div>
<div className="govuk-grid-row">
<div className="govuk-grid-column-full">
<iframe
src={
"https://datamap.gov.wales/maps/pedw-dev/embed?center=" +
props.center.lng +
"," +
props.center.lat +
"&zoom=7#/"
}
//src={"https://datamap.gov.wales/maps/pedw-dev/embed#/"}
width={"100%"}
maxheight={"400px"}
height={"500px"}
className={"mappingFrame"}
></iframe>
</div>
</div>
</>
);
};
+23 -9
View File
@@ -13,7 +13,10 @@ import MyCases from "./myportal/mycases";
import MyRepresentations from "./myportal/myrepresentations";
import SearchCases from "./myportal/searchcases";
import WatchedCases from "./myportal/watchedcases";
import MySubmittedReps from "./myportal/mysubmittedrepresentations";
import ServiceBanner from "./myportal/servicebanner";
import { JSONPath as jsonpath } from "jsonpath-plus";
import transLookup from "../data/lookuptranslations.json";
const MyPortal = (props) => {
const { showFileUpload, showLoginCheck } = props;
@@ -29,7 +32,9 @@ const MyPortal = (props) => {
destroyCookie(null, "next-auth.callback-url", { path: "/" }),
destroyCookie(null, "pedw_locale", { path: "/" }),
destroyCookie(null, "pinsUser", { path: "/" }),
signOut({ callbackUrl: "/logout" });
signOut({
callbackUrl: locale == "cy" ? "/cy/allgofnodi" : "/logout",
});
};
const isLPA =
@@ -100,12 +105,21 @@ const MyPortal = (props) => {
{isLPA && (
<div>
<h2 className="heading-small card-heading">
{
props.accountDetails.accountDetails[
"pinswg_contact_associatedlpa@OData.Community.Display.V1.FormattedValue"
]
}{" "}
LPA Portal
{router.locale == "cy"
? jsonpath({
path:
'$..[?(@ && @.value=="' +
props.accountDetails.accountDetails[
"pinswg_contact_associatedlpa@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
json: transLookup,
eval: true,
})
: props.accountDetails.accountDetails[
"pinswg_contact_associatedlpa@OData.Community.Display.V1.FormattedValue"
]}{" "}
{t("myportal:lpa-portal-heading")}
</h2>
</div>
)}
@@ -174,9 +188,9 @@ const MyPortal = (props) => {
{props.myRepresentations.mySubmittedReps
.mySubmittedReps.length > 0 && (
<WatchedCases
<MySubmittedReps
currentView={props.currentView}
watchedCases={
mySubmittedReps={
props.myRepresentations.mySubmittedReps
}
isLPA={isLPA}
+21 -30
View File
@@ -24,25 +24,15 @@ let AdvancedSearch = (props) => {
//console.log("props here:", props.props);
const appealOptionsObj = _.isEmpty(props)
? [{}]
: _.isEmpty(props.appealType)
? [{}]
: _.isEmpty(props.appealType.appealTypeOptions)
? [{}]
: _.isEmpty(props.appealType.appealTypeOptions.value)
? [{}]
: props.appealType.appealTypeOptions.value;
const appealOptionsObj =
props?.appealType?.appealTypeOptions?.value?.length > 0
? props.appealType.appealTypeOptions.value
: [{}];
let lpaOptionsObj = _.isEmpty(props)
? [{}]
: _.isEmpty(props.LPAData)
? [{}]
: _.isEmpty(props.LPAData.LPAData)
? [{}]
: _.isEmpty(props.LPAData.LPAData)
? [{}]
: props.LPAData.LPAData.value;
const lpaOptionsObj =
props?.LPAData?.LPAData?.value?.length > 0
? props.LPAData.LPAData.value
: [{}];
const RenderTextfield = ({
id,
@@ -146,13 +136,15 @@ let AdvancedSearch = (props) => {
{/* {optionsObj[key].name} */}
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
optionsObj[key]
.name +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: optionsObj[key].name ||
t(
"case:summary-no-date-entered-label"
@@ -249,13 +241,15 @@ let AdvancedSearch = (props) => {
)
? ""
: router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
optionsObj[key]
.value +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: optionsObj[key].value ||
t(
"case:summary-no-date-entered-label"
@@ -306,10 +300,7 @@ let AdvancedSearch = (props) => {
(router.locale == "cy"
? "/fymhorth/canlyniadauchwiliouwch"
: "/myportal/advancedsearchresults") + searchString,
null,
{
shallow: true,
}
null
);
};
+3 -2
View File
@@ -34,11 +34,12 @@ const AwaitingSubmission = (props) => {
<div className="cardVieAll">
<Link
href={
router.locale != "en"
(router.locale != "en"
? "/" +
router.locale +
"/fymhorth/gweldpopeth"
: "/myportal/viewall"
: "/myportal/viewall") +
"?viewKey=awaitingSubmission"
}
className="govuk-link--no-underline"
onClick={() => {
+101 -79
View File
@@ -43,14 +43,25 @@ const AwaitingSubmissionFromBlob = (props) => {
}
let topthreeRowArr = [];
let showTopThreeArr = props.awaitingSubmissionFromBlob.value;
let showTopThreeArrDets = props.awaitingSubmissionFromBlob.case;
let showTopThreeArr = props.awaitingSubmissionFromBlob.case;
let showTopThreeArrDets = props.awaitingSubmissionFromBlob.value;
showTopThreeArr = sortByField(showTopThreeArr, "pinswg_name");
showTopThreeArrDets = sortByField(showTopThreeArrDets, "ticketnumber");
showTopThreeArr = sortByField(showTopThreeArr, "ticketnumber");
showTopThreeArrDets = sortByField(showTopThreeArrDets, "pinswg_name");
showTopThreeArr = sortByISODate(showTopThreeArr, "createdDate");
showTopThreeArrDets = sortByISODate(showTopThreeArrDets, "createdon");
let mergedArray = showTopThreeArr.map((item1) => {
let item2 = showTopThreeArrDets.find(
(item) =>
item.pinswg_name === item1.ticketnumber ||
item.appealComplete === item1.ticketnumber
);
return { ...item1, ...item2 };
});
showTopThreeArr = mergedArray;
showTopThreeArr = sortByISODate(showTopThreeArr, "createdon");
// showTopThreeArrDets = sortByISODate(showTopThreeArrDets, "createdon");
const raisedDate = (datePart) => {
var dateObj = new Date(datePart);
@@ -117,7 +128,7 @@ const AwaitingSubmissionFromBlob = (props) => {
.pinswg_appealcasetype +
"&casereference=" +
showTopThreeArr[key]
.pinswg_name +
.ticketnumber +
"&inid=" +
showTopThreeArr[key].incidentid
}
@@ -142,35 +153,72 @@ const AwaitingSubmissionFromBlob = (props) => {
});
}}
>
{showTopThreeArr[index].pinswg_name}
{
showTopThreeArr[index]
.ticketnumber
}
</Link>
)}
{!showTopThreeArr[key].hasOwnProperty(
"appealComplete"
) && (
<div className="deleteCase">
<button
title={t(
"case:do-you-want-to-delete-case-label"
)}
className=" cardModuleRemoveCase govuk-link govuk-link--no-underline govuk-link--inverse "
onClick={() => {
confirm(
t(
"case:do-you-want-to-delete-case-label"
) +
showTopThreeArr[key]
.ticketnumber +
"?\n" +
t(
"case:do-you-want-to-delete-case-disclaimer-label"
)
) &&
deleteCaseItem(
props.containerID,
showTopThreeArr[key]
.ticketnumber
);
}}
>
&mdash;
</button>
</div>
)}
</div>
<div>
<div className="cardModuleReference">
<b>{t("myportal:lpa-reference-label")}:</b>{" "}
{
showTopThreeArr[key]
.pinswg_lpaapplicationreference
}
</div>
<div>
<div className="cardModuleReference">
<b>{t("myportal:appeal-type-label")}:</b>{" "}
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
getFormCollectionByID(
showTopThreeArr[key]
.pinswg_appealcasetype
).value +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: getFormCollectionByID(
showTopThreeArr[key]
.pinswg_appealcasetype
).value || ""}
</div>
<div className="carModuleAddress">
<div className="cardModuleReference">
<b>{t("myportal:case-address")}:</b>{" "}
{_.isEmpty(showTopThreeArr)
? t("myportal:case-address-not-entered")
@@ -202,63 +250,69 @@ const AwaitingSubmissionFromBlob = (props) => {
.pinswg_siteaddresstown
: "")}
</div>
{showTopThreeArrDets[key]
.pinswg_appellantagent != null && (
<div>
{showTopThreeArrDets[key]
{showTopThreeArr[key].pinswg_appellantagent !=
null && (
<div className="cardModuleReference">
{showTopThreeArr[key]
.pinswg_appellantagent !=
846040000 && (
<b>
{t("myportal:raised-by-label")}:{" "}
</b>
)}
{showTopThreeArrDets[key]
{showTopThreeArr[key]
.pinswg_appellantagent !=
846040000 &&
(showTopThreeArrDets[key]
(showTopThreeArr[key]
.pinswg_agentcompanyname !=
null &&
showTopThreeArrDets[key]
showTopThreeArr[key]
.pinswg_agentcompanyname +
", ") +
showTopThreeArrDets[key]
showTopThreeArr[key]
.pinswg_agentfirstname +
" " +
showTopThreeArrDets[key]
showTopThreeArr[key]
.pinswg_agentlastname}
</div>
)}
{showTopThreeArrDets[key]
.pinswg_appellantfirstname != null && (
<div>
{showTopThreeArr[key].pinswg_appellantagent !=
846040000 && (
<div className="cardModuleReference">
<b>
{t("myportal:on-behalf-of-label")}:{" "}
</b>
{showTopThreeArrDets[key]
{showTopThreeArr[key]
.pinswg_appellantfirstname +
" " +
showTopThreeArrDets[key]
showTopThreeArr[key]
.pinswg_appellantlastname}
</div>
)}
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
showTopThreeArrDets[key][
"pinswg_lpaname"
] +
'")].value_cy',
transLookup
)
: showTopThreeArrDets[key][
"pinswg_lpaname"
] || ""}
<div className="cardModuleReference">
<b>
{router.locale == "cy" ? "ACLl" : "LPA"}
:
</b>
{router.locale == "cy"
? jsonpath({
path:
'$..[?(@ && @.value=="' +
showTopThreeArr[key][
"pinswg_lpaname"
] +
'")].value_cy',
json: transLookup,
eval: true,
})
: showTopThreeArr[key][
"pinswg_lpaname"
] || ""}
</div>
<div className="cardModuleReference">
<b>{t("myportal:date-raised")}:</b>
{" "}
{raisedDate(
showTopThreeArrDets[key].createdon
)}
{raisedDate(showTopThreeArr[key].createdon)}
</div>{" "}
{showTopThreeArr[key].hasOwnProperty(
"appealComplete"
@@ -274,38 +328,6 @@ const AwaitingSubmissionFromBlob = (props) => {
</div>
)}
</div>
{!showTopThreeArr[key].hasOwnProperty(
"appealComplete"
) && (
<div className="">
<button
title={t(
"case:do-you-want-to-delete-case-label"
)}
className=" cardModuleRemoveCase govuk-link govuk-link--no-underline govuk-link--inverse "
onClick={() => {
confirm(
t(
"case:do-you-want-to-delete-case-label"
) +
showTopThreeArr[key]
.pinswg_name +
"?\n" +
t(
"case:do-you-want-to-delete-case-disclaimer-label"
)
) &&
deleteCaseItem(
props.containerID,
showTopThreeArr[key]
.pinswg_name
);
}}
>
&mdash;
</button>
</div>
)}
</div>
);
})}
@@ -325,16 +347,16 @@ const AwaitingSubmissionFromBlob = (props) => {
</h3>
<TopThreeRow />
{props.awaitingSubmissionFromBlob["@odata.count"] > 1 && (
<div className="cardVieAll">
<Link
href={
router.locale != "en"
(router.locale != "en"
? "/" +
router.locale +
"/fymhorth/gweldpopeth"
: "/myportal/viewall"
: "/myportal/viewall") +
"?viewKey=awaitingSubmissionDetails"
}
className="govuk-link--no-underline"
onClick={() => {
+2 -2
View File
@@ -29,11 +29,11 @@ const MyCases = (props) => {
<div className="cardVieAll">
<Link
href={
router.locale != "en"
(router.locale != "en"
? "/" +
router.locale +
"/fymhorth/gweldpopeth"
: "/myportal/viewall"
: "/myportal/viewall") + "?viewKey=myCases"
}
className="govuk-link--no-underline"
onClick={() => {
+3 -3
View File
@@ -34,13 +34,13 @@ const MyRepresentations = (props) => {
<div className="cardVieAll">
<Link
href={
router.locale != "en"
(router.locale != "en"
? "/" +
router.locale +
"/fymhorth/gweldpopeth"
: "/myportal/viewall"
: "/myportal/viewall") +
"?viewKey=myRepresentations"
}
shallow
className="govuk-link--no-underline"
onClick={() => {
setCurrentView({
@@ -33,13 +33,13 @@ const MyRepresentations = (props) => {
<div className="cardVieAll">
<Link
href={
router.locale != "en"
(router.locale != "en"
? "/" +
router.locale +
"/fymhorth/gweldpopeth"
: "/myportal/viewall"
: "/myportal/viewall") +
"?viewKey=myRepresentations"
}
shallow
className="govuk-link--no-underline"
onClick={() => {
setCurrentView({
@@ -0,0 +1,78 @@
import useTranslation from "next-translate/useTranslation";
import Link from "next/link";
import { useRouter } from "next/router";
import { connect } from "react-redux";
import { setCurrentView } from "../../store/currentView/action";
import TopThree from "./topthree";
const MySubmittedReps = (props) => {
let { t } = useTranslation();
const router = useRouter();
const { locale } = router;
const { setCurrentView } = props;
let recordCountVar = props.mySubmittedReps.mySubmittedReps;
return (
<div className="card" id="my-watched-cases-card">
<div className="card-body">
<h3 className="heading-small card-heading">
{t("myportal:submitted-reps-card-title")}
</h3>
<div className="cardModuleContainer">
<TopThree
showTopThree={props.mySubmittedReps.mySubmittedReps}
showDetails={
props.mySubmittedReps.mySubmittedRepsDetails
}
topThreeType={"mySubmittedReps"}
showLoginCheck={props.showLoginCheck}
currentView={props.currentView}
myReps={props.myReps}
props={props}
/>
</div>
{(props.myReps
? recordCountVar.length > 3
: recordCountVar["@odata.count"] > 3) && (
<div className="cardVieAll">
<Link
href={
(router.locale != "en"
? "/" +
router.locale +
"/fymhorth/gweldpopeth"
: "/myportal/viewall") +
"?viewKey=mySubmittedReps"
}
className="govuk-link--no-underline"
onClick={() => {
setCurrentView({
"viewName": "Submitted Representations",
"viewKey": "mySubmittedReps",
});
}}
>
{t("myportal:viewall-link-count", {
count: props.mySubmittedReps.mySubmittedReps
.length,
})}
</Link>
</div>
)}
</div>
</div>
);
};
const mapDispatchToProps = (dispatch) => {
return {
setCurrentView: (currentView) => {
dispatch(setCurrentView(currentView));
},
};
};
export default connect(null, mapDispatchToProps)(MySubmittedReps);
+12 -1
View File
@@ -98,7 +98,6 @@ let CaseSearch = (props) => {
? "/fymhorth/canlyniadauchwilio"
: "/myportal/searchresults",
query: { q: values.basicSearch },
shallow: true,
});
}
};
@@ -172,6 +171,18 @@ let CaseSearch = (props) => {
>
{t("myportal:searchcases-card-advanced-link")}
</Link>
<div className="govuk-form-group govuk-!-margin-top-5">
<Link
href={
router.locale == "cy"
? "/fymhorth/cyswllt"
: "/myportal/contactus"
}
className="govuk-button withChevron govuk-button-cta"
>
{t("common:footer-contact-us-link-label")}
</Link>
</div>
</div>
</form>
</div>
+11 -7
View File
@@ -18,7 +18,7 @@ const ServiceBanner = (props) => {
);
};
const handleLogout = () => {
const handleLogout = (locale) => {
console.info("////////////\n" + "logout" + "\n////////////");
window.localStorage.clear(),
destroyCookie(null, "next-auth.csrf-token"),
@@ -26,7 +26,9 @@ const ServiceBanner = (props) => {
destroyCookie(null, "next-auth.callback-url", { path: "/" }),
destroyCookie(null, "pedw_locale", { path: "/" }),
destroyCookie(null, "pinsUser", { path: "/" }),
signOut({ callbackUrl: "/logout" });
signOut({
callbackUrl: locale == "cy" ? "/cy/allgofnodi" : "/logout",
});
};
const portalLogoLink = [
@@ -73,23 +75,25 @@ const ServiceBanner = (props) => {
<div className="serviceBanner_userDetails_name">
<Link
href="/account/personaldetails"
className="govuk-button-secondary govuk-link"
className="govuk-button-secondary govuk-link--no-underline"
>
{props.accountDetails.accountDetails.firstname}{" "}
{props.accountDetails.accountDetails.lastname}
{" - "}
{/* {" - "}
{
props.accountDetails.accountDetails[
"pinswg_typeofinvolvement@OData.Community.Display.V1.FormattedValue"
]
}
} */}
</Link>
</div>
<div>
<Link
href={router.locale == "cy" ? "/allgofnodi" : "/logout"}
href={
router.locale == "cy" ? "/cy/allgofnodi" : "/logout"
}
onClick={() => {
handleLogout();
handleLogout(router.locale);
}}
className="govuk-header__link "
>
+175 -50
View File
@@ -65,6 +65,43 @@ const TopThree = (props) => {
return dateB - dateA;
});
// check start
function sortByISODate(arr, dateKey) {
return arr.sort((a, b) => new Date(b[dateKey]) - new Date(a[dateKey]));
}
function sortByField(arr, field, ascending = true) {
return arr.sort((a, b) => {
if (a[field] < b[field]) return ascending ? -1 : 1;
if (a[field] > b[field]) return ascending ? 1 : -1;
return 0; // Equal
});
}
//let showTopThreeArr = showTopThree.value;
let showTopThreeArrDets = showDetails;
showTopThreeArr = sortByField(showTopThreeArr, "ticketnumber");
//console.log("showTopThreeArr:", showTopThreeArr);
showTopThreeArrDets = sortByField(showTopThreeArrDets, "pinswg_name");
//console.log("showTopThreeArrDets:", showTopThreeArrDets);
showTopThreeArrDets = showTopThreeArrDets.flatMap((item) => item.value);
let mergedArray = showTopThreeArr.map((item1) => {
let item2 = showTopThreeArrDets.find(
(item) => item.pinswg_name === item1.ticketnumber
);
return { ...item1, ...item2 };
});
showTopThreeArr = mergedArray;
showTopThreeArr = sortByISODate(showTopThreeArr, "createdon");
// check end
const raisedDate = (datePart) => {
var dateObj = new Date(datePart);
return dateObj.toLocaleString();
@@ -78,6 +115,27 @@ const TopThree = (props) => {
.then((data) => data)
.then(() => {
getWatchedCasesProxy(cookies.pinsUser).then((data) => {
let showWatchedCases = (submittedArr) => {
const required = submittedArr.value.filter((el) => {
return (
el.pinswg_representationsubmitted == null
);
});
let newObj = {};
return Object.assign(newObj, {
"@odata.count": required.length,
"value": required,
});
};
data = showWatchedCases(data);
data.value.sort(function compare(a, b) {
var dateA = new Date(a.createdon);
var dateB = new Date(b.createdon);
return dateB - dateA;
});
setWatchedCases(data),
getDetailsProxy(data, "myWatchedCases").then(
(data) => {
@@ -170,13 +228,19 @@ const TopThree = (props) => {
showTopThreeArr[key].incidentid
: router.locale == "cy"
? "/fymhorth/achos/" +
showTopThreeArr[key].pinswg_title +
showTopThreeArr[key].ticketnumber +
"?key=" +
topThreeType
topThreeType +
"&appealType=" +
showTopThreeArr[key]
.pinswg_appealcasetype
: "/myportal/case/" +
showTopThreeArr[key].pinswg_title +
showTopThreeArr[key].ticketnumber +
"?key=" +
topThreeType
topThreeType +
"&appealType=" +
showTopThreeArr[key]
.pinswg_appealcasetype
}
className="govuk-link--no-underline"
data-id={index}
@@ -229,93 +293,152 @@ const TopThree = (props) => {
]}{" "}
</Link>
)}
{topThreeType == "watchedCases" && !props.myReps && (
<div className="deleteCase">
<button
title={t(
"case:you-have-stopped-watching-label"
)}
className=" cardModuleRemoveCase govuk-link govuk-link--no-underline govuk-link--inverse "
onClick={() => {
confirm(
t(
"case:you-have-stopped-watching-label"
) +
showTopThreeArr[key][
"_pinswg_watchedcase_value@OData.Community.Display.V1.FormattedValue"
]
) &&
deleteItem(
showTopThreeArr[key]
.pinswg_watchlistid,
"watchedCases"
);
}}
>
&mdash;
</button>
</div>
)}
{topThreeType == "awaitingSubmission" && (
<div className="deleteCase">
<button
title={t(
"case:do-you-want-to-delete-case-label"
)}
className=" cardModuleRemoveCase govuk-link govuk-link--no-underline govuk-link--inverse "
onClick={() => {
confirm(
t(
"case:do-you-want-to-delete-case-label"
) +
showTopThreeArr[key]
.ticketnumber +
"?\n" +
t(
"case:do-you-want-to-delete-case-disclaimer-label"
)
) &&
deleteItem(
showTopThreeArr[key].incidentid,
"awaitingSubmission"
);
}}
>
&mdash;
</button>
</div>
)}
</div>
<div>
<div className="cardModuleReference">
<b>{t("myportal:appeal-type-label")}:</b>{" "}
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
showTopThreeArr[key][
"pinswg_appealcasetype@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: showTopThreeArr[key][
"pinswg_appealcasetype@OData.Community.Display.V1.FormattedValue"
] || ""}
</div>
{/* )} */}
{/* {topThreeType != "awaitingSubmission" ? ( */}
<div className="carModuleAddress">
<div className="cardModuleReference">
<b>{t("myportal:case-address")}:</b>{" "}
{_.isEmpty(showDetails)
{_.isEmpty(showTopThreeArr[key])
? t("myportal:case-address-not-entered")
: _.isEmpty(showDetails[index])
: _.isEmpty(showTopThreeArr[key])
? t("myportal:case-address-not-entered")
: _.isEmpty(showDetails[index].value[0])
: _.isEmpty(showTopThreeArr[key])
? t("myportal:case-address-not-entered")
: _.isEmpty(
showDetails[index].value[0]
.pinswg_siteaddressline1
showTopThreeArr[key].pinswg_siteaddressline1
)
? t("myportal:case-address-not-entered")
: showDetails[index].value[0]
.pinswg_siteaddressline1 +
: showTopThreeArr[key].pinswg_siteaddressline1 +
(!_.isEmpty(
showDetails[index].value[0]
.pinswg_siteaddressline2
showTopThreeArr[key].pinswg_siteaddressline2
)
? ", " +
showDetails[index].value[0]
.pinswg_siteaddressline2
showTopThreeArr[key].pinswg_siteaddressline2
: "") +
(!_.isEmpty(
showDetails[index].value[0]
.pinswg_siteaddresstown
showTopThreeArr[key].pinswg_siteaddresstown
)
? ", " +
showDetails[index].value[0]
.pinswg_siteaddresstown
showTopThreeArr[key].pinswg_siteaddresstown
: "")}
</div>
{showTopThreeArr[key].pinswg_appellantagent != null && (
<div>
<div className="cardModuleReference">
{showTopThreeArr[key].pinswg_appellantagent !=
846040000 && (
<b>{t("myportal:raised-by-label")}</b>
<b>{t("myportal:raised-by-label")}: </b>
)}
{showTopThreeArr[key].pinswg_appellantagent !=
846040000 &&
(showTopThreeArr[key].pinswg_agentcompanyname !=
null &&
showTopThreeArr[key]
.pinswg_agentcompanyname + ", ") +
null
? showTopThreeArr[key]
.pinswg_agentcompanyname + ", "
: "") +
showTopThreeArr[key].pinswg_agentfirstname +
" " +
showTopThreeArr[key].pinswg_agentlastname}
</div>
)}
{showTopThreeArr[key].pinswg_appellantfirstname != null && (
<div>
<div className="cardModuleReference">
<b>{t("myportal:on-behalf-of-label")}: </b>
{showTopThreeArr[key].pinswg_appellantfirstname +
" " +
showTopThreeArr[key].pinswg_appellantlastname}
</div>
)}
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
showTopThreeArr[key][
"_pinswg_associatedlpa_value@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
: showTopThreeArr[key][
"_pinswg_associatedlpa_value@OData.Community.Display.V1.FormattedValue"
] || ""}
<div className="cardModuleReference">
<b>{router.locale == "cy" ? "ACLl" : "LPA"}:</b>
{router.locale == "cy"
? jsonpath({
path:
'$..[?(@ && @.value=="' +
showTopThreeArr[key][
"_pinswg_associatedlpa_value@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
json: transLookup,
eval: true,
})
: showTopThreeArr[key][
"_pinswg_associatedlpa_value@OData.Community.Display.V1.FormattedValue"
] || ""}
</div>
{topThreeType == "awaitingSubmission" ? (
<div className="carModuleAddress">
Case Incomplete, not submitted
@@ -323,11 +446,13 @@ const TopThree = (props) => {
) : (
""
)}
<div className="cardModuleReference">
<b>{t("myportal:date-raised")}:</b>
{" "}
{raisedDate(showTopThreeArr[key].createdon)}
</div>{" "}
{topThreeType != "watchedCases" && (
<div className="cardModuleReference">
<b>{t("myportal:date-raised")}:</b>
{" "}
{raisedDate(showTopThreeArr[key].createdon)}
</div>
)}
{topThreeType == "watchedCases" &&
props.myReps &&
showTopThreeArr[key].pinswg_representationsubmitted !=
@@ -352,7 +477,7 @@ const TopThree = (props) => {
</div>
)}
</div>
{topThreeType == "watchedCases" && !props.myReps && (
{/* {topThreeType == "watchedCases" && !props.myReps && (
<div className="">
<button
title={t("case:you-have-stopped-watching-label")}
@@ -397,7 +522,7 @@ const TopThree = (props) => {
&mdash;
</button>
</div>
)}
)} */}
</div>
);
});
+150 -80
View File
@@ -21,6 +21,7 @@ import {
import {
setCurrentReference,
setCurrentView,
setRepresentationCapacity,
} from "../../store/currentView/action";
import {
setMyRepresentations,
@@ -45,6 +46,7 @@ const TopThree = (props) => {
setAwaitingSubmissionDetails,
setMyRepresentations,
setMyRepresentationsDetails,
setRepresentationCapacity,
} = props;
const router = useRouter();
@@ -54,9 +56,13 @@ const TopThree = (props) => {
let showTopThreeArr = showTopThree.value;
Object.keys(showTopThreeArr).map((key, index) => {
let createdDate = parseInt(
showTopThreeArr[key].repfile_name.split("-")[3]
);
let createdDate = showTopThreeArr[key].repfile_name.split("_-_");
createdDate =
createdDate[0].replace(
/(?<=\d{4}-\d{2}-\d{2})-(?=\d{2}:\d{2}:\d{2})/,
"T"
) + "Z";
showTopThreeArr[key].createdDate = createdDate;
});
@@ -107,6 +113,13 @@ const TopThree = (props) => {
});
};
const isLPA =
props.accountDetails.accountDetails[
"pinswg_typeofinvolvement@OData.Community.Display.V1.FormattedValue"
] == "LPA"
? true
: false;
const deleteRepItem = (containerID, caseID, repfile) => {
let cookies = parseCookies();
//console.log("sssss", containerID, caseID, repfile);
@@ -154,18 +167,17 @@ const TopThree = (props) => {
};
const repRaisedDate = (datePart) => {
var dateStr = datePart.split("_-_")[0];
var timeStr = dateStr.split("-")[3];
var dateObj = new Date(
datePart.split("-")[0] +
dateStr.split("-")[0] +
"-" +
datePart.split("-")[1] +
dateStr.split("-")[1] +
"-" +
datePart.split("-")[2] +
dateStr.split("-")[2] +
" " +
datePart.split("-")[3].split("_")[0].slice(0, 2) +
":" +
datePart.split("-")[3].split("_")[0].slice(2, 4) +
":" +
datePart.split("-")[3].split("_")[0].slice(4, 6)
timeStr
);
return dateObj.toLocaleString();
@@ -178,63 +190,130 @@ const TopThree = (props) => {
<div className="cardModuleDetails">
<div className="cardModuleReference">
<b>{t("myportal:case-reference")}:</b>
<Link
// href="#"
href={{
pathname:
router.locale == "cy"
? "/fymhorth/representation"
: "/myportal/representation",
query: {
case: showTopThreeArr[key].caseRef,
state: "edit",
},
}}
className="govuk-link--no-underline"
data-id={index}
onClick={() => {
setCurrentReference({
"ticketnumber":
showTopThreeArr[key].ticketnumber,
"currentReference":
showTopThreeArr[key].caseRef,
"currentType": topThreeType,
"incidentid":
showTopThreeArr[key].incidentID,
"appealType":
showTopThreeArr[key].appealType,
"repDetails": showTopThreeArr[key],
});
}}
>
{showTopThreeArr[key].pinswg_name}
</Link>
{showTopThreeArr[key].hasOwnProperty("repComplete") ? (
<b>{showTopThreeArr[key].pinswg_name}</b>
) : (
<Link
// href="#"
href={{
pathname:
router.locale == "cy"
? "/fymhorth/representation"
: "/myportal/representation",
query: {
case: showTopThreeArr[key].caseRef,
state: "edit",
created:
showTopThreeArr[key].repfile_name,
},
}}
className="govuk-link--no-underline"
data-id={index}
onClick={() => {
setCurrentReference({
"ticketnumber":
showTopThreeArr[key].ticketnumber,
"currentReference":
showTopThreeArr[key].caseRef,
"currentType": topThreeType,
"incidentid":
showTopThreeArr[key].incidentID,
"appealType":
showTopThreeArr[key].appealType,
"repDetails": showTopThreeArr[key],
});
isLPA && setRepresentationCapacity("LPA");
}}
>
{showTopThreeArr[key].pinswg_name}
</Link>
)}
{!showTopThreeArr[key].hasOwnProperty(
"repComplete"
) && (
<div className="deleteCase">
<button
title={t(
"case:do-you-want-to-delete-case-label"
)}
className=" cardModuleRemoveCase govuk-link govuk-link--no-underline govuk-link--inverse "
onClick={() => {
confirm(
t(
"case:do-you-want-to-delete-case-label"
) +
showTopThreeArr[key]
.pinswg_name +
"?\n" +
t(
"case:do-you-want-to-delete-case-disclaimer-label"
)
) &&
deleteRepItem(
props.accountDetails
.containerID,
showTopThreeArr[key]
.pinswg_name,
showTopThreeArr[key]
.repfile_name
);
}}
>
&mdash;
</button>
</div>
)}
</div>
<div className="cardModuleReference">
<b>{t("myportal:representation-type")}:</b>
{" "}
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
showTopThreeArr[key].representationType +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: showTopThreeArr[key].representationType || ""}
</div>
<div className="cardModuleReference">
<b>{t("myportal:capacity")}:</b>
{" "}
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
showTopThreeArr[key]
.representationCapacity +
'")].value_cy',
transLookup
)
: showTopThreeArr[key].representationCapacity || ""}
'" ||@.value_cy=="' +
showTopThreeArr[key]
.representationCapacity +
'" )].value_cy',
json: transLookup,
eval: true,
})
: jsonpath({
path:
'$..[?(@ && @.value_cy=="' +
showTopThreeArr[key]
.representationCapacity +
'")].value',
json: transLookup,
eval: true,
}).length > 0
? jsonpath({
path:
'$..[?(@ && @.value_cy=="' +
showTopThreeArr[key]
.representationCapacity +
'")].value',
json: transLookup,
eval: true,
})
: showTopThreeArr[key].representationCapacity}
</div>
<div className="cardModuleReference">
<b>{t("myportal:date-raised")}:</b>
@@ -242,45 +321,33 @@ const TopThree = (props) => {
{repRaisedDate(showTopThreeArr[key].repfile_name)}
</div>{" "}
<div className="cardModuleReference">
<b>LPA:</b>
<b>{router.locale == "cy" ? "ACLl" : "LPA"}:</b>
{" "}
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
showTopThreeArr[key][
"_pinswg_localplanningauthority_value@OData.Community.Display.V1.FormattedValue"
] +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: showTopThreeArr[key][
"_pinswg_localplanningauthority_value@OData.Community.Display.V1.FormattedValue"
] || ""}
</div>
</div>
<div className="">
<button
title={t("case:do-you-want-to-delete-case-label")}
className=" cardModuleRemoveCase govuk-link govuk-link--no-underline govuk-link--inverse "
onClick={() => {
confirm(
t("case:do-you-want-to-delete-case-label") +
showTopThreeArr[key].pinswg_name +
"?\n" +
t(
"case:do-you-want-to-delete-case-disclaimer-label"
)
) &&
deleteRepItem(
props.accountDetails.containerID,
showTopThreeArr[key].pinswg_name,
showTopThreeArr[key].repfile_name
);
}}
>
&mdash;
</button>
{showTopThreeArr[key].hasOwnProperty("repComplete") && (
<div className="cardModuleReference">
<b>
{" "}
{t("myportal:submission-processing-label")}
.....
</b>
</div>
)}
</div>
</div>
);
@@ -343,6 +410,9 @@ const mapDispatchToProps = (dispatch) => {
setMyRepresentationsDetails: (myRepresentationsDetails) => {
dispatch(setMyRepresentationsDetails(myRepresentationsDetails));
},
setRepresentationCapacity: (representationCapacity) => {
dispatch(setRepresentationCapacity(representationCapacity));
},
};
};
+1 -1
View File
@@ -290,7 +290,7 @@ let UploadFile = (props) => {
const uploadAction = await uploadFiles(dataObj, fileObj).then(
(data) => {
console.log("hello", data);
console.log("$1", data);
}
);
// router.push({
File diff suppressed because it is too large Load Diff
+8 -15
View File
@@ -12,9 +12,7 @@ const WatchedCases = (props) => {
const { locale } = router;
const { setCurrentView } = props;
let recordCountVar = props.myReps
? props.watchedCases.mySubmittedReps
: props.watchedCases.watchedCases;
let recordCountVar = props.watchedCases.watchedCases;
return (
<div className="card" id="my-watched-cases-card">
@@ -26,11 +24,7 @@ const WatchedCases = (props) => {
</h3>
<div className="cardModuleContainer">
<TopThree
showTopThree={
props.myReps
? props.watchedCases.mySubmittedReps
: props.watchedCases.watchedCases
}
showTopThree={props.watchedCases.watchedCases}
showDetails={props.watchedCases.watchedCasesDetails}
topThreeType={"watchedCases"}
showLoginCheck={props.showLoginCheck}
@@ -46,11 +40,12 @@ const WatchedCases = (props) => {
<div className="cardVieAll">
<Link
href={
router.locale != "en"
(router.locale != "en"
? "/" +
router.locale +
"/fymhorth/gweldpopeth"
: "/myportal/viewall"
: "/myportal/viewall") +
"?viewKey=watchedCases"
}
className="govuk-link--no-underline"
onClick={() => {
@@ -64,11 +59,9 @@ const WatchedCases = (props) => {
{props.watchedCases.watchedCases["@odata.count"] +
" cases"} */}
{t("myportal:viewall-link-count", {
count: props.myReps
? props.watchedCases.mySubmittedReps.length
: props.watchedCases.watchedCases[
"@odata.count"
],
count: props.watchedCases.watchedCases[
"@odata.count"
],
})}
</Link>
</div>
+58 -13
View File
@@ -48,6 +48,7 @@ const RenderTextfield = ({
id={id}
type={type}
disabled={disabled ? true : false}
maxLength={custom.maxFieldLength || ""}
/>
</div>
</>
@@ -93,6 +94,7 @@ const RenderMultiline = ({
{...input}
rows={rows}
className={className}
maxLength="2000"
></textarea>
</div>
</>
@@ -453,18 +455,35 @@ let AboutYou = (props) => {
const contactPref =
router.locale == "cy" ? ["Ebost", "Post"] : ["Email", "Post"];
const required = (value) => (value ? undefined : "Is required");
const required = (value) =>
value ? undefined : t("newappeal:is-required-label");
const emojicheck = (value) => {
let errors;
// Check for emojis using a regular expression
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;
if (emojiRegex.test(value)) {
errors = t("newappeal:emojis-not-allowed-label");
}
return errors;
};
const emailRegex =
/(?:[a-z0-9!#$%&'*+\/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+\/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])/gi;
const email = (value) =>
value && !emailRegex.test(value) ? "Invalid email address" : undefined;
value && !emailRegex.test(value)
? t("newappeal:emojis-not-allowed-label")
: undefined;
const phoneNumber = (value) =>
value &&
!/^(?:(?:\(?(?:0(?:0|11)\)?[\s-]?\(?|\+)44\)?[\s-]?(?:\(?0\)?[\s-]?)?)|(?:\(?0))(?:(?:\d{5}\)?[\s-]?\d{4,5})|(?:\d{4}\)?[\s-]?(?:\d{5}|\d{3}[\s-]?\d{3}))|(?:\d{3}\)?[\s-]?\d{3}[\s-]?\d{3,4})|(?:\d{2}\)?[\s-]?\d{4}[\s-]?\d{4}))(?:[\s-]?(?:x|ext\.?|\#)\d{3,4})?$/i.test(
value
)
? "Invalid phone number"
? t("newappeal:invalid-phonenumber-label")
: undefined;
const onHandleSubmit = (values) => {
@@ -524,9 +543,9 @@ let AboutYou = (props) => {
component={RenderTextfield}
type="text"
className="govuk-input govuk-input--width-20"
validate={[required]}
validate={[required, emojicheck]}
label={t("newappeal:about-you-on-behalf-label")}
maxFieldLength="25"
maxFieldLength="200"
/>
<div className="govuk-form-group">
<details className="govuk-details" data-module="govuk-details">
@@ -562,10 +581,11 @@ let AboutYou = (props) => {
component={RenderTextfield}
type="text"
className="govuk-input govuk-input--width-20"
validate={[required]}
validate={[required, emojicheck]}
label={t(
"newappeal:about-you-appellant-contact-details-firstname-label"
)}
maxFieldLength="200"
/>
<Field
name={"pinswg_appellantlastname"}
@@ -573,10 +593,11 @@ let AboutYou = (props) => {
component={RenderTextfield}
type="text"
className="govuk-input govuk-input--width-20"
validate={[required]}
validate={[required, emojicheck]}
label={t(
"newappeal:about-you-appellant-contact-details-lastname-label"
)}
maxFieldLength="200"
/>
<Field
name={"pinswg_appellantaddress"}
@@ -584,11 +605,12 @@ let AboutYou = (props) => {
component={RenderMultiline}
type="textarea"
className="govuk-textarea govuk-input--width-20"
validate={[required]}
validate={[required, emojicheck]}
label={t(
"newappeal:about-you-appellant-contact-details-address-label"
)}
rows={4}
maxFieldLength="2000"
/>
<Field
name={"pinswg_appellantemailaddress"}
@@ -600,12 +622,13 @@ let AboutYou = (props) => {
label={t(
"newappeal:about-you-appellant-contact-details-email-label"
)}
maxFieldLength="200"
/>
<Field
name={"pinswg_appellantphonenumber"}
id={"pinswg_appellantphonenumber"}
component={RenderTextfield}
type="number"
type="text"
className="govuk-input govuk-input--width-20"
validate={[required, phoneNumber]}
label={t(
@@ -660,6 +683,7 @@ let AboutYou = (props) => {
label={t(
"newappeal:about-you-appellant-contact-details-firstname-label"
)}
maxFieldLength="200"
/>
<Field
name={"pinswg_appellantlastname"}
@@ -671,6 +695,7 @@ let AboutYou = (props) => {
label={t(
"newappeal:about-you-appellant-contact-details-lastname-label"
)}
maxFieldLength="200"
/>
<Field
name={"pinswg_appellantaddress"}
@@ -683,6 +708,7 @@ let AboutYou = (props) => {
"newappeal:about-you-appellant-contact-details-address-label"
)}
rows={4}
maxFieldLength="2000"
/>
<Field
name={"pinswg_appellantemailaddress"}
@@ -694,6 +720,7 @@ let AboutYou = (props) => {
label={t(
"newappeal:about-you-appellant-contact-details-email-label"
)}
maxFieldLength="200"
/>
<Field
name={"pinswg_appellantphonenumber"}
@@ -706,6 +733,18 @@ let AboutYou = (props) => {
"newappeal:about-you-appellant-contact-details-phone-label"
)}
/>
<Radiofield
name={"pinswg_languagepreference"}
datafieldname={"pinswg_languagepreference"}
label={t(
"newappeal:about-you-agent-language-preferences-label"
)}
options="[846040001|newappeal:about-you-agent-language-preferences-value-welsh,846040000|newappeal:about-you-agent-language-preferences-value-english]"
id={"pinswg_languagepreference"}
className="govuk-radios__input"
validate={[required]}
errorMsg={t("newappeal:select-an-option-label")}
/>
<h2 className="govuk-heading-s">
{t("newappeal:about-you-agent-contact-details")}
</h2>{" "}
@@ -719,6 +758,7 @@ let AboutYou = (props) => {
label={t(
"newappeal:about-you-agent-contact-details-companyname-label"
)}
maxFieldLength="200"
/>
<Field
name={"pinswg_agentreference"}
@@ -728,6 +768,7 @@ let AboutYou = (props) => {
className="govuk-input govuk-input--width-20"
// validate={[required]}
label={t("newappeal:about-you-agent-reference-label")}
maxFieldLength="200"
/>
<Field
name={"pinswg_agentfirstname"}
@@ -739,6 +780,7 @@ let AboutYou = (props) => {
label={t(
"newappeal:about-you-agent-contact-details-firstname-label"
)}
maxFieldLength="200"
/>
<Field
name={"pinswg_agentlastname"}
@@ -750,6 +792,7 @@ let AboutYou = (props) => {
label={t(
"newappeal:about-you-agent-contact-details-lastname-label"
)}
maxFieldLength="200"
/>{" "}
<Field
name={"pinswg_agentaddress"}
@@ -762,6 +805,7 @@ let AboutYou = (props) => {
"newappeal:about-you-agent-contact-details-address-label"
)}
rows={4}
maxFieldLength="2000"
/>
<Field
name={"pinswg_agentemailaddress"}
@@ -773,12 +817,13 @@ let AboutYou = (props) => {
label={t(
"newappeal:about-you-agent-contact-details-email-label"
)}
maxFieldLength="200"
/>
<Field
name={"pinswg_agentphonenumber"}
id={"pinswg_agentphonenumber"}
component={RenderTextfield}
type="number"
type="text"
className="govuk-input govuk-input--width-20"
validate={[required, phoneNumber]}
label={t(
@@ -786,13 +831,13 @@ let AboutYou = (props) => {
)}
/>
<Radiofield
name={"pinswg_languagepreference"}
datafieldname={"pinswg_languagepreference"}
name={"pinswg_agentlanguagepreference"}
datafieldname={"pinswg_agentlanguagepreference"}
label={t(
"newappeal:about-you-agent-language-preferences-label"
)}
options="[846040001|newappeal:about-you-agent-language-preferences-value-welsh,846040000|newappeal:about-you-agent-language-preferences-value-english]"
id={"pinswg_languagepreference"}
id={"pinswg_agentlanguagepreference"}
className="govuk-radios__input"
validate={[required]}
errorMsg={t("newappeal:select-an-option-label")}
+277 -134
View File
@@ -3,7 +3,13 @@ import useTranslation from "next-translate/useTranslation";
import { useRouter } from "next/router";
import { connect } from "react-redux";
import xpath from "xpath";
import { getPickListLabel, getRadioLabel } from "../../components/utils";
import {
getPickListLabel,
getRadioLabel,
bytesToSize,
getDocumentTypeFromFilename,
getThumbnailIconByExtension,
} from "../../components/utils";
import fieldLookup from "../../data/crmfieldlookuptranslations.json";
import {
@@ -57,15 +63,31 @@ let BuildCheckRow = (props) => {
const { locale } = router;
const { appealtypes } = router.query;
let formObj = jsonpath("$['" + appealtypes + "']", fieldLookup);
let formObj = jsonpath({
path: "$['" + appealtypes + "']",
json: fieldLookup,
eval: true,
});
let labelTrans =
router.locale == "cy"
? jsonpath('$..[?(@.value=="' + label + '")].value_cy', formObj)
? jsonpath({
path: '$..[?(@ && @.value=="' + label + '")].value_cy',
json: formObj,
eval: true,
})
: label;
return labelTrans;
};
function isObjectAndNotEmpty(value) {
return (
value !== null &&
typeof value === "object" &&
Object.keys(value).length > 0
);
}
return (
<>
{Object.keys(rowXML).map((key, index) => {
@@ -79,11 +101,18 @@ let BuildCheckRow = (props) => {
var rows = xpath.select("//label/@description", doc);
var fieldtype = xpath.select("//@classid", doc);
var datafieldname = xpath.select("//@datafieldname", doc);
const isRequiredField = jsonpath(
"$..value[?(@.LogicalName=='" +
const isRequiredField = jsonpath({
path:
"$..value[?(@ && @.LogicalName=='" +
datafieldname[0].value +
"')]",
mandatoryFieldsData
json: mandatoryFieldsData,
eval: true,
});
var documentTypeCode = xpath.select(
"//@ishareDocumentCode",
doc
);
// if (datafieldname[0].value.indexOf("fileUpload") > 0) {
@@ -108,138 +137,252 @@ let BuildCheckRow = (props) => {
// ]
// );
if (
typeof props.props.form["appealForm"].values[
datafieldname[0].value
] != "undefined"
) {
if (typeof isRequiredField[0] != "undefined") {
if (
isRequiredField[0].RequiredLevel.Value != "None"
) {
return (
// if (
// typeof props.props.form["appealForm"].values[
// datafieldname[0].value
// ] != "undefined"
// ) {
return (
<div className="govuk-summary-list__row" key={key}>
<dt className="govuk-summary-list__key">
{FieldsTranslations(rows[0].value)}
</dt>
<dd className="govuk-summary-list__value">
{fieldtype[0].value ==
"{E0DECE4B-6666-4a8f-A065-082708572369}" ? (
<div
className="govuk-summary-list__row"
key={key}
>
<dt className="govuk-summary-list__key">
{FieldsTranslations(rows[0].value)}
</dt>
<dd className="govuk-summary-list__value">
{fieldtype[0].value ==
"{5B773807-9FB2-42db-97C3-7A91EFF8ADFF}"
? formatDate(
props.props.form[
"appealForm"
].values[
datafieldname[0].value
]
)
: fieldtype[0].value ==
"{3EF39988-22BB-4f0b-BBBE-64B5A3748AEE}"
? getPickListLabel(
props.props.formData
.pickListData,
datafieldname[0].value,
props.props.form[
"appealForm"
].values[
datafieldname[0].value
]
)
: fieldtype[0].value ==
"{07FAC785-CD58-4f9f-ABB3-4B7DDC6ED5ED}"
? getRadioLabel(
props.props.formData
.pickListData,
datafieldname[0].value,
props.props.form[
"appealForm"
].values[
datafieldname[0].value
]
)
: fieldtype[0].value ==
"{16D63FD6-119B-4353-BDCA-18358721C3FE}"
? console.log(
props.props.form[
"appealForm"
].values[
datafieldname[0].value
]
)
: fieldtype[0].value ==
"{0273EDBD-AC1D-40d3-9FB2-095C621B552D}"
? props.props.form[
"appealForm"
].values[
datafieldname[0].value[0]
].map((tenant, index) => {
return (
<div
key={index}
style={{
display:
"flex",
}}
>
<div className="govuk-!-width-one-half">
{
tenant.pinswg_agriculturaltenantname
}
</div>
<div className="govuk-!-width-one-half">
Served:{" "}
{formatDate(
tenant.dateserved
)}
</div>
</div>
);
})
: props.props.form["appealForm"]
.values[
datafieldname[0].value
]}
</dd>
<dd className="govuk-summary-list__actions">
{rows[0].value !=
"Case reference" && (
<a
className="govuk-link"
href="#"
onClick={() => {
setCurrentSection(
whichSection
);
dangerouslySetInnerHTML={{
__html: props.props.form[
"appealForm"
].values[datafieldname[0].value],
}}
/>
) : fieldtype[0].value ==
"{5B773807-9FB2-42db-97C3-7A91EFF8ADFF}" ? (
formatDate(
props.props.form["appealForm"].values[
datafieldname[0].value
]
)
) : fieldtype[0].value ==
"{3EF39988-22BB-4f0b-BBBE-64B5A3748AEE}" ? (
getPickListLabel(
props.props.formData.pickListData,
datafieldname[0].value,
props.props.form["appealForm"].values[
datafieldname[0].value
]
)
) : fieldtype[0].value ==
"{07FAC785-CD58-4f9f-ABB3-4B7DDC6ED5ED}" ? (
getRadioLabel(
props.props.formData.pickListData,
datafieldname[0].value,
props.props.form["appealForm"].values[
datafieldname[0].value
]
)
) : fieldtype[0].value ==
"{67FAC785-CD58-4f9f-ABB3-4B7DDC6ED5ED}" ? (
props.props.form["appealForm"].values[
datafieldname[0].value
] == "false" ? (
router.locale == "cy" ? (
"Nac ydw"
) : (
"No"
)
) : router.locale == "cy" ? (
"Oes"
) : (
"Yes"
)
) : fieldtype[0].value ==
"{16D63FD6-119B-4353-BDCA-18358721C3FE}" ? (
<>
{props.filesArray.map((blob, i) => (
<div key={i}>
{getDocumentTypeFromFilename(
blob.name
) ===
documentTypeCode[0]
.value && (
<div
style={{
display: "flex",
alignItems:
"flex-start",
}}
className="govuk-!-margin-bottom-2"
>
<img
style={{
minWidth: "50",
width: "50",
}}
src={getThumbnailIconByExtension(
blob.name
)}
alt={blob.name}
width="50"
/>
<span
style={{
maxWidth: "85%",
}}
className="govuk-body govuk-!-font-size-14 govuk-!-margin-left-2"
>
{blob.name} -{" "}
{bytesToSize(
blob.size
)}{" "}
</span>
</div>
)}
</div>
))}
<br />
{typeof props.props.form["appealForm"]
.values[datafieldname[0].value] !=
"undefined" &&
props.props.form[
"appealForm"
].values[
datafieldname[0].value
].map(
(blob, i) =>
isObjectAndNotEmpty(
blob
) && (
<div key={i}>
{getDocumentTypeFromFilename(
blob.name
) ===
documentTypeCode[0]
.value && (
<div
style={{
display:
"flex",
alignItems:
"flex-start",
}}
className="govuk-!-margin-bottom-2"
>
<img
style={{
minWidth:
"50",
width: "50",
}}
src={getThumbnailIconByExtension(
blob.name
)}
alt={
blob.name
}
width="50"
/>
<span
style={{
maxWidth:
"85%",
}}
className="govuk-body govuk-!-font-size-14 govuk-!-margin-left-2"
>
{
blob.name
}{" "}
-{" "}
{bytesToSize(
blob.size
)}{" "}
</span>
</div>
)}
</div>
)
)}
</>
) : fieldtype[0].value ==
"{0273EDBD-AC1D-40d3-9FB2-095C621B552D}" ? (
typeof props.props.form["appealForm"]
.values[datafieldname[0].value] !=
"undefined" &&
props.props.form["appealForm"].values[
datafieldname[0].value
] != null ? (
props.props.form["appealForm"].values[
datafieldname[0].value
].map((tenant, index) => {
console.log(
typeof tenant.pinswg_owners_firstname
);
return typeof tenant.pinswg_owners_firstname !=
"undefined" ||
typeof tenant.pinswg_agriculturaltenantname_firstname !=
"undefined" ? (
<div
key={index}
style={{
display: "flex",
}}
>
{" "}
{t(
"newappeal:change-link-label"
)}
<span className="govuk-visually-hidden">
{" "}
{FieldsTranslations(
rows[0].value
<div className="govuk-!-width-one-half">
{tenant?.pinswg_agriculturaltenantname_firstname &&
tenant.pinswg_agriculturaltenantname_firstname +
" " +
tenant.pinswg_agriculturaltenantname_lastname}
{tenant?.pinswg_owners_firstname &&
tenant.pinswg_owners_firstname +
" " +
tenant.pinswg_owners_lastname}
</div>
<div className="govuk-!-width-one-half">
Served:{" "}
{formatDate(
tenant.dateserved
)}
</span>
</a>
)}
</dd>
</div>
);
} else {
return null;
}
} else {
return null;
}
} else {
return null;
}
</div>
</div>
) : (
""
);
})
) : (
"N/A"
)
) : (
props.props.form["appealForm"].values[
datafieldname[0].value
]
)}
</dd>
<dd className="govuk-summary-list__actions">
{rows[0].value != "Temporary reference" && (
<a
className="govuk-link"
href="#"
onClick={() => {
setCurrentSection(whichSection);
}}
>
{" "}
{t("newappeal:change-link-label")}
<span className="govuk-visually-hidden">
{" "}
{FieldsTranslations(rows[0].value)}
</span>
</a>
)}
</dd>
</div>
);
// }
}
})}
</>
+73 -43
View File
@@ -14,7 +14,11 @@ import {
import BuildCheckRow from "./buildcheckrow";
import { generateAppealPDF, sendCaseCompleteMessage } from "../../actions";
import { bytesToSize, getThumbnailIconByExtension } from "../utils";
import {
bytesToSize,
getThumbnailIconByExtension,
updateLinks,
} from "../utils";
let BuildCheckSection = (props) => {
useEffect(() => {
@@ -71,17 +75,19 @@ let BuildCheckSection = (props) => {
let buildAppealFilesArray = [];
//console.log("attached docs: - ", buildAppealFilesArray);
buildAppealFilesArray = props.props.form.appealForm.values.filesList || [];
buildAppealFilesArray = props.props.appealType.fileList?.value[0] || [];
//let filesUploadObj = buildAppealFilesArray;
// let filesUploadObj = props.appealType.fileList.hasOwnProperty("value")
// ? props.appealType.fileList.value[0]
// : [];
let filesUploadObj = props.appealType.fileList.value[0];
for (let key in filesUploadObj) {
typeof filesUploadObj[key].name != "undefined" &&
buildAppealFilesArray.push({
"name": filesUploadObj[key].name,
"size": filesUploadObj[key].contentLength,
});
}
// for (let key in filesUploadObj) {
// typeof filesUploadObj[key].name != "undefined" &&
// buildAppealFilesArray.push({
// "name": filesUploadObj[key].name,
// "size": filesUploadObj[key].contentLength,
// });
// }
buildAppealFilesArray.filter(function (item, idx) {
return item.name;
@@ -105,7 +111,10 @@ let BuildCheckSection = (props) => {
let pdfObj = props.props.form.appealForm.values;
pdfObj = updateLinks(pdfObj);
Object.assign(pdfObj, {
"filesList": buildAppealFilesArray,
"containerID": props.props.accountDetails.containerID,
"casefolderID": props.appealType.caseReference.ticketnumber,
});
@@ -118,37 +127,57 @@ let BuildCheckSection = (props) => {
const { locale } = router;
const { appealtypes } = router.query;
let formObj = jsonpath("$['" + appealtypes + "']", fieldLookup);
let formObj = jsonpath({
path: "$['" + appealtypes + "']",
json: fieldLookup,
eval: true,
});
let labelTrans =
router.locale == "cy"
? jsonpath('$..[?(@.value=="' + label + '")].value_cy', formObj)
? jsonpath({
path: '$..[?(@ && @.value=="' + label + '")].value_cy',
json: formObj,
eval: true,
})
: label;
return labelTrans;
};
const finaliseAppeal = async () => {
setFinaliseAppealProcess(true);
//console.log("finalising appeal:");
await generateAppealPDF(
pdfObj,
props.props.accountDetails.containerID,
props.appealType.caseReference.ticketnumber,
router.query.appealtypes,
pdfObj.filesList
// props.appealType.fileList
)
.then((data) => {
console.log("have generated pdf:", data);
sendCaseCompleteMessage(
props.props.accountDetails.containerID,
props.appealType.caseReference.ticketnumber
);
})
.then(() => {
//console.log("have sent complete message :");
setCurrentSection(9999);
});
//console.log("finalising appeal:", pdfObj);
const uniqueArray = pdfObj.filesList.filter(
(value, index, self) =>
index === self.findIndex((t) => t.name === value.name)
);
pdfObj.filesList = uniqueArray;
confirmSections
? (setFinaliseAppealProcess(true),
await generateAppealPDF(
pdfObj,
props.props.accountDetails.containerID,
props.appealType.caseReference.ticketnumber,
router.query.appealtypes,
pdfObj.filesList
// props.appealType.fileList
)
.then((data) => {
console.log("have generated pdf:", data);
sendCaseCompleteMessage(
props.props.accountDetails.containerID,
props.appealType.caseReference.ticketnumber,
props.props.accountDetails.accountDetails
.pinswg_typeofinvolvement
);
})
.then(() => {
//console.log("have sent complete message :");
setCurrentSection(9999);
}))
: setConfirmSections(false);
};
return (
@@ -172,11 +201,12 @@ let BuildCheckSection = (props) => {
props={props}
key={key}
mandatoryFieldsData={mandatoryFieldsData}
filesArray={buildAppealFilesArray}
/>
</div>
))}
</dl>
<dl className="govuk-summary-list govuk-!-margin-bottom-9 at-summary-list">
{/* <dl className="govuk-summary-list govuk-!-margin-bottom-9 at-summary-list">
{buildAppealFilesArray.length > 0
? buildAppealFilesArray.map((blob, i) => {
return (
@@ -227,18 +257,19 @@ let BuildCheckSection = (props) => {
);
})
: ""}
</dl>
</dl> */}
</div>
{finaliseAppealProcess ? (
<div className="">
<h3 className="govuk-heading-m govuk-!-margin-top-9">
Finalising your appeal submission
{t("newappeal:new-appeal-finalising-heading")}
</h3>
<p className="govuk-body">
Currenly uploading files and finalising your appeal
submission
{t("newappeal:new-appeal-finalising-label")}
</p>
<p className="govuk-body textloading">
{t("newappeal:new-appeal-wait-label")}
</p>
<p className="govuk-body textloading">Please wait</p>
</div>
) : (
<>
@@ -282,6 +313,7 @@ let BuildCheckSection = (props) => {
"newappeal:new-appeal-check-confirm-paragraph-two"
)}{" "}
<Link
target="_blank"
href={t(
"newappeal:new-appeal-check-confirm-paragraph-two-link"
)}
@@ -308,9 +340,7 @@ let BuildCheckSection = (props) => {
<a
className="govuk-link"
href="#"
onClick={() =>
setCurrentSection(sectionCount - 1)
}
onClick={() => setCurrentSection(sectionCount)}
>
{t("common:back-link")}
</a>
+216 -228
View File
@@ -17,239 +17,227 @@ import {
} from "../elements";
export default function BuildField(props) {
let { t } = useTranslation();
const { t } = useTranslation();
const { locale } = useRouter();
const router = useRouter();
const { locale } = router;
const { fieldType, label, datafieldname, mandatoryFieldData } = props;
const parser = new DOMParser();
// Destructure frequently used props for clarity
const {
fieldType,
label,
datafieldname,
picklistData,
validation,
hint,
maxFieldLength,
dateStart,
dateEnd,
documentTypeCode,
uploadCount,
setUploadCount,
setFileCount,
parentField,
parentFieldShowOnValue,
requiredDocumentValue,
requiredDocumentLabel,
setDocumentsList,
documentList,
maxSubField,
datafieldcontent,
} = props;
const whichFieldType = (classid) => {
//console.log(props.datafieldname, classid);
// Extract deeply nested props for convenience (avoid props.props.props all over)
// Defensive checks in case nested props don't exist
const appealType = props?.props?.props?.appealType || {};
const form = props?.props?.props?.form || {};
const formProps = props?.props?.props?.props?.form || {};
const setFilesForAppeal = props?.props?.props?.setFilesForAppeal;
const accountDetails = props?.props?.props?.props?.accountDetails || {};
const ticketnumber = appealType.caseReference?.ticketnumber || "";
const fileList = appealType.fileList || {};
const containerID = accountDetails.containerID || "";
switch (classid) {
case "{270BD3DB-D9AF-4782-9025-509E298DEC0A}":
return (
<ReadOnlyfield
name={props.datafieldname}
label={props.label}
value={
props.props.props.appealType.caseReference
.ticketnumber
}
props={props}
ticketnumber={
props.props.props.appealType.caseReference
.ticketnumber
}
/>
);
break;
case "{3EF39988-22BB-4f0b-BBBE-64B5A3748AEE}":
return (
<PickList
name={props.datafieldname}
label={props.label}
datafieldname={props.datafieldname}
picklistData={props.picklistData}
validation={props.validation}
hint={props.hint}
/>
);
break;
case "{67FAC785-CD58-4f9f-ABB3-4B7DDC6ED5ED}":
return (
<YesNofield
name={props.datafieldname}
label={props.label}
requiredDocumentValue={props.requiredDocumentValue}
requiredDocumentLabel={props.requiredDocumentLabel}
validation={props.validation}
setDocumentsList={props.setDocumentsList}
documentList={props.documentList}
form={props.props.props.form}
formProps={props.props.props.props.form}
parentField={props.parentField}
parentFieldShowOnValue={props.parentFieldShowOnValue}
/>
);
break;
case "{07FAC785-CD58-4f9f-ABB3-4B7DDC6ED5ED}":
return (
<Radiofield
name={props.datafieldname}
label={props.label}
datafieldname={props.datafieldname}
options={props.datafieldcontent}
inline={false}
hint={props.hint}
form={props.props.props.form}
formProps={props.props.props.props.form}
parentField={props.parentField}
parentFieldShowOnValue={props.parentFieldShowOnValue}
validation={props.validation}
setDocumentsList={props.setDocumentsList}
documentList={props.documentList}
requiredDocumentValue={props.requiredDocumentValue}
requiredDocumentLabel={props.requiredDocumentLabel}
/>
);
break;
case "{4273EDBD-AC1D-40d3-9FB2-095C621B552D}":
const required = (value) => (value ? undefined : "Is required");
return (
<Textfield
name={props.datafieldname}
label={props.label}
props={props}
ticketnumber={
props.props.props.appealType.caseReference
.ticketnumber
}
form={props.props.props.form}
formProps={props.props.props.props.form}
parentField={props.parentField}
parentFieldShowOnValue={props.parentFieldShowOnValue}
validation={props.validation}
hint={props.hint}
maxFieldLength={props.maxFieldLength}
/>
);
break;
case "{5B773807-9FB2-42db-97C3-7A91EFF8ADFF}":
return (
<DateFieldPicker
name={props.datafieldname}
label={props.label}
form={props.props.props.form}
formProps={props.props.props.props.form}
parentField={props.parentField}
parentFieldShowOnValue={props.parentFieldShowOnValue}
validation={props.validation}
dateStart={props.dateStart}
dateEnd={props.dateEnd}
/>
);
break;
case "{E0DECE4B-6FC8-4a8f-A065-082708572369}":
return (
<MultiLinefield
name={props.datafieldname}
label={props.label}
form={props.props.props.form}
formProps={props.props.props.props.form}
parentField={props.parentField}
parentFieldShowOnValue={props.parentFieldShowOnValue}
validation={props.validation}
maxFieldLength={props.maxFieldLength}
hint={props.hint}
/>
);
break;
case "{E0DECE4B-6666-4a8f-A065-082708572369}":
return (
<RichMultiLinefield
name={props.datafieldname}
label={props.label}
form={props.props.props.form}
formProps={props.props.props.props.form}
parentField={props.parentField}
parentFieldShowOnValue={props.parentFieldShowOnValue}
validation={props.validation}
maxFieldLength={props.maxFieldLength}
hint={props.hint}
/>
);
break;
case "{C6D124CA-7EDA-4a60-AEA9-7FB8D318B68F}":
return (
<NumericField
name={props.datafieldname}
label={props.label}
form={props.props.props.form}
formProps={props.props.props.props.form}
validation={props.validation}
parentField={props.parentField}
parentFieldShowOnValue={props.parentFieldShowOnValue}
maxFieldLength={props.maxFieldLength}
/>
);
break;
case "{C3EFE0C3-0EC6-42be-8349-CBD9079DFD8E}":
return (
<DecimalField
name={props.datafieldname}
label={props.label}
form={props.props.props.form}
formProps={props.props.props.props.form}
validation={props.validation}
parentField={props.parentField}
parentFieldShowOnValue={props.parentFieldShowOnValue}
maxFieldLength={props.maxFieldLength}
/>
);
break;
case "{16D63FD6-119B-4353-BDCA-18358721C3FE}":
return (
<div className="govuk-!-margin-bottom-9">
<FileUploadField
name={props.datafieldname}
label={props.label}
ticketnumber={
props.props.props.props.appealType.caseReference
.ticketnumber
}
documentTypeCode={props.documentTypeCode}
hint={props.hint}
fileList={
props.props.props.props.appealType.fileList
}
setFilesForAppeal={
props.props.props.setFilesForAppeal
}
containerID={
props.props.props.props.accountDetails
.containerID
}
/>
</div>
);
break;
case "{0273EDBD-AC1D-40d3-9FB2-095C621B552D}":
return (
<FieldArrayForm
name={props.datafieldname}
label={props.label}
form={props.props.props.form}
formProps={props.props.props.props.form}
parentField={props.parentField}
parentFieldShowOnValue={props.parentFieldShowOnValue}
/>
);
case "{9EF39988-22BB-4f0b-BBBE-64B5A3748AEE}":
return (
<CheckBoxfield
name={props.datafieldname}
label={props.label}
props={props}
form={props.props.props.form}
formProps={props.props.props.props.form}
parentField={props.parentField}
parentFieldShowOnValue={props.parentFieldShowOnValue}
validation={props.validation}
/>
);
break;
default:
return (
<Textfield name={props.datafieldname} label={props.label} />
);
}
// Mapping fieldType to components
const fieldTypeMap = {
"{270BD3DB-D9AF-4782-9025-509E298DEC0A}": (
<ReadOnlyfield
name={datafieldname}
label={label}
value={ticketnumber}
props={props}
ticketnumber={ticketnumber}
/>
),
"{3EF39988-22BB-4f0b-BBBE-64B5A3748AEE}": (
<PickList
name={datafieldname}
label={label}
datafieldname={datafieldname}
picklistData={picklistData}
validation={validation}
hint={hint}
/>
),
"{67FAC785-CD58-4f9f-ABB3-4B7DDC6ED5ED}": (
<YesNofield
name={datafieldname}
label={label}
requiredDocumentValue={requiredDocumentValue}
requiredDocumentLabel={requiredDocumentLabel}
validation={validation}
setDocumentsList={setDocumentsList}
documentList={documentList}
form={form}
formProps={formProps}
parentField={parentField}
parentFieldShowOnValue={parentFieldShowOnValue}
/>
),
"{07FAC785-CD58-4f9f-ABB3-4B7DDC6ED5ED}": (
<Radiofield
name={datafieldname}
label={label}
datafieldname={datafieldname}
options={datafieldcontent}
inline={false}
hint={hint}
form={form}
formProps={formProps}
parentField={parentField}
parentFieldShowOnValue={parentFieldShowOnValue}
validation={validation}
setDocumentsList={setDocumentsList}
documentList={documentList}
requiredDocumentValue={requiredDocumentValue}
requiredDocumentLabel={requiredDocumentLabel}
/>
),
"{4273EDBD-AC1D-40d3-9FB2-095C621B552D}": (
<Textfield
name={datafieldname}
label={label}
props={props}
ticketnumber={ticketnumber}
form={form}
formProps={formProps}
parentField={parentField}
parentFieldShowOnValue={parentFieldShowOnValue}
validation={validation}
hint={hint}
maxFieldLength={maxFieldLength}
/>
),
"{5B773807-9FB2-42db-97C3-7A91EFF8ADFF}": (
<DateFieldPicker
name={datafieldname}
label={label}
form={form}
formProps={formProps}
parentField={parentField}
parentFieldShowOnValue={parentFieldShowOnValue}
validation={validation}
dateStart={dateStart}
dateEnd={dateEnd}
hint={hint}
/>
),
"{E0DECE4B-6FC8-4a8f-A065-082708572369}": (
<MultiLinefield
name={datafieldname}
label={label}
form={form}
formProps={formProps}
parentField={parentField}
parentFieldShowOnValue={parentFieldShowOnValue}
validation={validation}
maxFieldLength={maxFieldLength}
hint={hint}
/>
),
"{E0DECE4B-6666-4a8f-A065-082708572369}": (
<RichMultiLinefield
name={datafieldname}
label={label}
form={form}
formProps={formProps}
parentField={parentField}
parentFieldShowOnValue={parentFieldShowOnValue}
validation={validation}
maxFieldLength={maxFieldLength}
hint={hint}
/>
),
"{C6D124CA-7EDA-4a60-AEA9-7FB8D318B68F}": (
<NumericField
name={datafieldname}
label={label}
form={form}
formProps={formProps}
validation={validation}
parentField={parentField}
parentFieldShowOnValue={parentFieldShowOnValue}
maxFieldLength={maxFieldLength}
/>
),
"{C3EFE0C3-0EC6-42be-8349-CBD9079DFD8E}": (
<DecimalField
name={datafieldname}
label={label}
form={form}
formProps={formProps}
validation={validation}
parentField={parentField}
parentFieldShowOnValue={parentFieldShowOnValue}
maxFieldLength={maxFieldLength}
/>
),
"{16D63FD6-119B-4353-BDCA-18358721C3FE}": (
<div className="govuk-!-margin-bottom-9">
<FileUploadField
name={datafieldname}
label={label}
ticketnumber={ticketnumber}
documentTypeCode={documentTypeCode}
hint={hint}
fileList={fileList}
setFilesForAppeal={setFilesForAppeal}
containerID={containerID}
uploadCount={uploadCount}
setFileCount={setFileCount}
setUploadCount={setUploadCount}
props={props?.props?.props}
/>
</div>
),
"{0273EDBD-AC1D-40d3-9FB2-095C621B552D}": (
<FieldArrayForm
name={datafieldname}
label={label}
form={form}
formProps={formProps}
parentField={parentField}
parentFieldShowOnValue={parentFieldShowOnValue}
maxSubField={maxSubField}
/>
),
"{9EF39988-22BB-4f0b-BBBE-64B5A3748AEE}": (
<CheckBoxfield
name={datafieldname}
label={label}
props={props}
form={form}
formProps={formProps}
parentField={parentField}
parentFieldShowOnValue={parentFieldShowOnValue}
validation={validation}
/>
),
};
return (
<div className="govuk-grid-row">{whichFieldType(props.fieldType)}</div>
<div className="govuk-grid-row">
{fieldTypeMap[fieldType] || (
<Textfield name={datafieldname} label={label} />
)}
</div>
);
}
+143 -171
View File
@@ -4,31 +4,65 @@ import { connect } from "react-redux";
import { setCurrentSection } from "../../store/appealType/action";
import { FieldsTranslations } from "../elements";
const BuildProgress = (props) => {
let { t } = useTranslation();
const BuildProgress = ({
progObj,
titleList,
currentSection,
documentListObj,
formObjXML,
mandatoryFieldsData,
gotoSection,
setCurrentSection,
props: outerProps,
}) => {
const { t } = useTranslation();
const router = useRouter();
const { locale } = router;
const {
progObj,
titleList,
currentSection,
documentListObj,
formObjXML,
mandatoryFieldsData,
gotoSection,
setCurrentSection,
} = props;
const parser = new DOMParser();
// Helper to safely access nested form values
const getFormValue = (field) =>
outerProps?.props?.form?.appealForm?.values?.[field];
//const progObj = getProgressObj(
// formObjXML,
// titleList,
// mandatoryFieldsData,
// props
// );
const renderDocumentList = () => {
const formValues = outerProps?.props?.form?.appealForm?.values || {};
//console.log(progObj);
return (
<>
<li>{t("newappeal:application-form")}</li>
{formValues.pinswg_developmentdescriptionchanged === "true" && (
<li>Description of development change confirmation</li>
)}
{formValues.pinswg_caseworkreason === "846040005" && (
<li>{t("newappeal:registration-of-application-letter")}</li>
)}
{formValues.pinswg_caseworkreason === "846040000" && (
<li>Decision notice</li>
)}
{formValues.pinswg_attachsoc === "true" && (
<li>{t("newappeal:statement-of-case")}</li>
)}
{formValues.pinswg_attachcostapplication === "true" && (
<li>{t("newappeal:cost-application")}</li>
)}
{formValues.pinswg_s106unilateralsubmitted === "true" && (
<li>Planning obligation (S106/Unilateral)</li>
)}
{/* Additional document list items from documentListObj if needed */}
{/* {Object.entries(documentListObj).map(([key, value]) => (
<li key={key}>{value}</li>
))} */}
<li>{t("newappeal:site-location-plan")}</li>
</>
);
};
return (
<>
@@ -40,16 +74,17 @@ const BuildProgress = (props) => {
<h2 className="govuk-heading-s govuk-!-font-weight-bold gov-font-dark-grey progress-heading">
{t("newappeal:new-appeal-progress-nav-label")}:{" "}
<span className="progress-case-reference">
{props.props.appealType.caseReference.ticketnumber}
{
outerProps?.props?.appealType?.caseReference
?.ticketnumber
}
</span>
</h2>
{/* <hr className="govuk-section-break govuk-section-break--m govuk-section-break--visible" /> */}
<div
id="step-by-step-navigation"
data-module="gemstepnav"
className="app-step-nav app-step-nav--active"
className="app-step-nav app-step-nav--active"
data-id="e01e924b-9c7c-4c71-8241-66a575c2f61f"
data-show-text="show"
data-hide-text="hide"
@@ -57,168 +92,105 @@ const BuildProgress = (props) => {
data-hide-all-text="Hide all"
>
<ol className="app-step-nav__steps">
{Object.keys(progObj).map((key, index) => (
<li
key={key}
className={
"app-step-nav__step js-step app-step-nav__step--active" +
(progObj[index].allFieldsComplete
? " sectionComplete"
: " sectionIncomplete")
}
aria-current="step"
data-show=""
id={FieldsTranslations(progObj[index].title)
.toString()
.replace(/\s+/g, "-")
.toLowerCase()}
>
<div
className="app-step-nav__header js-toggle-panel "
data-position={index}
{Object.keys(progObj).map((key, index) => {
const step = progObj[index];
const stepId = FieldsTranslations(step.title)
.toString()
.replace(/\s+/g, "-")
.toLowerCase();
return (
<li
key={key}
className={`app-step-nav__step js-step app-step-nav__step--active ${
step.allFieldsComplete
? "sectionComplete"
: "sectionIncomplete"
}`}
aria-current="step"
data-show=""
id={stepId}
>
<h3 className="app-step-nav__title ">
<span className="app-step-nav__circle app-step-nav__circle--number">
<span className="app-step-nav__circle-inner">
<span className="app-step-nav__circle-background">
<span className="app-step-nav__circle-step-label govuk-visually-hidden">
Step
</span>{" "}
{index + 1}
<span
className="app-step-nav__circle-step-colon govuk-visually-hidden"
aria-hidden="true"
>
:
<div
className="app-step-nav__header js-toggle-panel"
data-position={index}
>
<h3 className="app-step-nav__title">
<span className="app-step-nav__circle app-step-nav__circle--number">
<span className="app-step-nav__circle-inner">
<span className="app-step-nav__circle-background">
<span className="app-step-nav__circle-step-label govuk-visually-hidden">
Step
</span>{" "}
{index + 1}
<span
className="app-step-nav__circle-step-colon govuk-visually-hidden"
aria-hidden="true"
>
:
</span>
</span>
</span>
</span>
</span>
<span className="js-step-title">
<a
href="#"
onClick={() => {
gotoSection(
parseInt(key) + 1
);
}}
className="app-step-nav__button app-step-nav__button--title js-step-title-button"
aria-expanded="false"
aria-controls={
"step-panel-" +
FieldsTranslations(
progObj[index].title
)
.toString()
.replace(/\s+/g, "-")
.toLowerCase()
}
>
<span className="js-step-title-text govuk-!-font-size-16">
{FieldsTranslations(
progObj[index].title
)}{" "}
</span>
</a>
</span>
</h3>
</div>
</li>
))}
{/* <li
className={
"app-step-nav__step js-step app-step-nav__step--active"
}
>
<div
className="app-step-nav__header js-toggle-panel "
data-position={10}
>
<h3 className="app-step-nav__title ">
<span className="app-step-nav__circle app-step-nav__circle--number">
<span className="app-step-nav__circle-inner">
<span className="app-step-nav__circle-background">
<span className="app-step-nav__circle-step-label govuk-visually-hidden">
Step
</span>{" "}
{progObj.length + 1}
<span
className="app-step-nav__circle-step-colon govuk-visually-hidden"
aria-hidden="true"
<span className="js-step-title">
<a
href="#"
onClick={(e) => {
e.preventDefault();
gotoSection(
parseInt(key, 10) +
1
);
}}
className="app-step-nav__button app-step-nav__button--title js-step-title-button"
aria-expanded="false"
aria-controls={`step-panel-${stepId}`}
>
:
</span>
<span className="js-step-title-text govuk-!-font-size-16">
{FieldsTranslations(
step.title
)}{" "}
</span>
</a>
</span>
</span>
</span>
<span className="js-step-title">
<a
href="#"
onClick={() => {
gotoSection(progObj.length + 1);
}}
className="app-step-nav__button app-step-nav__button--title js-step-title-button"
aria-expanded="false"
aria-controls={
"step-panel-confirmation"
}
>
<span className="js-step-title-text govuk-!-font-size-16">
Confirmation
</span>
</a>
</span>
</h3>
</div>
</li> */}
</h3>
</div>
</li>
);
})}
</ol>
</div>
</nav>
{Object.keys(documentListObj).length > 0 && (
<div>
<h3 className="govuk-heading-s govuk-!-font-weight-bold gov-font-dark-grey">
{t("newappeal:new-appeal-documentlist-nav")}:
</h3>
<hr className="govuk-section-break govuk-section-break--m govuk-section-break--visible" />
<ol className="govuk-list document-list">
<ul className="govuk-list ">
<li className="at-nav__page">
<ol className="govuk-list govuk-list--bullet">
{Object.entries(documentListObj).map(
([key, value]) => {
return <li key={key}>{value}</li>;
}
)}
</ol>
</li>
</ul>
</ol>
</div>
)}
<section>
<h3 className="govuk-heading-s govuk-!-font-weight-bold gov-font-dark-grey">
{t("newappeal:new-appeal-documentlist-nav")}:
</h3>
<hr className="govuk-section-break govuk-section-break--m govuk-section-break--visible" />
<ol className="govuk-list document-list">
<li className="at-nav__page">
<ol className="govuk-list govuk-list--bullet">
{renderDocumentList()}
</ol>
</li>
</ol>
</section>
</>
);
};
const mapStateToProps = (state) => {
return {
search: state.search,
searchResultsObj: state.searchResultsObj,
formData: state.formData,
appealType: state.appealType,
initialValues: state.appealType.caseReference.caseDetails,
//form: state.form,
};
};
const mapStateToProps = (state) => ({
search: state.search,
searchResultsObj: state.searchResultsObj,
formData: state.formData,
appealType: state.appealType,
initialValues: state.appealType.caseReference.caseDetails,
//form: state.form,
});
const mapDispatchToProps = (dispatch) => {
return {
gotoSection: (thisSection) => {
dispatch(setCurrentSection(thisSection));
},
};
};
const mapDispatchToProps = (dispatch) => ({
gotoSection: (thisSection) => dispatch(setCurrentSection(thisSection)),
});
export default connect(mapStateToProps, mapDispatchToProps)(BuildProgress);
+15 -2
View File
@@ -16,6 +16,11 @@ export default function BuildRow(props) {
sectionCount,
onSubmit,
mandatoryFieldsData,
setUploadCount,
uploadCount,
setFileCount,
completedUploadFilesCount,
setCompletedUploadFilesCount,
} = props;
const parser = new DOMParser();
@@ -34,6 +39,7 @@ export default function BuildRow(props) {
var fieldtype = xpath.select("//@classid", doc);
var validation = xpath.select("//@validation", doc);
var maxFieldLength = xpath.select("//@maxFieldLength", doc);
var maxSubField = xpath.select("//@maxsubfield", doc);
var datafieldname = xpath.select("//@datafieldname", doc);
var datafieldcontent = xpath.select(
"//@datafieldcontent",
@@ -74,6 +80,9 @@ export default function BuildRow(props) {
maxFieldLength =
!_.isEmpty(maxFieldLength) && maxFieldLength[0].value;
maxSubField =
!_.isEmpty(maxSubField) && maxSubField[0].value;
parentField =
!_.isEmpty(parentField) && parentField[0].value;
@@ -101,8 +110,8 @@ export default function BuildRow(props) {
dateEnd = !_.isEmpty(dateEnd) && dateEnd[0].value;
//const isRequiredField = jsonpath(
// "$..value[?(@.LogicalName=='" +
//const isRequiredField = jsonpath({path:
// "$..value[?(@ && @.LogicalName=='" +
// datafieldname[0].value +
// "')]",
// mandatoryFieldsData
@@ -123,6 +132,9 @@ export default function BuildRow(props) {
}
mandatoryFieldsData={mandatoryFieldsData}
documentTypeCode={documentTypeCode}
setFileCount={setFileCount}
setUploadCount={setUploadCount}
uploadCount={uploadCount}
/>
);
} else {
@@ -164,6 +176,7 @@ export default function BuildRow(props) {
setFilesForAppeal={
props.props.setFilesForAppeal
}
maxSubField={maxSubField}
/>
);
// } else {
+191 -109
View File
@@ -11,8 +11,9 @@ import {
setDocumentsList,
setFilesForAppeal,
setNewAppealProgress,
setFileCount,
} from "../../store/appealType/action";
import { getFormCollectionByID, getProgressObj } from "../utils";
import { getFormCollectionByID, getProgressObj, updateLinks } from "../utils";
import BuildRow from "./buildrow";
import { FieldsTranslations } from "../elements";
@@ -21,8 +22,14 @@ import BuildProgress from "./buildprogress";
let BuildSection = (props) => {
const [currentSectionSelected, setCurrentSectionSelected] = useState(1);
const [pickupWhereLeftOff, setPickupWhereLeftOff] = useState(true);
const [savingStatus, setSavingStatus] = useState(false);
const [allFilesUploaded, setAllFilesuploaded] = useState(false);
const [showCompletedUploadFiles, setShowCompletedUploadFiles] =
useState(false);
const [completedUploadFiles, setCompletedUploadFiles] = useState(false);
const [uploadCount, setUploadCount] = useState(0);
const [completedUploadFilesCount, setCompletedUploadFilesCount] =
useState(0);
let { t } = useTranslation();
@@ -91,12 +98,14 @@ let BuildSection = (props) => {
const handleParam = (setValue) => (e) => setValue(e.target.value);
const uploadAppealFiles = (values) => {
const uploadAppealFiles = async (values) => {
// get filelists from values object
let fileListObj = _.filter(values, function (v, key) {
return _.includes(key, "pinswg_fileUpload");
});
fileListObj = [];
//console.log(fileListObj);
// console.log(
@@ -110,14 +119,14 @@ let BuildSection = (props) => {
// _.includes(key, "pinswg_fileUpload") == true && delete dataObj[key];
// }
uploadFiles(
await uploadFiles(
dataObj,
fileListObj,
props.props.accountDetails.containerID,
props.props.appealType.caseReference.ticketnumber
).then((data) => {
//console.log("hello", data);
console.log("$1", data);
setCompletedUploadFiles(true);
return data;
});
};
@@ -132,6 +141,8 @@ let BuildSection = (props) => {
let buildAppealFilesArray = [];
//console.log("attached docs: - ", buildAppealFilesArray);
values = updateLinks(values);
let filesUploadObj = Object.keys(values)
.filter(function (k) {
return k.indexOf("pinswg_fileUpload") == 0;
@@ -166,7 +177,9 @@ let BuildSection = (props) => {
setSavingStatus(useSaveStatus);
//not sure we need this here if it does it on drop of file
uploadAppealFiles(values);
// console.log(
// "\n////////////////////////\n appeal pdf payload",
// values,
@@ -279,7 +292,7 @@ let BuildSection = (props) => {
useSaveStatus &&
router.replace(
router.locale != "en"
? "/" + router.locale + "/myportal"
? "/" + router.locale + "/fymhorth"
: "/myportal"
);
};
@@ -313,11 +326,33 @@ let BuildSection = (props) => {
// Object.assign(values, { "filesList": buildAppealFilesArray });
// Function to parse a specific key (e.g., 'price') in an array of objects
const parseFloatForKeyInObject = (obj, key) => {
// Check if the object has the key and the value can be parsed as a float
if (
obj.hasOwnProperty(key) &&
typeof obj[key] === "string" &&
!isNaN(obj[key].trim())
) {
// Parse the value as a float and update the object
return { ...obj, [key]: parseFloat(obj[key]) };
}
// If the key doesn't exist or value can't be parsed, return the original object
return obj;
};
valuesObj = parseFloatForKeyInObject(
valuesObj,
"pinswg_areaofsiteinhectaresdec"
);
delete valuesObj["_pinswg_appellant_value"];
//console.log("has errors:", props.invalid);
props.invalid == false && updateCaseProgress(valuesObj, false, false);
setCurrentSection(currentSection + 1);
props.invalid == false &&
updateCaseProgress(valuesObj, false, false).then((data) => {
console.log(data);
setCurrentSection(currentSection + 1);
});
};
const [hasErrors, setHasErrors] = useState("");
@@ -386,6 +421,16 @@ let BuildSection = (props) => {
);
};
const hasUploadFiles = () => {
const formArr = props.props.form["appealForm"].values;
const prefix = "pinswg_fileUpload";
const hasFiles = Object.keys(formArr).some((key) =>
key.startsWith(prefix)
);
return hasFiles;
};
return (
<div className="govuk-grid-row">
<div className="govuk-grid-column-two-thirds wgForm ">
@@ -409,6 +454,15 @@ let BuildSection = (props) => {
onSubmit={onSubmit}
mandatoryFieldsData={mandatoryFieldsData}
props={props}
allFilesUploaded={allFilesUploaded}
setAllFilesuploaded={setAllFilesuploaded}
setFileCount={setFileCount}
setUploadCount={setUploadCount}
uploadCount={uploadCount}
completedUploadFilesCount={completedUploadFilesCount}
setCompletedUploadFilesCount={
setCompletedUploadFilesCount
}
/>
<div className="govuk-button-group">
@@ -440,10 +494,82 @@ let BuildSection = (props) => {
false,
false
);
// currentSection == 1 &&
// setCurrentSection(1);
}}
>
{t("common:continue-button")}
</button>
{currentSection > 1 &&
(savingStatus ? (
<span className=" progress-save-active">
{router.locale == "cy"
? "Nôl data"
: "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 progress-save "
onClick={() => {
let valuesObj =
props.props.form[props.form]
.values || {};
// console.log(
// "valuesobj:",
// valuesObj
// );
delete valuesObj[
"_pinswg_appellant_value"
];
// console.log("on save:", valuesObj);
updateCaseProgress(
valuesObj,
true,
true
);
}}
>
{t("common:save-exit-button")}
</button>
))}
{/* <span
onClick={() =>
setCurrentSection(sectionCount + 1)
}
>
goto check
</span> */}
</>
) : (
""
)}
{props.sectionCount == currentSection ? (
<>
<div>
{showCompletedUploadFiles
? "UPlodeding, pleas ewait "
: ""}
</div>
<button
disabled={!isProgressComplete(progObj)}
type="submit"
className="govuk-button"
data-module="govuk-button"
>
{t("common:submit-button")}{" "}
</button>
{savingStatus ? (
<span className=" progress-save-active">
{router.locale == "cy"
@@ -476,71 +602,7 @@ let BuildSection = (props) => {
"_pinswg_appellant_value"
];
// console.log("on save:", valuesObj);
updateCaseProgress(
valuesObj,
true,
true
);
}}
>
{t("common:save-exit-button")}
</button>
)}
{/* <span
onClick={() =>
setCurrentSection(sectionCount + 1)
}
>
goto check
</span> */}
</>
) : (
""
)}
{props.sectionCount == currentSection ? (
<>
<button
disabled={!isProgressComplete(progObj)}
type="submit"
className="govuk-button"
data-module="govuk-button"
>
{t("common:submit-button")}
</button>
{savingStatus ? (
<span className=" progress-save-active">
{router.locale == "cy"
? "Nôl data"
: "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 progress-save "
onClick={() => {
let valuesObj =
props.props.form[props.form]
.values || {};
console.log(
"valuesobj:",
valuesObj
);
delete valuesObj[
"_pinswg_appellant_value"
];
console.log("on save:", valuesObj);
//console.log("on save:", valuesObj);
updateCaseProgress(
valuesObj,
true,
@@ -589,40 +651,6 @@ let BuildSection = (props) => {
/>
<hr className="govuk-section-break govuk-section-break--m govuk-section-break--visible" />
{/*
Mpved save and exit button from progess section
{savingStatus ? (
<span className=" progress-save-active">
{router.locale == "cy" ? "Nôl data" : "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 progress-save "
onClick={() => {
let valuesObj =
props.props.form[props.form].values || {};
console.log("valuesobj:", valuesObj);
delete valuesObj["_pinswg_appellant_value"];
console.log("on save:", valuesObj);
updateCaseProgress(valuesObj, true, true);
}}
>
{t("common:save-exit-button")}
</button>
)} */}
</div>
</div>
</div>
@@ -637,12 +665,14 @@ const mapStateToProps = (state, ownProps) => {
formData: state.formData,
appealType: state.appealType,
initialValues: state.appealType.caseReference.caseDetails,
currentView: state.currentView,
}
: {
search: state.search,
searchResultsObj: state.searchResultsObj,
formData: state.formData,
appealType: state.appealType,
currentView: state.currentView,
//form: state.form,
};
};
@@ -664,11 +694,62 @@ const mapDispatchToProps = (dispatch) => {
setNewAppealProgress: (progressObj) => {
dispatch(setNewAppealProgress(progressObj));
},
setFileCount: (fileCount) => {
dispatch(setFileCount(fileCount));
},
};
};
const selector = formValueSelector("appealForm"); // <-- same as form name
const validate = (values, props) => {
const errors = {};
const strippedHtml = (htmlStr) => {
return htmlStr.replace(/(<([^>]+)>)/gi, "").trim();
};
const locale = props.currentView.locale;
if (values.hasOwnProperty("pinswg_attachsoc")) {
if (values.pinswg_attachsoc == "false") {
if (values.hasOwnProperty("pinswg_statementofcase")) {
if (strippedHtml(values.pinswg_statementofcase).length == 0)
errors.pinswg_statementofcase =
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 {
errors.pinswg_statementofcase =
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";
}
}
}
if (values.hasOwnProperty("pinswg_costappliedforindicator")) {
if (values.pinswg_costappliedforindicator == "true") {
if (values.pinswg_attachcostapplication == "false") {
if (values.hasOwnProperty("pinswg_costapplication")) {
if (strippedHtml(values.pinswg_costapplication).length == 0)
errors.pinswg_costapplication =
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 {
errors.pinswg_costapplication =
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";
}
}
}
}
return errors;
};
export default connect(
mapStateToProps,
mapDispatchToProps
@@ -677,5 +758,6 @@ export default connect(
form: "appealForm",
destroyOnUnmount: false,
enableReinitialize: true, // this is needed!!
validate,
})(BuildSection)
);
+2 -2
View File
@@ -123,13 +123,13 @@ let CompleteAppeal = (props) => {
{t("newappeal:new-appeal-complete-paragraph-2")}
</p>
<p className="govuk-body">
{t("newappeal:new-appeal-complete-paragraph-3")}::
{t("newappeal:new-appeal-complete-paragraph-3")}
<Link href={"mailto:" + t("home:login-contact-email")}>
{t("home:login-contact-email")}
</Link>
</p>
<p className="govuk-body">
{t("newappeal:new-appeal-complete-paragraph-4")}:
{t("newappeal:new-appeal-complete-paragraph-4")}
{router.locale == "cy" ? (
<Link href="https://www.llyw.cymru/diweddariad-i-wasanaeth-penderfyniadau-cynllunio-ac-amgylchedd-cymru-pcac">
https://www.llyw.cymru/diweddariad-i-wasanaeth-penderfyniadau-cynllunio-ac-amgylchedd-cymru-pcac
+20 -26
View File
@@ -65,12 +65,14 @@ const RenderLPAList = ({
value={optionsObj[key].accountid}
>
{router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
optionsObj[key].name +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: optionsObj[key].name}
</option>
);
@@ -147,12 +149,14 @@ const RenderAppealTypeList = ({
: _.isEmpty(optionsObj[key].value)
? ""
: router.locale == "cy"
? jsonpath(
'$..[?(@.value=="' +
? jsonpath({
path:
'$..[?(@ && @.value=="' +
optionsObj[key].value +
'")].value_cy',
transLookup
)
json: transLookup,
eval: true,
})
: optionsObj[key].value}
</option>
);
@@ -372,25 +376,15 @@ let CreateCase = (props) => {
const { LPAData, onSubmit, handleSubmit, formData } = props;
const appealOptionsObj = _.isEmpty(props)
? [{}]
: _.isEmpty(props.appealType)
? [{}]
: _.isEmpty(props.appealType.appealTypeOptions)
? [{}]
: _.isEmpty(props.appealType.appealTypeOptions.value)
? [{}]
: props.appealType.appealTypeOptions.value;
const appealOptionsObj =
props?.appealType?.appealTypeOptions?.value?.length > 0
? props.appealType.appealTypeOptions.value
: [{}];
let lpaOptionsObj = _.isEmpty(props)
? [{}]
: _.isEmpty(props.LPAData)
? [{}]
: _.isEmpty(props.LPAData.LPAData)
? [{}]
: _.isEmpty(props.LPAData.LPAData)
? [{}]
: props.LPAData.LPAData.value;
const lpaOptionsObj =
props?.LPAData?.LPAData?.value?.length > 0
? props.LPAData.LPAData.value
: [{}];
const required = (value) => (value ? undefined : "Required");

Some files were not shown because too many files have changed in this diff Show More