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 newBudgetRequest = new NavLink();
24
    private NavLink existingBudgetRequests = new NavLink();
25

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

    
33
    private Dropdown accountingMonitor = new Dropdown();
34
    private NavLink accountingMonitorFundingRequests = new NavLink();
35
    private NavLink accountingMonitorBudgets = new NavLink();
36

    
37
    private NavLink statistics = new NavLink();
38

    
39
    private Dropdown support = new Dropdown();
40
    private NavLink faq = new NavLink();
41
    private NavLink askAQuestion = new NavLink();
42
    private NavLink eligibleProjects = new NavLink();
43

    
44
    private NavLink contactUs = new NavLink();
45

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

    
60
        request.setText("MANAGE REQUESTS");
61
        request.getTriggerWidget().setHref("#requests");
62

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

    
75
        newBudgetRequest.setHref("#newBudgetRequest");
76
        newBudgetRequest.setText("NEW BUDGET REQUEST");
77
        newBudgetRequest.addClickHandler(new ClickHandler() {
78
            @Override
79
            public void onClick(ClickEvent clickEvent) {
80
                if(GoldOAPortal.currentToken.equals("newBudgetRequest"))
81
                    NavigationManager.getInstance().navigate("newBudgetRequest");
82
                else
83
                    History.newItem("newBudgetRequest");
84
            }
85
        });
86

    
87
        existingRequests.setHref("#existingFundingRequests");
88
        existingRequests.setText("EXISTING FUNDING REQUESTS");
89
        existingRequests.addClickHandler(new ClickHandler() {
90
            @Override
91
            public void onClick(ClickEvent clickEvent) {
92
                if(GoldOAPortal.currentToken.equals("existingFundingRequests"))
93
                    NavigationManager.getInstance().navigate("existingFundingRequests");
94
                else
95
                    History.newItem("existingFundingRequests");
96
            }
97
        });
98

    
99
        existingBudgetRequests.setHref("#existingBudgetRequests");
100
        existingBudgetRequests.setText("EXISTING BUDGET REQUESTS");
101
        existingBudgetRequests.addClickHandler(new ClickHandler() {
102
            @Override
103
            public void onClick(ClickEvent clickEvent) {
104
                if(GoldOAPortal.currentToken.equals("existingBudgetRequests"))
105
                    NavigationManager.getInstance().navigate("existingBudgetRequests");
106
                else
107
                    History.newItem("existingBudgetRequests");
108
            }
109
        });
110

    
111
        monitor.setText("MONITOR");
112
        monitor.getTriggerWidget().setHref("#monitor");
113

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

    
126
        monitorBudgetRequests.setText("BUDGETS");
127
        monitorBudgetRequests.setHref("#monitorBudgets");
128
        monitorBudgetRequests.addClickHandler(new ClickHandler() {
129
            @Override
130
            public void onClick(ClickEvent clickEvent) {
131
                if(GoldOAPortal.currentToken.equals("monitorBudgets"))
132
                    NavigationManager.getInstance().navigate("monitorBudgets");
133
                else
134
                    History.newItem("monitorBudgets");
135
            }
136
        });
137

    
138
        monitorUsers.setText("USERS");
139
        monitorUsers.setHref("#monitorUsers");
140
        monitorUsers.addClickHandler(new ClickHandler() {
141
            @Override
142
            public void onClick(ClickEvent clickEvent) {
143
                if(GoldOAPortal.currentToken.equals("monitorUsers"))
144
                    NavigationManager.getInstance().navigate("monitorUsers");
145
                else
146
                    History.newItem("monitorUsers");
147
            }
148
        });
149

    
150
        monitorUserRoles.setText("USER ROLES");
151
        monitorUserRoles.setHref("#monitorUserRoles");
152
        monitorUserRoles.addClickHandler(new ClickHandler() {
153
            @Override
154
            public void onClick(ClickEvent clickEvent) {
155
                if(GoldOAPortal.currentToken.equals("monitorUserRoles"))
156
                    NavigationManager.getInstance().navigate("monitorUserRoles");
157
                else
158
                    History.newItem("monitorUserRoles");
159
            }
160
        });
161

    
162
        monitorHelpTexts.setText("HELP TEXTS");
163
        monitorHelpTexts.setHref("#monitorHelpTexts");
164
        monitorHelpTexts.addClickHandler(new ClickHandler() {
165
            @Override
166
            public void onClick(ClickEvent clickEvent) {
167
                if(GoldOAPortal.currentToken.equals("monitorHelpTexts"))
168
                    NavigationManager.getInstance().navigate("monitorHelpTexts");
169
                else
170
                    History.newItem("monitorHelpTexts");
171
            }
172
        });
173

    
174
        monitor.add(monitorFundingRequests);
175
        monitor.add(monitorBudgetRequests);
176
        monitor.add(monitorUsers);
177
        monitor.add(monitorUserRoles);
178

    
179
        accountingMonitor.setText("ACCOUNTING");
180
        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
                if(GoldOAPortal.currentToken.equals("accountingMonitorFundingRequests"))
188
                    NavigationManager.getInstance().navigate("accountingMonitorFundingRequests");
189
                else
190
                    History.newItem("accountingMonitorFundingRequests");
191
            }
192
        });
193

    
194
        accountingMonitorBudgets.setText("BUDGETS");
195
        accountingMonitorBudgets.setHref("#accountingMonitorBudgets");
196
        accountingMonitorBudgets.addClickHandler(new ClickHandler() {
197
            @Override
198
            public void onClick(ClickEvent clickEvent) {
199
                if(GoldOAPortal.currentToken.equals("accountingMonitorBudgets"))
200
                    NavigationManager.getInstance().navigate("accountingMonitorBudgets");
201
                else
202
                    History.newItem("accountingMonitorBudgets");
203
            }
204
        });
205

    
206
        accountingMonitor.add(accountingMonitorFundingRequests);
207
        accountingMonitor.add(accountingMonitorBudgets);
208

    
209
        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
        support.setText("SUPPORT");
222
        support.getTriggerWidget().setHref("#support");
223

    
224
        faq.setText("FAQs");
225
        faq.setHref("https://www.openaire.eu/postgrantoapilot-faq");
226
        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
        eligibleProjects.setHref("#eligibleProjects");
234
        eligibleProjects.addClickHandler(new ClickHandler() {
235
            @Override
236
            public void onClick(ClickEvent clickEvent) {
237
                if(GoldOAPortal.currentToken.equals("eligibleProjects"))
238
                    NavigationManager.getInstance().navigate("eligibleProjects");
239
                else
240
                    History.newItem("eligibleProjects");
241
            }
242
        });
243

    
244
        support.add(faq);
245
        support.add(askAQuestion);
246
        support.add(eligibleProjects);
247

    
248
        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
                contactUsModal.setDynamicSafe(true);
260

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

    
279
            mainMenu.add(request);
280
            request.add(newRequest);
281
            request.add(existingRequests);
282

    
283
            if(Utils.currentUserHasRoleApproved("library_staff")) {
284
                request.add(newBudgetRequest);
285
                request.add(existingBudgetRequests);
286
            }
287

    
288
            if(Utils.currentUserHasRoleApproved("administrator"))
289
                monitor.add(monitorHelpTexts);
290

    
291
            if(Utils.currentUserHasRoleApproved("moderator") || Utils.currentUserHasRoleApproved("administrator"))
292
                mainMenu.add(monitor);
293

    
294
            if(Utils.currentUserHasRoleApproved("administrator") || Utils.currentUserHasRoleApproved("accounting"))
295
                mainMenu.add(accountingMonitor);
296
        }
297
        mainMenu.add(statistics);
298
        mainMenu.add(support);
299
        mainMenu.add(contactUs);
300
    }
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
}
(12-12/21)