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

1175 course import dont ask to leave page all the time #1198

Merged
merged 5 commits into from
Nov 23, 2023

Conversation

DawinYurtseven
Copy link
Contributor

What was the problem:

The problem was that each time something happened during a Course Import, the browser would ask the user if they wanted to leave the page, which would lead to a refreshed site and no changes saved.

What caused it:

there where two reasons why this happened.

  • The body of the import was a without a submit type function. this makes the browser think that the user didn't save any change while the site would update itself.
  • The addEventListener in the course-import.ts file wasn't removed after step 2, a successful import/ an error.

My Fixes:

  • turned the body in course-import.gohtml into a
  • added the function OnBeforeUnloadHandler which is just the event itself. but I added removeEventListener in the "notify2" event so that when the second step has been done, the user has no more inputs to do, so asking them would be meaningless

- The import body was a form without a submit, making the webbrowser think that changes have been made without saving. this has been fixed by making the body a <div> instead of a <form>
- The EventListener in course-import.ts hasn't been removed even after import has been finished, making the browser ask even when import has been finished. to fix this, I wrote the function separately to first add it during the first step in "notify1" and then remove it in "notify2" when the process is finished.
- The import body was a form without a submit, making the webbrowser think that changes have been made without saving. this has been fixed by making the body a <div> instead of a <form>
- The EventListener in course-import.ts hasn't been removed even after import has been finished, making the browser ask even when import has been finished. to fix this, I wrote the function separately to first add it during the first step in "notify1" and then remove it in "notify2" when the process is finished.
@github-actions
Copy link

Your Testserver will be ready at https://1198.test.live.mm.rbg.tum.de in a few minutes.

Logins
Kurs1 Kurs2 Kurs3 Kurs4
public public loggedin enrolled
prof1 prof1 prof2 prof1
prof2
student1
student2
student3
student1
student2
student2
student3
student1
student2

@DawinYurtseven DawinYurtseven self-assigned this Oct 19, 2023
@DawinYurtseven DawinYurtseven marked this pull request as draft October 26, 2023 08:54
@DawinYurtseven DawinYurtseven marked this pull request as ready for review October 26, 2023 08:54
@DawinYurtseven DawinYurtseven removed the request for review from joschahenningsen October 26, 2023 08:55
@SebiWrn
Copy link
Collaborator

SebiWrn commented Oct 27, 2023

Maybe you can add back the two comments to preventDefault() and returnValue that have been there before so we know why these two commands are there

@DawinYurtseven DawinYurtseven requested review from joschahenningsen and SebiWrn and removed request for SebiWrn October 27, 2023 10:29
Copy link
Collaborator

@SebiWrn SebiWrn left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Well done 👍

@SebiWrn SebiWrn merged commit a74d95e into dev Nov 23, 2023
8 checks passed
@SebiWrn SebiWrn deleted the 1175_Course_Import_Dont_ask_to_leave_page_all_the_time branch November 23, 2023 13:57
SebiWrn pushed a commit that referenced this pull request May 7, 2024
* Reasons for the BeforeUnload events:

- The import body was a form without a submit, making the webbrowser think that changes have been made without saving. this has been fixed by making the body a <div> instead of a <form>
- The EventListener in course-import.ts hasn't been removed even after import has been finished, making the browser ask even when import has been finished. to fix this, I wrote the function separately to first add it during the first step in "notify1" and then remove it in "notify2" when the process is finished.

* Reasons for the BeforeUnload events:

- The import body was a form without a submit, making the webbrowser think that changes have been made without saving. this has been fixed by making the body a <div> instead of a <form>
- The EventListener in course-import.ts hasn't been removed even after import has been finished, making the browser ask even when import has been finished. to fix this, I wrote the function separately to first add it during the first step in "notify1" and then remove it in "notify2" when the process is finished.

* executed "npm run lint-fix" to fix ESLint fails

* added comments to newly added function. Will plan on adding more comments to the other functions for better readability later on.

* ESLint fix
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.

2 participants