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

Remove jQuery AJAX from the archive download links #29380

Merged
merged 4 commits into from
Feb 25, 2024

Conversation

yardenshoham
Copy link
Member

  • Removed all jQuery AJAX calls and replaced with our fetch wrapper
  • Tested the repo archive download links dropdown functionality and it works as before

Demo using fetch instead of jQuery AJAX

action

- Removed all jQuery AJAX calls and replaced with our fetch wrapper
- Tested the repo collaborator mode dropdown functionality and it works as before

Signed-off-by: Yarden Shoham <git@yardenshoham.com>
@GiteaBot GiteaBot added the lgtm/need 2 This PR needs two approvals by maintainers to be considered for merging. label Feb 24, 2024
@pull-request-size pull-request-size bot added the size/M Denotes a PR that changes 30-99 lines, ignoring generated files. label Feb 24, 2024
@yardenshoham yardenshoham added the type/refactoring Existing code has been cleaned up. There should be no new functionality. label Feb 24, 2024
@yardenshoham
Copy link
Member Author

BTW I'm not sure that logic adding the loading class to <i> is actually doing anything

@GiteaBot GiteaBot added lgtm/need 1 This PR needs approval from one additional maintainer to be merged. and removed lgtm/need 2 This PR needs two approvals by maintainers to be considered for merging. labels Feb 24, 2024
const data = await response.json();
if (!data) {
// XXX Shouldn't happen?
$target.closest('.dropdown').children('i').removeClass('loading');
Copy link
Member

@silverwind silverwind Feb 24, 2024

Choose a reason for hiding this comment

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

put the loading removal in a finally clause . This is important because fetch will throw on network errors.

Copy link
Member Author

Choose a reason for hiding this comment

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

It shouldn't happen always so I put it in a catch but anyway these loading indicators are not working

Copy link
Member

@silverwind silverwind Feb 25, 2024

Choose a reason for hiding this comment

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

Now you have 3 code branches that remove the indicator, while a single finally would be sufficient as long as you don't return inside the try. Actually I think a finally may even execute when you return.

Copy link
Contributor

Choose a reason for hiding this comment

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

Now you have 3 code branches that remove the indicator, while a single finally would be sufficient as long as you don't return inside the try. Actually I think a finally may even execute when you return.

Yes, finally executes always, even after return

Copy link
Member

@silverwind silverwind Feb 25, 2024

Choose a reason for hiding this comment

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

In fact it does:

(() => {
  try {
    return console.log('a');
  } finally {
    console.log('b');
  }
})();

Logs both "a" and "b".

Copy link
Member Author

Choose a reason for hiding this comment

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

In the case complete is false we don't want to remove the loading indicator

Copy link
Member

@silverwind silverwind Feb 25, 2024

Choose a reason for hiding this comment

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

How about setting a let isComplete = true variable before the fetch, set it to false conditionally and check it during indicator removal and before the recursion?

Copy link
Member Author

Choose a reason for hiding this comment

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

The code as it is right now has the same behavior as before. Logic changes should not go in this PR

Copy link
Member

Choose a reason for hiding this comment

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

The code reads like ass but previous one did too, so whatever.

Copy link
Member Author

Choose a reason for hiding this comment

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

Agreed on that front

@GiteaBot GiteaBot added lgtm/done This PR has enough approvals to get merged. There are no important open reservations anymore. and removed lgtm/need 1 This PR needs approval from one additional maintainer to be merged. labels Feb 25, 2024
@yardenshoham yardenshoham added the reviewed/wait-merge This pull request is part of the merge queue. It will be merged soon. label Feb 25, 2024
@silverwind silverwind enabled auto-merge (squash) February 25, 2024 16:53
@silverwind silverwind merged commit ed3892d into go-gitea:main Feb 25, 2024
26 checks passed
@GiteaBot GiteaBot added this to the 1.22.0 milestone Feb 25, 2024
@GiteaBot GiteaBot removed the reviewed/wait-merge This pull request is part of the merge queue. It will be merged soon. label Feb 25, 2024
@yardenshoham yardenshoham deleted the repo-common-jquery-ajax branch February 25, 2024 16:54
zjjhot added a commit to zjjhot/gitea that referenced this pull request Feb 26, 2024
* giteaofficial/main: (45 commits)
  Include resource state events in Gitlab downloads (go-gitea#29382)
  Add API to get PR by base/head (go-gitea#29242)
  [skip ci] Updated translations via Crowdin
  Improve Documentation for Restoration from backup (go-gitea#29321)
  Refactor "user/active" related logic (go-gitea#29390)
  Remove jQuery AJAX from the archive download links (go-gitea#29380)
  Add tailwindcss (go-gitea#29357)
  Add missing space (go-gitea#29393)
  Integrate alpine `noarch` packages into other architectures index (go-gitea#29137)
  enforce maxlength in frontend (go-gitea#29389)
  Remove incorrect and unnecessary Escape from templates (go-gitea#29394)
  Make actions animation rotate counterclockwisely (go-gitea#29378)
  Use `crypto/sha256` (go-gitea#29386)
  Add `io.Closer` guidelines (go-gitea#29387)
  Remove jQuery AJAX from the notice selection deletion button (go-gitea#29381)
  Refactor Safe modifier (go-gitea#29392)
  Add attachment support for code review comments (go-gitea#29220)
  Refactor modules/git global variables (go-gitea#29376)
  Remove jQuery from the code diff expansion buttons (go-gitea#29385)
  Remove jQuery AJAX from the markdown editor preview (go-gitea#29384)
  ...
@github-actions github-actions bot locked as resolved and limited conversation to collaborators Mar 4, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
lgtm/done This PR has enough approvals to get merged. There are no important open reservations anymore. size/M Denotes a PR that changes 30-99 lines, ignoring generated files. type/refactoring Existing code has been cleaned up. There should be no new functionality.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants