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