aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsilverwind <me@silverwind.io>2023-05-18 13:50:11 +0200
committerGitHub <noreply@github.com>2023-05-18 11:50:11 +0000
commit1e1e8b5d43a36aa788ce0973fa57ac6df648cbd0 (patch)
tree327adbf90c88765a071a0af25d9815d2736d4b4c
parent09ab64dfad6754d88c7e4da15789bf845b19c30f (diff)
downloadgitea-1e1e8b5d43a36aa788ce0973fa57ac6df648cbd0.tar.gz
gitea-1e1e8b5d43a36aa788ce0973fa57ac6df648cbd0.zip
Fix OAuth loading state (#24788)
Fix regression from https://github.com/go-gitea/gitea/pull/24740 where the loading state was not showing because the `oauth-login-image` class was removed. Replaced the Fomantic loader with a pure CSS loader and cleaned up the HTML. Diff: https://github.com/go-gitea/gitea/pull/24788/files?diff=unified&w=1 ![](https://github.com/go-gitea/gitea/assets/115237/b5b4137f-9821-464b-9777-858fe85d9e03) Co-authored-by: Giteabot <teabot@gitea.io>
-rw-r--r--templates/user/auth/signin_inner.tmpl51
-rw-r--r--web_src/css/modules/animations.css5
-rw-r--r--web_src/js/features/user-auth.js34
3 files changed, 45 insertions, 45 deletions
diff --git a/templates/user/auth/signin_inner.tmpl b/templates/user/auth/signin_inner.tmpl
index ceafc257ea..8d9375de75 100644
--- a/templates/user/auth/signin_inner.tmpl
+++ b/templates/user/auth/signin_inner.tmpl
@@ -54,33 +54,30 @@
{{if and .OrderedOAuth2Names .OAuth2Providers}}
<hr class="ui divider"/>
- <div class="oauth2 center">
- <div id="oauth2-login-loader" class="ui disabled centered loader"></div>
- <div>
- <div id="oauth2-login-navigator" class="gt-df gt-jc">
- <span class="gt-self-center gt-mr-3">{{.locale.Tr "sign_in_with"}}</span>
- <div class="gt-df gt-fw gt-gap-4">
- {{range $key := .OrderedOAuth2Names}}
- {{$provider := index $.OAuth2Providers $key}}
- <a class="{{$provider.Name}} silenced oauth-login-link" href="{{AppSubUrl}}/user/oauth2/{{$key}}" data-tooltip-content="{{$provider.DisplayName}}{{if eq $provider.Name "openidConnect"}} ({{$key}}){{end}}">
- {{if eq $provider.Name "github"}}
- {{svg "octicon-mark-github" 40}}
- {{else if eq $provider.Name "gitlab"}}
- {{svg "gitea-gitlab" 40}}
- {{else if eq $provider.Name "openidConnect"}}
- {{svg "gitea-openid" 40}}
- {{else}}
- <img
- class="gt-object-contain"
- width="40"
- height="40"
- alt="{{$provider.DisplayName}}{{if eq $provider.Name "openidConnect"}} ({{$key}}){{end}}"
- src="{{AppSubUrl}}{{$provider.Image}}"
- >
- {{end}}
- </a>
- {{end}}
- </div>
+ <div id="oauth2-login-navigator">
+ <div id="oauth2-login-navigator-inner" class="gt-df gt-jc">
+ <span class="gt-self-center gt-mr-3">{{.locale.Tr "sign_in_with"}}</span>
+ <div class="gt-df gt-fw gt-gap-4">
+ {{range $key := .OrderedOAuth2Names}}
+ {{$provider := index $.OAuth2Providers $key}}
+ <a class="{{$provider.Name}} silenced oauth-login-link" href="{{AppSubUrl}}/user/oauth2/{{$key}}" data-tooltip-content="{{$provider.DisplayName}}{{if eq $provider.Name "openidConnect"}} ({{$key}}){{end}}">
+ {{if eq $provider.Name "github"}}
+ {{svg "octicon-mark-github" 40}}
+ {{else if eq $provider.Name "gitlab"}}
+ {{svg "gitea-gitlab" 40}}
+ {{else if eq $provider.Name "openidConnect"}}
+ {{svg "gitea-openid" 40}}
+ {{else}}
+ <img
+ class="gt-object-contain"
+ width="40"
+ height="40"
+ alt="{{$provider.DisplayName}}{{if eq $provider.Name "openidConnect"}} ({{$key}}){{end}}"
+ src="{{AppSubUrl}}{{$provider.Image}}"
+ >
+ {{end}}
+ </a>
+ {{end}}
</div>
</div>
</div>
diff --git a/web_src/css/modules/animations.css b/web_src/css/modules/animations.css
index 689898da2a..0151f1e002 100644
--- a/web_src/css/modules/animations.css
+++ b/web_src/css/modules/animations.css
@@ -46,6 +46,11 @@ code.language-math.is-loading::after {
height: 1.25rem;
}
+#oauth2-login-navigator.is-loading::after {
+ width: 40px;
+ height: 40px;
+}
+
@keyframes fadein {
0% {
opacity: 0;
diff --git a/web_src/js/features/user-auth.js b/web_src/js/features/user-auth.js
index 60ea14dfaa..e3ce4e56e4 100644
--- a/web_src/js/features/user-auth.js
+++ b/web_src/js/features/user-auth.js
@@ -1,24 +1,22 @@
import $ from 'jquery';
-import {hideElem, showElem} from '../utils/dom.js';
export function initUserAuthOauth2() {
- const $oauth2LoginNav = $('#oauth2-login-navigator');
- if ($oauth2LoginNav.length === 0) return;
-
- $oauth2LoginNav.find('.oauth-login-image').on('click', () => {
- const oauthLoader = $('#oauth2-login-loader');
- const oauthNav = $('#oauth2-login-navigator');
-
- hideElem(oauthNav);
- oauthLoader.removeClass('disabled');
-
- setTimeout(() => {
- // recover previous content to let user try again
- // usually redirection will be performed before this action
- oauthLoader.addClass('disabled');
- showElem(oauthNav);
- }, 5000);
- });
+ const outer = document.getElementById('oauth2-login-navigator');
+ if (!outer) return;
+ const inner = document.getElementById('oauth2-login-navigator-inner');
+
+ for (const link of outer.querySelectorAll('.oauth-login-link')) {
+ link.addEventListener('click', () => {
+ inner.classList.add('gt-invisible');
+ outer.classList.add('is-loading');
+ setTimeout(() => {
+ // recover previous content to let user try again
+ // usually redirection will be performed before this action
+ outer.classList.remove('is-loading');
+ inner.classList.remove('gt-invisible');
+ }, 5000);
+ });
+ }
}
export function initUserAuthLinkAccountView() {