diff options
author | zeripath <art27@cantab.net> | 2022-11-25 23:28:03 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-11-25 17:28:03 -0600 |
commit | b56d269cf8a36582863f2629f80685087afb5a41 (patch) | |
tree | 8788aa81f84ed845e6993172ef734e508c5a20f9 /web_src/js/features | |
parent | ff4e292b3fe49ee3086f45de1717301981e5f5f2 (diff) | |
download | gitea-b56d269cf8a36582863f2629f80685087afb5a41.tar.gz gitea-b56d269cf8a36582863f2629f80685087afb5a41.zip |
Prevent NPE if trying to restore an already restored deleted branch (#21940) (#21944)
Backport #21940
If a deleted-branch has already been restored, a request to restore it
again will cause a NPE. This PR adds detection for this case, but also
disables buttons when they're clicked in order to help prevent
accidental repeat requests.
Fix #21930
Signed-off-by: Andrew Thornton <art27@cantab.net>
Diffstat (limited to 'web_src/js/features')
-rw-r--r-- | web_src/js/features/common-global.js | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/web_src/js/features/common-global.js b/web_src/js/features/common-global.js index b00b4aea9c..7efefd7084 100644 --- a/web_src/js/features/common-global.js +++ b/web_src/js/features/common-global.js @@ -260,6 +260,7 @@ export function initGlobalLinkActions() { e.preventDefault(); const $this = $(this); const redirect = $this.data('redirect'); + $this.prop('disabled', true); $.post($this.data('url'), { _csrf: csrfToken }).done((data) => { @@ -270,6 +271,8 @@ export function initGlobalLinkActions() { } else { window.location.reload(); } + }).always(() => { + $this.prop('disabled', false); }); } @@ -283,11 +286,14 @@ export function initGlobalLinkActions() { // FIXME: this is only used once, and should be replace with `link-action` instead $('.undo-button').on('click', function () { const $this = $(this); + $this.prop('disabled', true); $.post($this.data('url'), { _csrf: csrfToken, id: $this.data('id') }).done((data) => { window.location.href = data.redirect; + }).always(() => { + $this.prop('disabled', false); }); }); } |