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

build: release 4.55.0 #1048

Merged
merged 10 commits into from
Jan 26, 2021
Merged

build: release 4.55.0 #1048

merged 10 commits into from
Jan 26, 2021

Conversation

mantariksh
Copy link
Contributor

Improvements

  • refactor/polyfills: browser detection, other fixes for performance gains #1039
  • refactor/submit-form: reduce possibility of race conditions in submit-form controller #1045
  • refactor: Minor refactoring of the submissions client factory #1040

Dependency upgrades

  • fix: upgrade mongoose from 5.11.9 to 5.11.10 #1047
  • fix(deps): bump angular-translate-loader-partial from 2.18.3 to 2.18.4 #1037
  • chore(deps-dev): bump webpack from 4.43.0 to 4.46.0 #1035

frankchn and others added 8 commits January 25, 2021 11:57
chore: merge 4.54.0 into develop
Bumps [webpack](https://github.com/webpack/webpack) from 4.43.0 to 4.46.0.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](webpack/webpack@v4.43.0...v4.46.0)

Signed-off-by: dependabot[bot] <[email protected]>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…-form controller (#1045)

The bug in #1044 was not reproduced. This is not a surprise as concurrency bugs are indeterministic by definition. However, based on the symptom and rarity of the bug, it is possible that the behavior is a result of edge cases caused by poor integration with AngularJS. Multiple code paths were thoroughly examined, and the appropriate refactor performed to improve code clarity and reduce the likelihood of concurrency issues.

controllerState variable refactor
The controllerState variable is used to store the cloned form object in the savedForm property before fields were locked/disabled. It was previously not attached to the directive scope, but simply as a const which makes it a possible candidate to resolve the concurrency bug as AngularJS would not be tracking changes to this variable during the digest cycle.

submitFormMain function refactor
The need to clone the form object before calling this function was removed by refactoring to avoid assigning to the form.attachment property (it is a very bad practice to mutate function arguments). This not only removed the need for an expensive clone operation, but also guarantees that there can be no divergence between the form object in the controller scope vs the one used in the submitForm function, since the call to submitForm(scope.form) is a reference to the same form object.

Co-authored-by: Yuanruo Liang <[email protected]>
…ins (#1039)

* refactor: move polyfills used in main JS thread into a single file

* doc: add explanations for each

* feat(performance): only IE11 should receive existing polyfills

* docs(browser-detection): add reminder that isInternetExplorer() is not safe to call from a WebWorker context

* refactor(worker): only polyfill if Promise is unavailable.

* fix: avoid transpiling polyfills since they pneed to monkey patch native APIs

* fix(regenerator-runtime): babel transpilation expects library to be available in global namespace

* refactor(ndjson-stream): remove polyfills and document code better

* fix: remove misleading comments

* refactor: convert from browser detection to feature detection

Co-authored-by: Yuanruo Liang <[email protected]>
@mantariksh
Copy link
Contributor Author

mantariksh commented Jan 26, 2021

Tests

IE11 intranet general run-through

  • Create email mode form with all fields. Activate and submit form. Check that you can receive responses in your GSIB inbox.
  • Collaborators can be added in email mode.
  • Create storage mode form with all fields. Activate and submit form.
  • Response CSV can be downloaded for storage mode.
  • Responses can be viewed in Data tab in storage mode.
  • Attachments for individual fields can be downloaded from Data tab in storage mode.
  • Attachment ZIP for submission can be downloaded from Data tab in storage mode.
  • Submission IDs can be filtered in storage mode.
  • Collaborators can be added and their collaborating rights edited in storage mode.

@mantariksh
Copy link
Contributor Author

mantariksh commented Jan 26, 2021

Tests

  • Storage mode submission ID is logged together with IP

@mantariksh mantariksh merged commit 2154d15 into release Jan 26, 2021
@karrui karrui deleted the release-4.55.0 branch April 21, 2021 02:16
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.

3 participants