Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007 #include <Wt/WText>
00008 #include <Wt/WLabel>
00009 #include <Wt/WLineEdit>
00010 #include <Wt/WPushButton>
00011 #include <Wt/WTemplate>
00012 #include <Wt/WContainerWidget>
00013 #include <Wt/WComboBox>
00014
00015 #include "LoginWidget.h"
00016 #include "Session.h"
00017
00018 using namespace Wt;
00019
00020 LoginWidget::LoginWidget(Session* session, WContainerWidget *parent):
00021 WCompositeWidget(parent),
00022 session_(session)
00023 {
00024 setImplementation(impl_ = new WTemplate(tr("login.form")));
00025
00026 impl_->bindString("intro", tr("login.intro"));
00027
00028 userName_ = new WLineEdit();
00029 impl_->bindWidget("username", userName_);
00030 userName_->setId("username");
00031
00032 passWord_ = new WLineEdit();
00033 impl_->bindWidget("password", passWord_);
00034 passWord_->setEchoMode(WLineEdit::Password);
00035 passWord_->setId("password");
00036
00037 language_ = new WComboBox();
00038 impl_->bindWidget("language", language_);
00039 language_->insertItem(0, "English words (18957 words)");
00040 language_->insertItem(1, "Nederlandse woordjes (1688 woorden)");
00041 language_->setId("language");
00042
00043 WPushButton *loginButton = new WPushButton("Login");
00044 impl_->bindWidget("login", loginButton);
00045 loginButton->clicked().connect(this, &LoginWidget::checkCredentials);
00046
00047 impl_->bindString("login-error", "");
00048 }
00049
00050 void LoginWidget::checkCredentials()
00051 {
00052 std::string userName = userName_->text().toUTF8();
00053 std::string passWord = passWord_->text().toUTF8();
00054 Dictionary dictionary = (Dictionary) language_->currentIndex();
00055
00056 if (!session_->login(userName, passWord)) {
00057 impl_->bindString("login-error", tr("login.error"));
00058
00059 userName_->setText("");
00060 passWord_->setText("");
00061 } else {
00062 session_->setDictionary(dictionary);
00063
00064 loggedIn_.emit();
00065 }
00066 }