Fix for ticket #2911: Hitting enter on the "associate with current account" in OpenID flow failed due to forms being mixed together

Separating the two forms (one to create a local account, the other to attach the OpenID to an existing account) gets them working -- enter activates the appropriate default button.
This commit is contained in:
Brion Vibber 2010-12-01 12:21:00 -08:00
parent f68d4e7d06
commit bc9fcaf2eb

View File

@ -100,8 +100,15 @@ class FinishopenidloginAction extends Action
return;
}
// We don't recognize this OpenID, so we're going to give the user
// two options, each in its own mini-form.
//
// First, they can create a new account using their OpenID auth
// info. The profile will be pre-populated with whatever name,
// email, and location we can get from the OpenID provider, so
// all we ask for is the license confirmation.
$this->elementStart('form', array('method' => 'post',
'id' => 'account_connect',
'id' => 'account_create',
'class' => 'form_settings',
'action' => common_local_url('finishopenidlogin')));
$this->hidden('token', common_session_token());
@ -141,7 +148,15 @@ class FinishopenidloginAction extends Action
// TRANS: Button label in form in which to create a new user on the site for an OpenID.
$this->submit('create', _m('BUTTON', 'Create'));
$this->elementEnd('fieldset');
$this->elementEnd('form');
// The second option is to attach this OpenID to an existing account
// on the local system, which they need to provide a password for.
$this->elementStart('form', array('method' => 'post',
'id' => 'account_connect',
'class' => 'form_settings',
'action' => common_local_url('finishopenidlogin')));
$this->hidden('token', common_session_token());
$this->elementStart('fieldset', array('id' => 'form_openid_createaccount'));
$this->element('legend', null,
// TRANS: Used as form legend for form in which to connect an OpenID to an existing user on the site.