Project

General

Profile

1
package eu.dnetlib.repo.manager.client;
2

    
3
import com.google.gwt.dom.client.Document;
4
import com.google.gwt.dom.client.Style;
5
import com.google.gwt.user.client.History;
6
import eu.dnetlib.domain.functionality.UserProfile;
7

    
8
/**
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
        //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
        RepositoryManager.previousToken = RepositoryManager.currentToken;
39
        RepositoryManager.currentToken = token;
40

    
41
        if (token.equals("landing")) {
42

    
43
            LandingPage.getInstance().showLandingPage();
44

    
45
        } else if (token.equals("login")) {
46

    
47
            LoginPage.getInstance().showLoginPage();
48
            LoginPage.LoginListener loginListener = new LoginPage.LoginListener() {
49
                @Override
50
                public void loginSucceeded(UserProfile userProfile) {
51

    
52
                    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
                    History.newItem("dashboard");
63
                }
64
            };
65
            LoginPage.getInstance().setLoginListener(loginListener);
66

    
67
        } else if (token.equals("register")) {
68

    
69
            RegisterPage.getInstance().showRegisterPage();
70

    
71
        } else {
72

    
73
            RepositoryManagerPage.getInstance().showRepositoryManagerPage();
74

    
75
            //TODO add catch page not found exception
76
            RepositoryManagerController.getInstance().showWidget(token);
77
        }
78
    }
79
}
(6-6/12)