1
|
package eu.dnetlib.repo.manager.client;
|
2
|
|
3
|
import com.google.gwt.core.client.GWT;
|
4
|
import com.google.gwt.dom.client.Document;
|
5
|
import com.google.gwt.dom.client.Element;
|
6
|
import com.google.gwt.dom.client.InputElement;
|
7
|
import com.google.gwt.dom.client.Style;
|
8
|
import com.google.gwt.event.dom.client.ClickEvent;
|
9
|
import com.google.gwt.event.dom.client.ClickHandler;
|
10
|
import com.google.gwt.user.client.Window;
|
11
|
import com.google.gwt.user.client.rpc.AsyncCallback;
|
12
|
import com.google.gwt.user.client.ui.Button;
|
13
|
import eu.dnetlib.domain.functionality.UserProfile;
|
14
|
import eu.dnetlib.repo.manager.shared.UserAccessException;
|
15
|
|
16
|
/**
|
17
|
* Created by stefania on 12/2/15.
|
18
|
*/
|
19
|
public class LoginPage {
|
20
|
|
21
|
private static LoginPage instance = null;
|
22
|
|
23
|
private Element loginError = Document.get().getElementById("loginError");
|
24
|
private InputElement usernameElement = (InputElement) Document.get().getElementById("creds_username");
|
25
|
private InputElement passwordElement = (InputElement) Document.get().getElementById("creds_password");
|
26
|
private Element submitElement = Document.get().getElementById("loginButton");
|
27
|
private Button submitButton = Button.wrap(submitElement);
|
28
|
|
29
|
private UserServiceAsync userService = GWT.create(UserService.class);
|
30
|
|
31
|
private LoginPage() {
|
32
|
|
33
|
submitButton.addClickHandler(new ClickHandler() {
|
34
|
@Override
|
35
|
public void onClick(ClickEvent clickEvent) {
|
36
|
|
37
|
userService.login(usernameElement.getValue(), passwordElement.getValue(), new AsyncCallback<UserProfile>() {
|
38
|
|
39
|
@Override
|
40
|
public void onFailure(Throwable throwable) {
|
41
|
|
42
|
if(throwable instanceof UserAccessException) {
|
43
|
UserAccessException uae = (UserAccessException) throwable;
|
44
|
loginError.setInnerText(uae.getMessage());
|
45
|
loginError.getStyle().setDisplay(Style.Display.BLOCK);
|
46
|
} else {
|
47
|
loginError.setInnerText("Login failed - Something went wrong, please try again.");
|
48
|
loginError.getStyle().setDisplay(Style.Display.BLOCK);
|
49
|
}
|
50
|
}
|
51
|
|
52
|
@Override
|
53
|
public void onSuccess(UserProfile userProfile) {
|
54
|
|
55
|
Window.alert("Login succeeded! " + userProfile.getFirstname());
|
56
|
}
|
57
|
});
|
58
|
}
|
59
|
});
|
60
|
}
|
61
|
|
62
|
public static final LoginPage getInstance() {
|
63
|
|
64
|
if(instance==null)
|
65
|
instance = new LoginPage();
|
66
|
|
67
|
return instance;
|
68
|
}
|
69
|
|
70
|
public void showLoginPage() {
|
71
|
|
72
|
Document.get().getElementById("landingPage").getStyle().setDisplay(Style.Display.NONE);
|
73
|
Document.get().getElementById("register").getStyle().setDisplay(Style.Display.NONE);
|
74
|
Document.get().getElementById("wrapper").getStyle().setDisplay(Style.Display.NONE);
|
75
|
Document.get().getElementById("login").getStyle().setDisplay(Style.Display.BLOCK);
|
76
|
|
77
|
Document.get().getBody().removeAttribute("class");
|
78
|
Document.get().getBody().addClassName("gray-bg");
|
79
|
}
|
80
|
}
|