Project

General

Profile

1
package eu.dnetlib.client;
2

    
3
import com.github.gwtbootstrap.client.ui.*;
4
import com.github.gwtbootstrap.client.ui.constants.BackdropType;
5
import com.google.gwt.event.dom.client.ClickEvent;
6
import com.google.gwt.event.dom.client.ClickHandler;
7
import com.google.gwt.user.client.History;
8
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
    private Dropdown request = new Dropdown();
21
    private NavLink newRequest = new NavLink();
22
    private NavLink existingRequests = new NavLink();
23
    private NavLink bulkImport = new NavLink();
24
    private NavLink newBudgetRequest = new NavLink();
25
    private NavLink existingBudgetRequests = new NavLink();
26

    
27
    private Dropdown monitor = new Dropdown();
28
    private NavLink monitorFundingRequests = new NavLink();
29
    private NavLink monitorAlternativeFundingBids = new NavLink();
30
    private NavLink monitorBudgetRequests = new NavLink();
31
    private NavLink monitorUsers = new NavLink();
32
    private NavLink monitorUserRoles = new NavLink();
33
    private NavLink monitorHelpTexts = new NavLink();
34

    
35
    private Dropdown accountingMonitor = new Dropdown();
36
    private NavLink accountingMonitorFundingRequests = new NavLink();
37
    private NavLink accountingMonitorBudgets = new NavLink();
38

    
39
    private NavLink statistics = new NavLink();
40

    
41
    private Dropdown support = new Dropdown();
42
    private NavLink faq = new NavLink();
43
    private NavLink askAQuestion = new NavLink();
44
    private NavLink eligibleProjects = new NavLink();
45

    
46
    private NavLink contactUs = new NavLink();
47

    
48
    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
                if(GoldOAPortal.currentToken.equals("home"))
56
                    NavigationManager.getInstance().navigate("home");
57
                else
58
                    History.newItem("home");
59
            }
60
        });
61

    
62
        request.setText("MANAGE REQUESTS");
63
        request.getTriggerWidget().setHref("#requests");
64

    
65
        newRequest.setHref("#newFundingRequest");
66
        newRequest.setText("NEW FUNDING REQUEST");
67
        newRequest.addClickHandler(new ClickHandler() {
68
            @Override
69
            public void onClick(ClickEvent clickEvent) {
70
                if(GoldOAPortal.currentToken.equals("newFundingRequest"))
71
                    NavigationManager.getInstance().navigate("newFundingRequest");
72
                else
73
                    History.newItem("newFundingRequest");
74
            }
75
        });
76
        newRequest.setActive(false);
77
        newRequest.setDisabled(true);
78

    
79
        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
        newBudgetRequest.setHref("#newBudgetRequest");
92
        newBudgetRequest.setText("NEW BUDGET REQUEST");
93
        newBudgetRequest.addClickHandler(new ClickHandler() {
94
            @Override
95
            public void onClick(ClickEvent clickEvent) {
96
                if(GoldOAPortal.currentToken.equals("newBudgetRequest"))
97
                    NavigationManager.getInstance().navigate("newBudgetRequest");
98
                else
99
                    History.newItem("newBudgetRequest");
100
            }
101
        });
102

    
103
        existingRequests.setHref("#existingFundingRequests");
104
        existingRequests.setText("EXISTING FUNDING REQUESTS");
105
        existingRequests.addClickHandler(new ClickHandler() {
106
            @Override
107
            public void onClick(ClickEvent clickEvent) {
108
                if(GoldOAPortal.currentToken.equals("existingFundingRequests"))
109
                    NavigationManager.getInstance().navigate("existingFundingRequests");
110
                else
111
                    History.newItem("existingFundingRequests");
112
            }
113
        });
114

    
115
        existingBudgetRequests.setHref("#existingBudgetRequests");
116
        existingBudgetRequests.setText("EXISTING BUDGET REQUESTS");
117
        existingBudgetRequests.addClickHandler(new ClickHandler() {
118
            @Override
119
            public void onClick(ClickEvent clickEvent) {
120
                if(GoldOAPortal.currentToken.equals("existingBudgetRequests"))
121
                    NavigationManager.getInstance().navigate("existingBudgetRequests");
122
                else
123
                    History.newItem("existingBudgetRequests");
124
            }
125
        });
126

    
127
        monitor.setText("MONITOR");
128
        monitor.getTriggerWidget().setHref("#monitor");
129

    
130
        monitorFundingRequests.setText("FUNDING REQUESTS");
131
        monitorFundingRequests.setHref("#monitorFundingRequests");
132
        monitorFundingRequests.addClickHandler(new ClickHandler() {
133
            @Override
134
            public void onClick(ClickEvent clickEvent) {
135
                if(GoldOAPortal.currentToken.equals("monitorFundingRequests"))
136
                    NavigationManager.getInstance().navigate("monitorFundingRequests");
137
                else
138
                    History.newItem("monitorFundingRequests");
139
            }
140
        });
141

    
142
        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
        monitorBudgetRequests.setText("BUDGETS");
155
        monitorBudgetRequests.setHref("#monitorBudgets");
156
        monitorBudgetRequests.addClickHandler(new ClickHandler() {
157
            @Override
158
            public void onClick(ClickEvent clickEvent) {
159
                if(GoldOAPortal.currentToken.equals("monitorBudgets"))
160
                    NavigationManager.getInstance().navigate("monitorBudgets");
161
                else
162
                    History.newItem("monitorBudgets");
163
            }
164
        });
165

    
166
        monitorUsers.setText("USERS");
167
        monitorUsers.setHref("#monitorUsers");
168
        monitorUsers.addClickHandler(new ClickHandler() {
169
            @Override
170
            public void onClick(ClickEvent clickEvent) {
171
                if(GoldOAPortal.currentToken.equals("monitorUsers"))
172
                    NavigationManager.getInstance().navigate("monitorUsers");
173
                else
174
                    History.newItem("monitorUsers");
175
            }
176
        });
177

    
178
        monitorUserRoles.setText("USER ROLES");
179
        monitorUserRoles.setHref("#monitorUserRoles");
180
        monitorUserRoles.addClickHandler(new ClickHandler() {
181
            @Override
182
            public void onClick(ClickEvent clickEvent) {
183
                if(GoldOAPortal.currentToken.equals("monitorUserRoles"))
184
                    NavigationManager.getInstance().navigate("monitorUserRoles");
185
                else
186
                    History.newItem("monitorUserRoles");
187
            }
188
        });
189

    
190
        monitorHelpTexts.setText("HELP TEXTS");
191
        monitorHelpTexts.setHref("#monitorHelpTexts");
192
        monitorHelpTexts.addClickHandler(new ClickHandler() {
193
            @Override
194
            public void onClick(ClickEvent clickEvent) {
195
                if(GoldOAPortal.currentToken.equals("monitorHelpTexts"))
196
                    NavigationManager.getInstance().navigate("monitorHelpTexts");
197
                else
198
                    History.newItem("monitorHelpTexts");
199
            }
200
        });
201

    
202
        monitor.add(monitorFundingRequests);
203
        monitor.add(monitorAlternativeFundingBids);
204
        monitor.add(monitorBudgetRequests);
205
        monitor.add(monitorUsers);
206
        monitor.add(monitorUserRoles);
207

    
208
        accountingMonitor.setText("ACCOUNTING");
209
        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
                if(GoldOAPortal.currentToken.equals("accountingMonitorFundingRequests"))
217
                    NavigationManager.getInstance().navigate("accountingMonitorFundingRequests");
218
                else
219
                    History.newItem("accountingMonitorFundingRequests");
220
            }
221
        });
222

    
223
        accountingMonitorBudgets.setText("BUDGETS");
224
        accountingMonitorBudgets.setHref("#accountingMonitorBudgets");
225
        accountingMonitorBudgets.addClickHandler(new ClickHandler() {
226
            @Override
227
            public void onClick(ClickEvent clickEvent) {
228
                if(GoldOAPortal.currentToken.equals("accountingMonitorBudgets"))
229
                    NavigationManager.getInstance().navigate("accountingMonitorBudgets");
230
                else
231
                    History.newItem("accountingMonitorBudgets");
232
            }
233
        });
234

    
235
        accountingMonitor.add(accountingMonitorFundingRequests);
236
        accountingMonitor.add(accountingMonitorBudgets);
237

    
238
        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
        support.setText("SUPPORT");
251
        support.getTriggerWidget().setHref("#support");
252

    
253
        faq.setText("FAQs");
254
        faq.setHref("https://www.openaire.eu/postgrantoapilot-faq");
255
        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
        eligibleProjects.setHref("#eligibleProjects");
263
        eligibleProjects.addClickHandler(new ClickHandler() {
264
            @Override
265
            public void onClick(ClickEvent clickEvent) {
266
                if(GoldOAPortal.currentToken.equals("eligibleProjects"))
267
                    NavigationManager.getInstance().navigate("eligibleProjects");
268
                else
269
                    History.newItem("eligibleProjects");
270
            }
271
        });
272

    
273
        support.add(faq);
274
        support.add(askAQuestion);
275
        support.add(eligibleProjects);
276

    
277
        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
                contactUsModal.setDynamicSafe(true);
289

    
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
        mainMenu.add(home);
306
        if(GoldOAPortal.currentUser!=null) {
307

    
308
            mainMenu.add(request);
309
//            request.add(newRequest);
310
            request.add(existingRequests);
311

    
312
            if(Utils.currentUserHasRoleApproved("library_staff")) {
313
                request.add(bulkImport);
314
                request.add(newBudgetRequest);
315
                request.add(existingBudgetRequests);
316
            }
317

    
318
            if(Utils.currentUserHasRoleApproved("administrator"))
319
                monitor.add(monitorHelpTexts);
320

    
321
            if(Utils.currentUserHasRoleApproved("moderator") || Utils.currentUserHasRoleApproved("administrator")) {
322
                mainMenu.add(monitor);
323
                request.add(bulkImport);
324
            }
325

    
326
            if(Utils.currentUserHasRoleApproved("administrator") || Utils.currentUserHasRoleApproved("accounting"))
327
                mainMenu.add(accountingMonitor);
328
        }
329
        mainMenu.add(statistics);
330
        mainMenu.add(support);
331
        mainMenu.add(contactUs);
332
    }
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
}
(13-13/22)