Move OAuth "remember me" javascript logic into a class.
This commit is contained in:
parent
43337c120d
commit
d705a2548c
3 changed files with 33 additions and 14 deletions
|
@ -56,6 +56,7 @@ import GfmAutoComplete from './gfm_auto_complete';
|
|||
import ShortcutsBlob from './shortcuts_blob';
|
||||
import initSettingsPanels from './settings_panels';
|
||||
import initExperimentalFlags from './experimental_flags';
|
||||
import OAuthRememberMe from './oauth_remember_me';
|
||||
|
||||
(function() {
|
||||
var Dispatcher;
|
||||
|
@ -127,6 +128,7 @@ import initExperimentalFlags from './experimental_flags';
|
|||
case 'sessions:new':
|
||||
new UsernameValidator();
|
||||
new ActiveTabMemoizer();
|
||||
new OAuthRememberMe({ container: $("#remember_me") }).bindEvents();
|
||||
break;
|
||||
case 'projects:boards:show':
|
||||
case 'projects:boards:index':
|
||||
|
|
31
app/assets/javascripts/oauth_remember_me.js
Normal file
31
app/assets/javascripts/oauth_remember_me.js
Normal file
|
@ -0,0 +1,31 @@
|
|||
/**
|
||||
* OAuth-based login buttons have a separate "remember me" checkbox.
|
||||
*
|
||||
* Toggling this checkbox adds/removes a `remember_me` parameter to the
|
||||
* login buttons' href, which is passed on to the omniauth callback.
|
||||
**/
|
||||
|
||||
export default class OAuthRememberMe {
|
||||
constructor(opts = {}) {
|
||||
this.container = opts.container || '';
|
||||
this.loginLinkSelector = '.oauth-login';
|
||||
}
|
||||
|
||||
bindEvents() {
|
||||
this.container.on('click', this.toggleRememberMe);
|
||||
}
|
||||
|
||||
toggleRememberMe(event) {
|
||||
var rememberMe = $(event.target).is(":checked");
|
||||
|
||||
$('.oauth-login').each(function(i, element) {
|
||||
var href = $(element).attr('href');
|
||||
|
||||
if (rememberMe) {
|
||||
$(element).attr('href', href + '?remember_me=1');
|
||||
} else {
|
||||
$(element).attr('href', href.replace('?remember_me=1', ''));
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
|
@ -10,17 +10,3 @@
|
|||
%fieldset
|
||||
= check_box_tag :remember_me
|
||||
= label_tag :remember_me, "Remember Me"
|
||||
|
||||
:javascript
|
||||
$("#remember_me").click(function(event){
|
||||
var rememberMe = $(event.target).is(":checked");
|
||||
$(".oauth-login").each(function(i, element) {
|
||||
var href = $(element).attr('href');
|
||||
|
||||
if (rememberMe) {
|
||||
$(element).attr('href', href + '?remember_me=1');
|
||||
} else {
|
||||
$(element).attr('href', href.replace('?remember_me=1', ''));
|
||||
}
|
||||
});
|
||||
});
|
||||
|
|
Loading…
Reference in a new issue