diff --git a/backend/package-lock.json b/backend/package-lock.json index 264d58e8..85972f0b 100644 --- a/backend/package-lock.json +++ b/backend/package-lock.json @@ -22,10 +22,10 @@ "cors": "^2.8.5", "cron": "^1.8.2", "dotenv": "^8.0.0", - "express": "^4.21.0", + "express": "^4.21.1", "express-prometheus-middleware": "^0.8.5", "express-rate-limit": "^7.4.0", - "express-session": "^1.17.1", + "express-session": "^1.18.1", "express-validator": "^7.1.0", "fast-safe-stringify": "^2.0.7", "form-data": "^4.0.0", @@ -4776,9 +4776,9 @@ } }, "node_modules/cookie": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", - "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==", + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz", + "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==", "engines": { "node": ">= 0.6" } @@ -5906,16 +5906,16 @@ } }, "node_modules/express": { - "version": "4.21.0", - "resolved": "https://registry.npmjs.org/express/-/express-4.21.0.tgz", - "integrity": "sha512-VqcNGcj/Id5ZT1LZ/cfihi3ttTn+NJmkli2eZADigjq29qTlWi/hAQ43t/VLPq8+UX06FCEx3ByOYet6ZFblng==", + "version": "4.21.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.21.1.tgz", + "integrity": "sha512-YSFlK1Ee0/GC8QaO91tHcDxJiE/X4FbpAyQWkxAvG6AXCuR65YzK8ua6D9hvi/TzUfZMpc+BwuM1IPw8fmQBiQ==", "dependencies": { "accepts": "~1.3.8", "array-flatten": "1.1.1", "body-parser": "1.20.3", "content-disposition": "0.5.4", "content-type": "~1.0.4", - "cookie": "0.6.0", + "cookie": "0.7.1", "cookie-signature": "1.0.6", "debug": "2.6.9", "depd": "2.0.0", @@ -5972,23 +5972,36 @@ } }, "node_modules/express-session": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/express-session/-/express-session-1.17.1.tgz", - "integrity": "sha512-UbHwgqjxQZJiWRTMyhvWGvjBQduGCSBDhhZXYenziMFjxst5rMV+aJZ6hKPHZnPyHGsrqRICxtX8jtEbm/z36Q==", + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/express-session/-/express-session-1.18.1.tgz", + "integrity": "sha512-a5mtTqEaZvBCL9A9aqkrtfz+3SMDhOVUnjafjo+s7A9Txkq+SVX2DLvSp1Zrv4uCXa3lMSK3viWnh9Gg07PBUA==", "dependencies": { - "cookie": "0.4.0", - "cookie-signature": "1.0.6", + "cookie": "0.7.2", + "cookie-signature": "1.0.7", "debug": "2.6.9", "depd": "~2.0.0", "on-headers": "~1.0.2", "parseurl": "~1.3.3", - "safe-buffer": "5.2.0", + "safe-buffer": "5.2.1", "uid-safe": "~2.1.5" }, "engines": { "node": ">= 0.8.0" } }, + "node_modules/express-session/node_modules/cookie": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", + "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/express-session/node_modules/cookie-signature": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.7.tgz", + "integrity": "sha512-NXdYc3dLr47pBkpUCHtKSwIOQXLVn8dZEuywboCOJY/osA0wFSLlSawr3KN8qXJEyX66FcONTH8EIlVuK0yyFA==" + }, "node_modules/express-session/node_modules/debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", @@ -6006,9 +6019,23 @@ } }, "node_modules/express-session/node_modules/safe-buffer": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz", - "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==" + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] }, "node_modules/express-validator": { "version": "7.1.0", @@ -6023,15 +6050,6 @@ "node": ">= 8.0.0" } }, - "node_modules/express/node_modules/cookie": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", - "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, "node_modules/express/node_modules/debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", @@ -17835,9 +17853,9 @@ } }, "cookie": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", - "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==" + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz", + "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==" }, "cookie-signature": { "version": "1.0.6", @@ -18639,16 +18657,16 @@ } }, "express": { - "version": "4.21.0", - "resolved": "https://registry.npmjs.org/express/-/express-4.21.0.tgz", - "integrity": "sha512-VqcNGcj/Id5ZT1LZ/cfihi3ttTn+NJmkli2eZADigjq29qTlWi/hAQ43t/VLPq8+UX06FCEx3ByOYet6ZFblng==", + "version": "4.21.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.21.1.tgz", + "integrity": "sha512-YSFlK1Ee0/GC8QaO91tHcDxJiE/X4FbpAyQWkxAvG6AXCuR65YzK8ua6D9hvi/TzUfZMpc+BwuM1IPw8fmQBiQ==", "requires": { "accepts": "~1.3.8", "array-flatten": "1.1.1", "body-parser": "1.20.3", "content-disposition": "0.5.4", "content-type": "~1.0.4", - "cookie": "0.6.0", + "cookie": "0.7.1", "cookie-signature": "1.0.6", "debug": "2.6.9", "depd": "2.0.0", @@ -18676,11 +18694,6 @@ "vary": "~1.1.2" }, "dependencies": { - "cookie": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", - "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==" - }, "debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", @@ -18727,20 +18740,30 @@ "requires": {} }, "express-session": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/express-session/-/express-session-1.17.1.tgz", - "integrity": "sha512-UbHwgqjxQZJiWRTMyhvWGvjBQduGCSBDhhZXYenziMFjxst5rMV+aJZ6hKPHZnPyHGsrqRICxtX8jtEbm/z36Q==", + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/express-session/-/express-session-1.18.1.tgz", + "integrity": "sha512-a5mtTqEaZvBCL9A9aqkrtfz+3SMDhOVUnjafjo+s7A9Txkq+SVX2DLvSp1Zrv4uCXa3lMSK3viWnh9Gg07PBUA==", "requires": { - "cookie": "0.4.0", - "cookie-signature": "1.0.6", + "cookie": "0.7.2", + "cookie-signature": "1.0.7", "debug": "2.6.9", "depd": "~2.0.0", "on-headers": "~1.0.2", "parseurl": "~1.3.3", - "safe-buffer": "5.2.0", + "safe-buffer": "5.2.1", "uid-safe": "~2.1.5" }, "dependencies": { + "cookie": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", + "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==" + }, + "cookie-signature": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.7.tgz", + "integrity": "sha512-NXdYc3dLr47pBkpUCHtKSwIOQXLVn8dZEuywboCOJY/osA0wFSLlSawr3KN8qXJEyX66FcONTH8EIlVuK0yyFA==" + }, "debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", @@ -18755,9 +18778,9 @@ "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" }, "safe-buffer": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz", - "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==" + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" } } }, diff --git a/backend/package.json b/backend/package.json index ca7411e3..74e1d75a 100644 --- a/backend/package.json +++ b/backend/package.json @@ -37,10 +37,10 @@ "cors": "^2.8.5", "cron": "^1.8.2", "dotenv": "^8.0.0", - "express": "^4.21.0", + "express": "^4.21.1", "express-prometheus-middleware": "^0.8.5", "express-rate-limit": "^7.4.0", - "express-session": "^1.17.1", + "express-session": "^1.18.1", "express-validator": "^7.1.0", "fast-safe-stringify": "^2.0.7", "form-data": "^4.0.0", diff --git a/frontend/package-lock.json b/frontend/package-lock.json index fb21a257..df1626d5 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -42,7 +42,7 @@ "eslint-plugin-vue": "^9.27.0", "happy-dom": "^12.8.0", "prettier": "^3.3.3", - "vite": "^4.4.9", + "vite": "^4.5.5", "vitest": "^0.34.6" } }, @@ -4379,9 +4379,9 @@ } }, "node_modules/vite": { - "version": "4.5.3", - "resolved": "https://registry.npmjs.org/vite/-/vite-4.5.3.tgz", - "integrity": "sha512-kQL23kMeX92v3ph7IauVkXkikdDRsYMGTVl5KY2E9OY4ONLvkHf04MDTbnfo6NKxZiDLWzVpP5oTa8hQD8U3dg==", + "version": "4.5.5", + "resolved": "https://registry.npmjs.org/vite/-/vite-4.5.5.tgz", + "integrity": "sha512-ifW3Lb2sMdX+WU91s3R0FyQlAyLxOzCSCP37ujw0+r5POeHPwe6udWVIElKQq8gk3t7b8rkmvqC6IHBpCff4GQ==", "dependencies": { "esbuild": "^0.18.10", "postcss": "^8.4.27", @@ -7861,9 +7861,9 @@ "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" }, "vite": { - "version": "4.5.3", - "resolved": "https://registry.npmjs.org/vite/-/vite-4.5.3.tgz", - "integrity": "sha512-kQL23kMeX92v3ph7IauVkXkikdDRsYMGTVl5KY2E9OY4ONLvkHf04MDTbnfo6NKxZiDLWzVpP5oTa8hQD8U3dg==", + "version": "4.5.5", + "resolved": "https://registry.npmjs.org/vite/-/vite-4.5.5.tgz", + "integrity": "sha512-ifW3Lb2sMdX+WU91s3R0FyQlAyLxOzCSCP37ujw0+r5POeHPwe6udWVIElKQq8gk3t7b8rkmvqC6IHBpCff4GQ==", "requires": { "esbuild": "^0.18.10", "fsevents": "~2.3.2", diff --git a/frontend/package.json b/frontend/package.json index b035d26b..a72c6881 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -48,7 +48,7 @@ "eslint-plugin-vue": "^9.27.0", "happy-dom": "^12.8.0", "prettier": "^3.3.3", - "vite": "^4.4.9", + "vite": "^4.5.5", "vitest": "^0.34.6" } } diff --git a/frontend/src/components/funding/FundingAllocationTab.vue b/frontend/src/components/funding/FundingAllocationTab.vue new file mode 100644 index 00000000..a8703164 --- /dev/null +++ b/frontend/src/components/funding/FundingAllocationTab.vue @@ -0,0 +1,61 @@ + + + diff --git a/frontend/src/components/funding/FundingSearchCard.vue b/frontend/src/components/funding/FundingSearchCard.vue index 1606425b..101b7933 100644 --- a/frontend/src/components/funding/FundingSearchCard.vue +++ b/frontend/src/components/funding/FundingSearchCard.vue @@ -5,10 +5,22 @@ - Facility(s): + {{ selectSingleFacility ? 'Facility:' : 'Facility(s):' }} + - + Date: @@ -133,6 +145,14 @@ export default { type: String, default: null, }, + showDateFilter: { + type: Boolean, + default: true, + }, + selectSingleFacility: { + type: Boolean, + default: false, + }, }, emits: ['search'], @@ -205,7 +225,7 @@ export default { methods: { resetFilter() { - this.selectedFacilities = this.userInfo?.facilities + this.selectedFacilities = this.selectSingleFacility ? this.userInfo?.facilities[0] : this.userInfo?.facilities this.selectedDateFilterType = this.defaultDateFilter this.selectedPaymentFilterTypes = this.paymentTypes this.selectedDateFrom = null diff --git a/frontend/src/components/messages/NewRequestDialog.vue b/frontend/src/components/messages/NewRequestDialog.vue index 3ef6faba..6623aba6 100644 --- a/frontend/src/components/messages/NewRequestDialog.vue +++ b/frontend/src/components/messages/NewRequestDialog.vue @@ -211,6 +211,15 @@ Request description: +
+
+ Each Funding Envelope has restrictions for how the funding can be used and if or how it can be re-allocated between the Funding Envelopes and between line items within the Funding + Envelopes, as applicable. Please see the Policy and Procedures Manual for detailed information. +
+
+ In the box below, please outline your request to re-allocate funds, including the amount and the envelopes you are moving funds between. Please also attach any relevant documents. +
+
0 }, @@ -503,7 +515,7 @@ export default { return this.documentsToUpload.length }, isMultipleFacilities() { - return !(this.isAccountMaintenanceRequest || this.isIrregularExpenseRequest || this.isReportingRequest) + return !(this.isAccountMaintenanceRequest || this.isFundingEnvelopeRequest || this.isIrregularExpenseRequest || this.isReportingRequest) }, facilityLabel() { return `Facility${this.isMultipleFacilities ? '(s)' : ''}:` @@ -858,4 +870,9 @@ export default { .v-messages { opacity: 1; } + +:deep(.v-select__selection-text) { + white-space: normal; /* Wraps the selected item text */ + word-wrap: break-word; +} diff --git a/frontend/src/utils/constants.js b/frontend/src/utils/constants.js index 34c5955e..ae138566 100644 --- a/frontend/src/utils/constants.js +++ b/frontend/src/utils/constants.js @@ -132,6 +132,7 @@ export const SUPPLEMENTARY_TYPES = Object.freeze({ export const REQUEST_CATEGORY_NAMES = Object.freeze({ ACCOUNT_MAINTENANCE: 'Account Maintenance', + FUNDING_ENVELOPE_CR: 'Funding Envelope Change Request', REPORTING: 'Reporting', IRREGULAR_EXPENSES: 'Irregular Expense', }) diff --git a/frontend/src/views/applications/ApplicationsHistoryView.vue b/frontend/src/views/applications/ApplicationsHistoryView.vue index 24178f16..523a98fe 100644 --- a/frontend/src/views/applications/ApplicationsHistoryView.vue +++ b/frontend/src/views/applications/ApplicationsHistoryView.vue @@ -305,7 +305,9 @@ export default { return false //OFM core generates PDF upon submit - Supp App generates PDF only once approved } else if (application.applicationType === APPLICATION_TYPES.OFM) { - return !this.DRAFT_STATUS_CODES.includes(application?.statusCode) + return false + // OFMCC-6204 - temporary hide the PDF button for Base Funding Application because of the missing fields issue + // return !this.DRAFT_STATUS_CODES.includes(application?.statusCode) } return application.statusCode === SUPPLEMENTARY_APPLICATION_STATUS_CODES.APPROVED || application.statusCode === SUPPLEMENTARY_APPLICATION_STATUS_CODES.SUBMITTED }, diff --git a/frontend/src/views/funding/FundingOverviewView.vue b/frontend/src/views/funding/FundingOverviewView.vue index d9aa0cec..28e7d237 100644 --- a/frontend/src/views/funding/FundingOverviewView.vue +++ b/frontend/src/views/funding/FundingOverviewView.vue @@ -12,6 +12,10 @@ mdi-history Payment Records + + mdi-call-split + Funding Allocation + @@ -21,6 +25,9 @@ + + + @@ -32,13 +39,14 @@