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 50395 stefania.m
            Document.get().getElementById("adminMenuHeader").getStyle().setDisplay(Style.Display.BLOCK);
32
            Document.get().getElementById("adminMenuHelpTexts").getStyle().setDisplay(Style.Display.BLOCK);
33
            Document.get().getElementById("adminMenuMetrics").getStyle().setDisplay(Style.Display.BLOCK);
34
35 49691 antonis.le
            Document.get().getElementById("admin1").getStyle().setDisplay(Style.Display.BLOCK);
36
        } else {
37 50395 stefania.m
            Document.get().getElementById("adminMenuHeader").getStyle().setDisplay(Style.Display.NONE);
38
            Document.get().getElementById("adminMenuHelpTexts").getStyle().setDisplay(Style.Display.NONE);
39
            Document.get().getElementById("adminMenuMetrics").getStyle().setDisplay(Style.Display.NONE);
40
41 49691 antonis.le
            Document.get().getElementById("admin1").getStyle().setDisplay(Style.Display.NONE);
42
        }
43
44 40232 stefania.m
        RepositoryManager.previousToken = RepositoryManager.currentToken;
45
        RepositoryManager.currentToken = token;
46
47 49691 antonis.le
        if (token.equals("landing")) {
48 40267 stefania.m
49 40232 stefania.m
            LandingPage.getInstance().showLandingPage();
50 40258 stefania.m
51 49691 antonis.le
        } else if (token.equals("login")) {
52 40267 stefania.m
53
            LoginPage.getInstance().showLoginPage();
54
            LoginPage.LoginListener loginListener = new LoginPage.LoginListener() {
55
                @Override
56
                public void loginSucceeded(UserProfile userProfile) {
57
58 50006 stefania.m
                    if (RepositoryManager.currentUser != null) {
59
60
                        String content = "<span class=\"uk-margin-small-right uk-icon\"><svg height=\"20\" ratio=\"1\" " +
61
                                "viewBox=\"0 0 20 20\" width=\"20\" xmlns=\"http://www.w3.org/2000/svg\"><circle cx=\"9.9\" " +
62
                                "cy=\"6.4\" fill=\"none\" r=\"4.4\" stroke=\"#000\" stroke-width=\"1.1\"></circle>" +
63
                                "<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\" " +
64
                                "stroke=\"#000\" stroke-width=\"1.1\"></path></svg></span>" +
65
                                RepositoryManager.currentUser.getFirstname() + " " + RepositoryManager.currentUser.getLastname();
66
                        Document.get().getElementById("currentUser").setInnerHTML(content);
67
                    }
68 40267 stefania.m
                    History.newItem("dashboard");
69
                }
70
            };
71
            LoginPage.getInstance().setLoginListener(loginListener);
72
73 49691 antonis.le
        } else if (token.equals("register")) {
74 40267 stefania.m
75 40232 stefania.m
            RegisterPage.getInstance().showRegisterPage();
76
77 40267 stefania.m
        } else {
78
79 40511 stefania.m
            RepositoryManagerPage.getInstance().showRepositoryManagerPage();
80
81
            //TODO add catch page not found exception
82
            RepositoryManagerController.getInstance().showWidget(token);
83 40232 stefania.m
        }
84
    }
85
}