Project

General

Profile

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
}
(3-3/11)