summaryrefslogtreecommitdiff
blob: 9de8c2b912af56d13f8adc47ddeda578aa0c1728 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
jQuery( document ).ready( function( $ ) {
	var body = $( 'body' ),
		rememberMe = $( '#rememberme' ),
		ssoButton = $( 'a.jetpack-sso.button' ),
		toggleSSO = $( '.jetpack-sso-toggle' ),
		userLogin = $( '#user_login' ),
		ssoWrap   = $( '#jetpack-sso-wrap' ),
		loginForm = $( '#loginform' ),
		overflow  = $( '<div style="overflow: auto;"></div>' );

	// The overflow div is a poor man's clearfloat. We reposition the remember me
	// checkbox and the submit button within that to clear the float on the
	// remember me checkbox. This is important since we're positioning the SSO
	// UI under the submit button.
	//
	// @TODO: Remove this approach once core ticket 28528 is in and we have more actions in wp-login.php.
	// See - https://core.trac.wordpress.org/ticket/28528
	loginForm.append( overflow );
	overflow.append( $( 'p.forgetmenot' ), $( 'p.submit' ) );

	// We reposition the SSO UI at the bottom of the login form which
	// fixes a tab order issue. Then we override any styles for absolute
	// positioning of the SSO UI.
	loginForm.append( ssoWrap );
	body.addClass( 'jetpack-sso-repositioned' );

	rememberMe.on( 'change', function() {
		var url       = ssoButton.prop( 'href' ),
			isChecked = rememberMe.prop( 'checked' ) ? 1 : 0;

		if ( url.match( /&rememberme=\d/ ) ) {
			url = url.replace( /&rememberme=\d/, '&rememberme=' + isChecked );
		} else {
			url += '&rememberme=' + isChecked;
		}

		ssoButton.prop( 'href', url );
	} ).change();

	toggleSSO.on( 'click', function( e ) {
		e.preventDefault();
		body.toggleClass( 'jetpack-sso-form-display' );
		if ( ! body.hasClass( 'jetpack-sso-form-display' ) ) {
			userLogin.focus();
		}
	} );
} );