Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Vue3 #1004

Merged
merged 94 commits into from
Nov 15, 2023
Merged

Vue3 #1004

merged 94 commits into from
Nov 15, 2023

Conversation

jasonchung1871
Copy link
Collaborator

@jasonchung1871 jasonchung1871 commented Sep 13, 2023

Description

This is a massive overhaul of the front end. This replaces our builder as well as an upgrade from Vue 2 to Vue 3.

Completely replaces vue-cli as our application builder with vite. vue-cli had 1 low, 24 moderate, 20 high, 8 critical vulnerabilities. Vue 2 will no longer be updated on December 31st, 2023. This update required massive changes across almost every file in the front end. Vuex is also replaced with Pinia, which is not too different. We could not use the composition API as it was breaking the tests and it would have taken much longer to completely redo the tests. We are currently sticking to the options API. The biggest advantage to composition API would have been treeshaking which just removes unused modules from the build. It's also very easy for us to change to composition API once we need to.

Followed changes from vue 2 to vue 3 from https://v3-migration.vuejs.org/
Followed changes migrating from vuex to pinia from https://pinia.vuejs.org/cookbook/migration-vuex.html
Followed the vitejs guidebook for how to use vite, adapted some of the vue-cli build configuration but not all could be translated. https://vitejs.dev/guide/

Time consuming and unfixable vulnerabilities due to our builder. Vue 2 will no longer be supported come December 31, 2023.

https://bcdevex.atlassian.net/browse/FORMS-702

Types of changes

Bug fix (non-breaking change which fixes an issue)
New feature (non-breaking change which adds functionality)
Documentation (non-breaking change with enhancements to documentation)
Breaking change (fix or feature that would cause existing functionality to change)

Checklist

  • I have read the CONTRIBUTING doc
  • I have checked that unit tests pass locally with my changes
  • I have run the npm script lint on the frontend and backend
  • I have added tests that prove my fix is effective or that my feature works
  • I have added necessary documentation (if appropriate)
  • I have approval from the product owner for the contribution in this pull request

Further comments

jasonchung1871 and others added 30 commits April 27, 2023 17:22
removed:
- deep-freeze
- vue-clipboard2
- vuetify-loader

added:
- v-clipboard

upgraded:
- [email protected] to [email protected]
- qrcode.vue@<3.0.0 to [email protected]
- @vue/[email protected] to @vue/[email protected]
majority of packages have been upgraded for vue3
Vue3 runs with Vite now, keycloak login is working.
many packages updated, chefs front end is working for the most part. some minor bugs and glitches from the vuetify package
Updating vue3 from master
Fixed some Vuetify migration issues
Fixed issues from master merge
complete upgrade of all deprecated and maintenance mode dependencies.
rebuilt majority of the vue components to use the composition API instead of the options API.
Manage form added
create form added
submission creation
submission view
manage form actions
form submission actions
Added team management and addteamember and basefilter
added internationalization
fixed teammanagement issues (not being able to update roles)
Added SubmissionsTable, MySubmissionsTable, SubmissionsView
added translations
fixed bcgovfooter
status panel added
fixed filter for teammanagement and MySubmissionsTable and SubmissionsTable
export submissions working
fixed previous submissions actions, now working and going to intended pages
TODO: fix user duplicate submissions page, error when deleting field data
fixed form publishing
draft upload added
Added Download.vue view
admin view has been added
added tests for notification store
constants
permissionUtils
transformUtils
services
filters
tests working for stores:
admin, auth, form
Tests written for
App
Base components
bcgov components

updated some packages
Reverted all of the composition API back to options API
Fixed the tests for the Base components and BCGov components
Fixed auth actions test, requires happy-dom for the window functions
rest of tests completed
upgrade complete..
missing:
MORE TESTS
functionality check
UI check
jasonchung1871 and others added 29 commits September 28, 2023 15:14
npm audit to fix exploit issues
Adjusted BaseStepper and PublishForm for Vue3
fix some minor router issues and router test
* Update FormViewerMultiUpload.vue

quick fix to missing module

* Update FormViewerMultiUpload.vue

Added lodash and fixed missing error reference

* Fixed router navigation translation

Translations are seemingly broken when used outside of a Vue component and can't be used in a stage like the beforeEnter router guard. To circumnavigate this, I've kept the locale inside of the router guard, but moved the translation into the Alert and Error views. Even if the message is already translated, it will just ignore it.

* Fixed some tests

Error and BCGovAlertBanner test and view/components fixed. Added a prop to check if the message needs to be translated.

* Some fixes and sync with main

BaseNotificationBar now allows for translating an unformatted locale message
SubmissionsTable and MySubmissionsTable synced and search is working

* Form access validation and formio

Form.io CSS styling moved away from the component level and into the root style.scss file. This seems to fix our issue but is not what we used to do.
Unable to detect nested radio group in the form.idps for validation and there's no way to manually enforce a validation rules check. So when we detect a change in the idpType, we set the form idps ourselves and then change the userType twice to re-validate the radio group that is the parent.

* Update form.js

sync with master changes for form store

* Fixed errors

SubmissionsTable and MySubmissionsTable were broken but are now fixed
fixed tests

* Update FormSettings.vue

Passed the disabled prop down to the FormFunctionalitySettings so we can check if the form settings were disabled

* Update ManageFormActions.vue

Delete dialog was removed, added back in

* Update FormViewer.vue

Removed the timeout and added a check to only submit if the submission in the form.io hook matches the submission in the form renderer.
Fixed some tests that revolves around internationalization
Added form store email templating functions
* Update FormViewerMultiUpload.vue

quick fix to missing module

* Update FormViewerMultiUpload.vue

Added lodash and fixed missing error reference

* Fixed router navigation translation

Translations are seemingly broken when used outside of a Vue component and can't be used in a stage like the beforeEnter router guard. To circumnavigate this, I've kept the locale inside of the router guard, but moved the translation into the Alert and Error views. Even if the message is already translated, it will just ignore it.

* Fixed some tests

Error and BCGovAlertBanner test and view/components fixed. Added a prop to check if the message needs to be translated.

* Some fixes and sync with main

BaseNotificationBar now allows for translating an unformatted locale message
SubmissionsTable and MySubmissionsTable synced and search is working

* Form access validation and formio

Form.io CSS styling moved away from the component level and into the root style.scss file. This seems to fix our issue but is not what we used to do.
Unable to detect nested radio group in the form.idps for validation and there's no way to manually enforce a validation rules check. So when we detect a change in the idpType, we set the form idps ourselves and then change the userType twice to re-validate the radio group that is the parent.

* Update form.js

sync with master changes for form store

* Fixed errors

SubmissionsTable and MySubmissionsTable were broken but are now fixed
fixed tests

* Update FormSettings.vue

Passed the disabled prop down to the FormFunctionalitySettings so we can check if the form settings were disabled

* Update ManageFormActions.vue

Delete dialog was removed, added back in

* Update FormViewer.vue

Removed the timeout and added a check to only submit if the submission in the form.io hook matches the submission in the form renderer.

* fixes for email templating

fixes for email templating to work in vue3

* Fixed BaseStepper
* fix: show/hide api key when not using english

* fix: corrected layout spacing for API Key buttons
* fix: typo in noMachingRecordText

* fix: ru translation missing noMatchingRecordText

* fix: add noMatchingRecordText for team management
* Submissions Search Debounce Fix

* Revert "Submissions Search Debounce Fix"

This reverts commit c410dcc.

* Submissions Search Debounce Fix
* fix: vue3 event subscription fixes

* fix: icon sizes for email management

* fix: add space under steppers with buttons

* fix: autohide checkbox details to tighten spacing

* fix: css for panels was not applied

* fix: css for info card text size

* fix: layout of email receipt dialog
…mission search (#1073)

* fix: added a boolean check for filterformSubmissionStatusCode parameter

* fix: test failed issue fixes
* fix: list of form components always visible

* fix: missing class for css, update to use deep()
* fix: FORMS-891 vuetify traditional chinese support (#1072)

Co-authored-by: Walter Moar <[email protected]>

* fix: API repeated call when searching in SubmissionTable page

* fix:remove unused variable

* Update SubmissionsTable.vue

* fix: add missing search property

* fix: remove unused code

---------

Co-authored-by: bcgov-citz-ccft <[email protected]>
Co-authored-by: Walter Moar <[email protected]>
* Fix router maintaining position on redirect

* Fixed alert alternation & reintroduced transition

* Fixed spacing of submit button form.io

* Fixed Notes Responsiveness

* Increased size of lightbox image

* Fix: Prev submission action buttons alignment
Fixed tooltip background colour
BaseStepper fixed header and content box-shadow
Fixed BCGovNavBar elevation
added surface-variant colour
* Fix v-data-table background & hover

* Fixed card outline color to match vue2
* some fixes

removed print visibility from form viewer actions
form viewer actions edit button was too big
mysubmissionactions column spacing added
proactivehelp in admin view is working now

TODO: proactive help isn't being displayed.. the icon isn't being added into the form.io builder

* fixing tests
@bcgov-citz-ccft bcgov-citz-ccft merged commit a18aa4a into master Nov 15, 2023
11 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants