Moved recovery request into recovery dialog. Fixed recovery dialog to
work now (except the URL sent from the server is still wrong).
This commit is contained in:
parent
7e1a59fe99
commit
6afc12c866
@ -88,19 +88,6 @@ namespace Online
|
||||
m_profile = NULL;
|
||||
} // CurrentUser
|
||||
|
||||
// ------------------------------------------------------------------------
|
||||
const XMLRequest * CurrentUser::requestRecovery(const core::stringw &username,
|
||||
const core::stringw &email)
|
||||
{
|
||||
assert(m_state == US_SIGNED_OUT || m_state == US_GUEST);
|
||||
XMLRequest * request = new XMLRequest();
|
||||
request->setServerURL("client-user.php");
|
||||
request->addParameter("action", "recovery");
|
||||
request->addParameter("username", username);
|
||||
request->addParameter("email", email);
|
||||
request->queue();
|
||||
return request;
|
||||
} // requestRecovery
|
||||
|
||||
// ------------------------------------------------------------------------
|
||||
const XMLRequest * CurrentUser::requestSignUp(const core::stringw &username,
|
||||
|
@ -168,7 +168,7 @@ namespace Online
|
||||
/**Singleton */
|
||||
static CurrentUser * get();
|
||||
static void deallocate();
|
||||
static void setUserDetails(HTTPRequest *html);
|
||||
static void setUserDetails(HTTPRequest *request);
|
||||
|
||||
void requestSavedSession();
|
||||
SignInRequest * requestSignIn( const irr::core::stringw &username,
|
||||
@ -186,9 +186,6 @@ namespace Online
|
||||
const irr::core::stringw &password_ver,
|
||||
const irr::core::stringw &email);
|
||||
|
||||
const XMLRequest * requestRecovery(const irr::core::stringw &username,
|
||||
const irr::core::stringw &email);
|
||||
|
||||
const XMLRequest * requestGetAddonVote(const std::string & addon_id) const;
|
||||
const SetAddonVoteRequest * requestSetAddonVote(const std::string & addon_id, float rating) const;
|
||||
void requestFriendRequest(const uint32_t friend_id) const;
|
||||
|
@ -32,25 +32,30 @@ using namespace irr::gui;
|
||||
using namespace Online;
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
RecoveryDialog::RecoveryDialog() :
|
||||
ModalDialog(0.8f,0.8f)
|
||||
/** Constructor for the recovery dialog.
|
||||
*/
|
||||
RecoveryDialog::RecoveryDialog() : ModalDialog(0.8f,0.8f)
|
||||
{
|
||||
m_recovery_request = NULL;
|
||||
m_self_destroy = false;
|
||||
m_recovery_request = NULL;
|
||||
m_self_destroy = false;
|
||||
m_show_recovery_input = true;
|
||||
}
|
||||
m_show_recovery_info = false;
|
||||
showRecoveryInput();
|
||||
} // RecoveryDialog
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
/** Destructor, destroys the recovery request.
|
||||
*/
|
||||
RecoveryDialog::~RecoveryDialog()
|
||||
{
|
||||
delete m_recovery_request;
|
||||
}
|
||||
} //~RecoverDialog
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
void RecoveryDialog::showRecoveryInput(){
|
||||
/** Shows the input screen to get the account name and email address.
|
||||
*/
|
||||
void RecoveryDialog::showRecoveryInput()
|
||||
{
|
||||
m_show_recovery_input = false;
|
||||
clearWindow();
|
||||
m_phase = Input;
|
||||
@ -72,11 +77,13 @@ void RecoveryDialog::showRecoveryInput(){
|
||||
assert(m_submit_widget != NULL);
|
||||
m_cancel_widget = getWidget<IconButtonWidget>("cancel");
|
||||
assert(m_cancel_widget != NULL);
|
||||
}
|
||||
} // showRecoveryInput
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
void RecoveryDialog::showRecoveryInfo(){
|
||||
/** Informs the user that an email will be sent.
|
||||
*/
|
||||
void RecoveryDialog::showRecoveryInfo()
|
||||
{
|
||||
m_show_recovery_info = false;
|
||||
clearWindow();
|
||||
m_phase = Info;
|
||||
@ -89,14 +96,15 @@ void RecoveryDialog::showRecoveryInfo(){
|
||||
assert(m_options_widget != NULL);
|
||||
m_cancel_widget = getWidget<IconButtonWidget>("cancel");
|
||||
assert(m_cancel_widget != NULL);
|
||||
}
|
||||
} // showRecoveryInfo
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
/** Let esc act as cancel.
|
||||
*/
|
||||
bool RecoveryDialog::onEscapePressed()
|
||||
{
|
||||
return m_cancel_widget->isActivated();
|
||||
}
|
||||
} // onEscapePressed
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
@ -104,29 +112,40 @@ void RecoveryDialog::processInput()
|
||||
{
|
||||
const core::stringw username = m_username_widget->getText().trim();
|
||||
const core::stringw email = m_email_widget->getText().trim();
|
||||
if (username.size() < 4 || username.size() > 30 || email.size() < 4 || email.size() > 50)
|
||||
if (username.size() < 4 || username.size() > 30 ||
|
||||
email.size() < 4 || email.size() > 50 )
|
||||
{
|
||||
sfx_manager->quickSound("anvil");
|
||||
m_info_widget->setErrorColor();
|
||||
m_info_widget->setText(_("Username and/or email address invalid."), false);
|
||||
m_info_widget->setText(_("Username and/or email address invalid."),
|
||||
false);
|
||||
}
|
||||
else
|
||||
{
|
||||
m_info_widget->setDefaultColor();
|
||||
m_options_widget->setDeactivated();
|
||||
m_recovery_request = CurrentUser::get()->requestRecovery(username, email);
|
||||
m_recovery_request = new XMLRequest();
|
||||
m_recovery_request->setServerURL("client-user.php");
|
||||
m_recovery_request->addParameter("action", "recovery");
|
||||
m_recovery_request->addParameter("username", username);
|
||||
m_recovery_request->addParameter("email", email);
|
||||
m_recovery_request->queue();
|
||||
}
|
||||
}
|
||||
} // processInput
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
GUIEngine::EventPropagation RecoveryDialog::processEvent(const std::string& eventSource)
|
||||
/** Handle a user event.
|
||||
*/
|
||||
GUIEngine::EventPropagation
|
||||
RecoveryDialog::processEvent(const std::string& eventSource)
|
||||
{
|
||||
std::string selection;
|
||||
if (eventSource == m_options_widget->m_properties[PROP_ID])
|
||||
selection = m_options_widget->getSelectionIDString(PLAYER_ID_GAME_MASTER);
|
||||
selection =
|
||||
m_options_widget->getSelectionIDString(PLAYER_ID_GAME_MASTER);
|
||||
else
|
||||
selection = eventSource;
|
||||
|
||||
if (selection == m_cancel_widget->m_properties[PROP_ID])
|
||||
{
|
||||
m_self_destroy = true;
|
||||
@ -138,10 +157,11 @@ GUIEngine::EventPropagation RecoveryDialog::processEvent(const std::string& even
|
||||
return GUIEngine::EVENT_BLOCK;
|
||||
}
|
||||
return GUIEngine::EVENT_LET;
|
||||
}
|
||||
} // processEvent
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
/** Called when the user pressed enter.
|
||||
*/
|
||||
void RecoveryDialog::onEnterPressedInternal()
|
||||
{
|
||||
|
||||
@ -152,7 +172,10 @@ void RecoveryDialog::onEnterPressedInternal()
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
/** This is called every frame and checks if an outstanding recovery request
|
||||
* was finished. If so, it displays the results.
|
||||
* \param dt Time step size.
|
||||
*/
|
||||
void RecoveryDialog::onUpdate(float dt)
|
||||
{
|
||||
if(m_recovery_request != NULL)
|
||||
@ -185,4 +208,4 @@ void RecoveryDialog::onUpdate(float dt)
|
||||
showRecoveryInput();
|
||||
else if (m_show_recovery_info)
|
||||
showRecoveryInfo();
|
||||
}
|
||||
} // onUpdates
|
||||
|
@ -52,7 +52,7 @@ private:
|
||||
bool m_show_recovery_input;
|
||||
bool m_show_recovery_info;
|
||||
|
||||
const Online::XMLRequest * m_recovery_request;
|
||||
Online::XMLRequest * m_recovery_request;
|
||||
|
||||
GUIEngine::TextBoxWidget * m_username_widget;
|
||||
GUIEngine::TextBoxWidget * m_email_widget;
|
||||
|
@ -29,6 +29,7 @@
|
||||
#include "states_screens/online_screen.hpp"
|
||||
#include "states_screens/register_screen.hpp"
|
||||
#include "states_screens/state_manager.hpp"
|
||||
#include "states_screens/dialogs/recovery_dialog.hpp"
|
||||
#include "utils/log.hpp"
|
||||
#include "utils/translation.hpp"
|
||||
|
||||
@ -174,6 +175,7 @@ void LoginScreen::eventCallback(Widget* widget, const std::string& name,
|
||||
}
|
||||
else if(button=="recovery")
|
||||
{
|
||||
new RecoveryDialog();
|
||||
}
|
||||
else if(button=="cancel")
|
||||
StateManager::get()->escapePressed();
|
||||
|
Loading…
x
Reference in New Issue
Block a user