Project

General

Profile

1 35292 stefania.m
package eu.dnetlib.client;
2
3 37028 stefania.m
import com.github.gwtbootstrap.client.ui.*;
4 35965 stefania.m
import com.github.gwtbootstrap.client.ui.constants.BackdropType;
5 35292 stefania.m
import com.google.gwt.event.dom.client.ClickEvent;
6
import com.google.gwt.event.dom.client.ClickHandler;
7 35582 stefania.m
import com.google.gwt.user.client.History;
8 35292 stefania.m
import com.google.gwt.user.client.ui.IsWidget;
9
import com.google.gwt.user.client.ui.Widget;
10
11
/**
12
 * Created by stefania on 3/6/15.
13
 */
14
public class MainMenu implements IsWidget {
15
16
    private final NavPills mainMenu = new NavPills();
17
18
    private NavLink home = new NavLink();
19
20 35928 stefania.m
    private Dropdown request = new Dropdown();
21 35292 stefania.m
    private NavLink newRequest = new NavLink();
22
    private NavLink existingRequests = new NavLink();
23 35928 stefania.m
    private NavLink newBudgetRequest = new NavLink();
24 36099 stefania.m
    private NavLink existingBudgetRequests = new NavLink();
25 35292 stefania.m
26 35933 stefania.m
    private Dropdown monitor = new Dropdown();
27
    private NavLink monitorFundingRequests = new NavLink();
28
    private NavLink monitorBudgetRequests = new NavLink();
29 36054 stefania.m
    private NavLink monitorUsers = new NavLink();
30 36060 stefania.m
    private NavLink monitorUserRoles = new NavLink();
31 36467 stefania.m
    private NavLink monitorHelpTexts = new NavLink();
32 35292 stefania.m
33 36759 stefania.m
    private Dropdown accountingMonitor = new Dropdown();
34
    private NavLink accountingMonitorFundingRequests = new NavLink();
35
    private NavLink accountingMonitorBudgets = new NavLink();
36
37 40138 stefania.m
    private NavLink statistics = new NavLink();
38
39 36913 stefania.m
    private Dropdown support = new Dropdown();
40 37028 stefania.m
    private NavLink faq = new NavLink();
41
    private NavLink askAQuestion = new NavLink();
42 36913 stefania.m
    private NavLink eligibleProjects = new NavLink();
43 35292 stefania.m
44 35965 stefania.m
    private NavLink contactUs = new NavLink();
45
46 35292 stefania.m
    public MainMenu() {
47
48
        home.setText("HOME");
49
        home.setHref("#home");
50
        home.addClickHandler(new ClickHandler() {
51
            @Override
52
            public void onClick(ClickEvent clickEvent) {
53 37261 stefania.m
                if(GoldOAPortal.currentToken.equals("home"))
54
                    NavigationManager.getInstance().navigate("home");
55
                else
56
                    History.newItem("home");
57 35292 stefania.m
            }
58
        });
59
60 37438 stefania.m
        request.setText("MANAGE REQUESTS");
61 35938 stefania.m
        request.getTriggerWidget().setHref("#requests");
62 35292 stefania.m
63 35928 stefania.m
        newRequest.setHref("#newFundingRequest");
64 35292 stefania.m
        newRequest.setText("NEW FUNDING REQUEST");
65
        newRequest.addClickHandler(new ClickHandler() {
66
            @Override
67
            public void onClick(ClickEvent clickEvent) {
68 37261 stefania.m
                if(GoldOAPortal.currentToken.equals("newFundingRequest"))
69
                    NavigationManager.getInstance().navigate("newFundingRequest");
70
                else
71
                    History.newItem("newFundingRequest");
72 35292 stefania.m
            }
73
        });
74
75 35928 stefania.m
        newBudgetRequest.setHref("#newBudgetRequest");
76
        newBudgetRequest.setText("NEW BUDGET REQUEST");
77
        newBudgetRequest.addClickHandler(new ClickHandler() {
78
            @Override
79
            public void onClick(ClickEvent clickEvent) {
80 37261 stefania.m
                if(GoldOAPortal.currentToken.equals("newBudgetRequest"))
81
                    NavigationManager.getInstance().navigate("newBudgetRequest");
82
                else
83
                    History.newItem("newBudgetRequest");
84 35928 stefania.m
            }
85
        });
86
87
        existingRequests.setHref("#existingFundingRequests");
88 35292 stefania.m
        existingRequests.setText("EXISTING FUNDING REQUESTS");
89
        existingRequests.addClickHandler(new ClickHandler() {
90
            @Override
91
            public void onClick(ClickEvent clickEvent) {
92 37261 stefania.m
                if(GoldOAPortal.currentToken.equals("existingFundingRequests"))
93
                    NavigationManager.getInstance().navigate("existingFundingRequests");
94
                else
95
                    History.newItem("existingFundingRequests");
96 35292 stefania.m
            }
97
        });
98
99 36099 stefania.m
        existingBudgetRequests.setHref("#existingBudgetRequests");
100
        existingBudgetRequests.setText("EXISTING BUDGET REQUESTS");
101
        existingBudgetRequests.addClickHandler(new ClickHandler() {
102
            @Override
103
            public void onClick(ClickEvent clickEvent) {
104 37261 stefania.m
                if(GoldOAPortal.currentToken.equals("existingBudgetRequests"))
105
                    NavigationManager.getInstance().navigate("existingBudgetRequests");
106
                else
107
                    History.newItem("existingBudgetRequests");
108 36099 stefania.m
            }
109
        });
110
111 35292 stefania.m
        monitor.setText("MONITOR");
112 35938 stefania.m
        monitor.getTriggerWidget().setHref("#monitor");
113 35933 stefania.m
114
        monitorFundingRequests.setText("FUNDING REQUESTS");
115
        monitorFundingRequests.setHref("#monitorFundingRequests");
116
        monitorFundingRequests.addClickHandler(new ClickHandler() {
117 35292 stefania.m
            @Override
118
            public void onClick(ClickEvent clickEvent) {
119 37261 stefania.m
                if(GoldOAPortal.currentToken.equals("monitorFundingRequests"))
120
                    NavigationManager.getInstance().navigate("monitorFundingRequests");
121
                else
122
                    History.newItem("monitorFundingRequests");
123 35292 stefania.m
            }
124
        });
125
126 35933 stefania.m
        monitorBudgetRequests.setText("BUDGETS");
127
        monitorBudgetRequests.setHref("#monitorBudgets");
128
        monitorBudgetRequests.addClickHandler(new ClickHandler() {
129
            @Override
130
            public void onClick(ClickEvent clickEvent) {
131 37261 stefania.m
                if(GoldOAPortal.currentToken.equals("monitorBudgets"))
132
                    NavigationManager.getInstance().navigate("monitorBudgets");
133
                else
134
                    History.newItem("monitorBudgets");
135 35933 stefania.m
            }
136
        });
137
138 36054 stefania.m
        monitorUsers.setText("USERS");
139
        monitorUsers.setHref("#monitorUsers");
140
        monitorUsers.addClickHandler(new ClickHandler() {
141
            @Override
142
            public void onClick(ClickEvent clickEvent) {
143 37261 stefania.m
                if(GoldOAPortal.currentToken.equals("monitorUsers"))
144
                    NavigationManager.getInstance().navigate("monitorUsers");
145
                else
146
                    History.newItem("monitorUsers");
147 36054 stefania.m
            }
148
        });
149
150 36060 stefania.m
        monitorUserRoles.setText("USER ROLES");
151
        monitorUserRoles.setHref("#monitorUserRoles");
152
        monitorUserRoles.addClickHandler(new ClickHandler() {
153
            @Override
154
            public void onClick(ClickEvent clickEvent) {
155 37261 stefania.m
                if(GoldOAPortal.currentToken.equals("monitorUserRoles"))
156
                    NavigationManager.getInstance().navigate("monitorUserRoles");
157
                else
158
                    History.newItem("monitorUserRoles");
159 36060 stefania.m
            }
160
        });
161
162 36467 stefania.m
        monitorHelpTexts.setText("HELP TEXTS");
163
        monitorHelpTexts.setHref("#monitorHelpTexts");
164
        monitorHelpTexts.addClickHandler(new ClickHandler() {
165
            @Override
166
            public void onClick(ClickEvent clickEvent) {
167 37261 stefania.m
                if(GoldOAPortal.currentToken.equals("monitorHelpTexts"))
168
                    NavigationManager.getInstance().navigate("monitorHelpTexts");
169
                else
170
                    History.newItem("monitorHelpTexts");
171 36467 stefania.m
            }
172
        });
173
174 35933 stefania.m
        monitor.add(monitorFundingRequests);
175
        monitor.add(monitorBudgetRequests);
176 36054 stefania.m
        monitor.add(monitorUsers);
177 36060 stefania.m
        monitor.add(monitorUserRoles);
178 35933 stefania.m
179 36857 stefania.m
        accountingMonitor.setText("ACCOUNTING");
180 36759 stefania.m
        accountingMonitor.getTriggerWidget().setHref("#accountingMonitor");
181
182
        accountingMonitorFundingRequests.setText("FUNDING REQUESTS");
183
        accountingMonitorFundingRequests.setHref("#accountingMonitorFundingRequests");
184
        accountingMonitorFundingRequests.addClickHandler(new ClickHandler() {
185
            @Override
186
            public void onClick(ClickEvent clickEvent) {
187 37261 stefania.m
                if(GoldOAPortal.currentToken.equals("accountingMonitorFundingRequests"))
188
                    NavigationManager.getInstance().navigate("accountingMonitorFundingRequests");
189
                else
190
                    History.newItem("accountingMonitorFundingRequests");
191 36759 stefania.m
            }
192
        });
193
194
        accountingMonitorBudgets.setText("BUDGETS");
195
        accountingMonitorBudgets.setHref("#accountingMonitorBudgets");
196
        accountingMonitorBudgets.addClickHandler(new ClickHandler() {
197
            @Override
198
            public void onClick(ClickEvent clickEvent) {
199 37261 stefania.m
                if(GoldOAPortal.currentToken.equals("accountingMonitorBudgets"))
200
                    NavigationManager.getInstance().navigate("accountingMonitorBudgets");
201
                else
202
                    History.newItem("accountingMonitorBudgets");
203 36759 stefania.m
            }
204
        });
205
206
        accountingMonitor.add(accountingMonitorFundingRequests);
207
        accountingMonitor.add(accountingMonitorBudgets);
208
209 40138 stefania.m
        statistics.setText("STATISTICS");
210
        statistics.setHref("#statistics");
211
        statistics.addClickHandler(new ClickHandler() {
212
            @Override
213
            public void onClick(ClickEvent clickEvent) {
214
                if(GoldOAPortal.currentToken.equals("statistics"))
215
                    NavigationManager.getInstance().navigate("statistics");
216
                else
217
                    History.newItem("statistics");
218
            }
219
        });
220
221 36913 stefania.m
        support.setText("SUPPORT");
222
        support.getTriggerWidget().setHref("#support");
223
224 37028 stefania.m
        faq.setText("FAQs");
225 39282 stefania.m
        faq.setHref("https://www.openaire.eu/postgrantoapilot-faq");
226 37028 stefania.m
        faq.setTarget("_blank");
227
228
        askAQuestion.setText("ASK A QUESTION");
229
        askAQuestion.setHref("https://www.openaire.eu/support/helpdesk");
230
        askAQuestion.setTarget("_blank");
231
232
        eligibleProjects.setText("FIND ELIGIBLE PROJECTS");
233 36913 stefania.m
        eligibleProjects.setHref("#eligibleProjects");
234
        eligibleProjects.addClickHandler(new ClickHandler() {
235 35292 stefania.m
            @Override
236
            public void onClick(ClickEvent clickEvent) {
237 37261 stefania.m
                if(GoldOAPortal.currentToken.equals("eligibleProjects"))
238
                    NavigationManager.getInstance().navigate("eligibleProjects");
239
                else
240
                    History.newItem("eligibleProjects");
241 35292 stefania.m
            }
242
        });
243
244 37028 stefania.m
        support.add(faq);
245
        support.add(askAQuestion);
246 36913 stefania.m
        support.add(eligibleProjects);
247
248 35965 stefania.m
        contactUs.setText("CONTACT US");
249
        contactUs.addClickHandler(new ClickHandler() {
250
            @Override
251
            public void onClick(ClickEvent clickEvent) {
252
253
                final Modal contactUsModal = new Modal();
254
255
                contactUsModal.addStyleName("contactModal");
256
                contactUsModal.setTitle("Contact Us");
257
                contactUsModal.setAnimation(true);
258
                contactUsModal.setBackdrop(BackdropType.STATIC);
259 37787 stefania.m
                contactUsModal.setDynamicSafe(true);
260 35965 stefania.m
261
                ContactForm contactForm = new ContactForm();
262
                ContactForm.ContactSubmittedListener contactSubmittedListener = new ContactForm.ContactSubmittedListener() {
263
                    @Override
264
                    public void contactSubmitted() {
265
                        contactUsModal.hide();
266
                    }
267
                };
268
                contactForm.setContactSubmittedListener(contactSubmittedListener);
269
270
                contactUsModal.add(contactForm.asWidget());
271
272
                contactUsModal.show();
273
            }
274
        });
275
276 35292 stefania.m
        mainMenu.add(home);
277
        if(GoldOAPortal.currentUser!=null) {
278 35661 stefania.m
279 35928 stefania.m
            mainMenu.add(request);
280
            request.add(newRequest);
281
            request.add(existingRequests);
282 35661 stefania.m
283 36230 stefania.m
            if(Utils.currentUserHasRoleApproved("library_staff")) {
284 35928 stefania.m
                request.add(newBudgetRequest);
285 36099 stefania.m
                request.add(existingBudgetRequests);
286
            }
287 35661 stefania.m
288 36467 stefania.m
            if(Utils.currentUserHasRoleApproved("administrator"))
289
                monitor.add(monitorHelpTexts);
290
291 36230 stefania.m
            if(Utils.currentUserHasRoleApproved("moderator") || Utils.currentUserHasRoleApproved("administrator"))
292 35928 stefania.m
                mainMenu.add(monitor);
293 36759 stefania.m
294 39391 stefania.m
            if(Utils.currentUserHasRoleApproved("administrator") || Utils.currentUserHasRoleApproved("accounting"))
295 36759 stefania.m
                mainMenu.add(accountingMonitor);
296 35292 stefania.m
        }
297 41124 stefania.m
        mainMenu.add(statistics);
298 36913 stefania.m
        mainMenu.add(support);
299 35965 stefania.m
        mainMenu.add(contactUs);
300 35292 stefania.m
    }
301
302
    @Override
303
    public Widget asWidget() {
304
        return mainMenu;
305
    }
306
307
    public void updateMainMenu(String token) {
308
309
        //TODO set active menu item
310
    }
311
}