Project

General

Profile

1 40232 stefania.m
package eu.dnetlib.repo.manager.client;
2
3 40267 stefania.m
import com.google.gwt.dom.client.Document;
4 49691 antonis.le
import com.google.gwt.dom.client.Style;
5 40267 stefania.m
import com.google.gwt.user.client.History;
6
import eu.dnetlib.domain.functionality.UserProfile;
7
8 40232 stefania.m
/**
9
 * Created by stefania on 12/2/15.
10
 */
11
public class NavigationManager {
12
13
    private static NavigationManager instance = null;
14
15
    private NavigationManager() {
16
17
    }
18
19
    public static final NavigationManager getInstance() {
20
21
        if(instance==null)
22
            instance = new NavigationManager();
23
24
        return instance;
25
    }
26
27
    public void navigate(String token) {
28
29 49691 antonis.le
        //TODO use role instead of email
30
        if(RepositoryManager.currentUserRole.equals("admin")) {
31
            Document.get().getElementById("admin1").getStyle().setDisplay(Style.Display.BLOCK);
32
            Document.get().getElementById("admin2").getStyle().setDisplay(Style.Display.BLOCK);
33
        } else {
34
            Document.get().getElementById("admin1").getStyle().setDisplay(Style.Display.NONE);
35
            Document.get().getElementById("admin2").getStyle().setDisplay(Style.Display.NONE);
36
        }
37
38 40232 stefania.m
        RepositoryManager.previousToken = RepositoryManager.currentToken;
39
        RepositoryManager.currentToken = token;
40
41 49691 antonis.le
        if (token.equals("landing")) {
42 40267 stefania.m
43 40232 stefania.m
            LandingPage.getInstance().showLandingPage();
44 40258 stefania.m
45 49691 antonis.le
        } else if (token.equals("login")) {
46 40267 stefania.m
47
            LoginPage.getInstance().showLoginPage();
48
            LoginPage.LoginListener loginListener = new LoginPage.LoginListener() {
49
                @Override
50
                public void loginSucceeded(UserProfile userProfile) {
51
52 50006 stefania.m
                    if (RepositoryManager.currentUser != null) {
53
54
                        String content = "<span class=\"uk-margin-small-right uk-icon\"><svg height=\"20\" ratio=\"1\" " +
55
                                "viewBox=\"0 0 20 20\" width=\"20\" xmlns=\"http://www.w3.org/2000/svg\"><circle cx=\"9.9\" " +
56
                                "cy=\"6.4\" fill=\"none\" r=\"4.4\" stroke=\"#000\" stroke-width=\"1.1\"></circle>" +
57
                                "<path d=\"M1.5,19 C2.3,14.5 5.8,11.2 10,11.2 C14.2,11.2 17.7,14.6 18.5,19.2\" fill=\"none\" " +
58
                                "stroke=\"#000\" stroke-width=\"1.1\"></path></svg></span>" +
59
                                RepositoryManager.currentUser.getFirstname() + " " + RepositoryManager.currentUser.getLastname();
60
                        Document.get().getElementById("currentUser").setInnerHTML(content);
61
                    }
62 40267 stefania.m
                    History.newItem("dashboard");
63
                }
64
            };
65
            LoginPage.getInstance().setLoginListener(loginListener);
66
67 49691 antonis.le
        } else if (token.equals("register")) {
68 40267 stefania.m
69 40232 stefania.m
            RegisterPage.getInstance().showRegisterPage();
70
71 40267 stefania.m
        } else {
72
73 40511 stefania.m
            RepositoryManagerPage.getInstance().showRepositoryManagerPage();
74
75
            //TODO add catch page not found exception
76
            RepositoryManagerController.getInstance().showWidget(token);
77 40232 stefania.m
        }
78
    }
79
}