Project

General

Profile

« Previous | Next » 

Revision 35660

Finished summary step of the funding wizard

View differences:

modules/uoa-goldoa-portal/trunk/src/main/java/eu/dnetlib/shared/FundingWizardState.java
13 13
    private Person researcher;
14 14
    private Project project;
15 15
    private Publication publication;
16
    private Journal journal;
17
    private Publisher publisher;
18 16
    private Invoice invoice;
19 17

  
20 18
    public FundingWizardState() {
......
52 50
        this.publication = publication;
53 51
    }
54 52

  
55
    public Journal getJournal() {
56
        return journal;
57
    }
58

  
59
    public void setJournal(Journal journal) {
60
        this.journal = journal;
61
    }
62

  
63
    public Publisher getPublisher() {
64
        return publisher;
65
    }
66

  
67
    public void setPublisher(Publisher publisher) {
68
        this.publisher = publisher;
69
    }
70

  
71 53
    public Invoice getInvoice() {
72 54
        return invoice;
73 55
    }
modules/uoa-goldoa-portal/trunk/src/main/java/eu/dnetlib/client/fundingrequest/newrequest/FundingWizardWidget.java
11 11
import eu.dnetlib.client.DataServiceAsync;
12 12
import eu.dnetlib.client.GoldOAPortal;
13 13
import eu.dnetlib.client.MyWidget;
14
import eu.dnetlib.goldoa.domain.Eligibility;
14 15
import eu.dnetlib.goldoa.domain.Request;
15 16
import eu.dnetlib.shared.*;
16 17

  
......
37 38
    private int newActiveStep = 0;
38 39

  
39 40
    private DataServiceAsync dataService = GWT.create(DataService.class);
41
    private EligibilityServiceAsync eligibilityService = GWT.create(EligibilityService.class);
40 42

  
41 43
    public FundingWizardWidget(final List<FundingWizardStepWidget> wizardStepWidgets) {
42 44

  
......
92 94

  
93 95
                                            fundingWizardState.setRequest(request);
94 96

  
95
                                            //TODO add the else part which will be the results
96 97
                                            if (newActiveStep < wizardStepWidgets.size())
97 98
                                                setActiveStep(newActiveStep);
99
                                            else
100
                                                finishRequest();
98 101
                                        }
99 102
                                    });
100 103

  
101 104
                                } else {
102 105

  
103
                                    //TODO add the else part which will be the results
104 106
                                    if (newActiveStep < wizardStepWidgets.size())
105 107
                                        setActiveStep(newActiveStep);
108
                                    else
109
                                        finishRequest();
106 110
                                }
107 111
                            } else {
108 112

  
......
112 116
            fundingWizardStepWidget.setFundingWizardStepCompleteListener(fundingWizardStepCompleteListener);
113 117
        }
114 118

  
119
        for(FundingWizardStepWidget fundingWizardStepWidget : wizardStepWidgets) {
120

  
121
            FundingWizardStepWidget.FundingWizardJumpToStepListener fundingWizardJumpToStepListener =
122
                    new FundingWizardStepWidget.FundingWizardJumpToStepListener() {
123
                        @Override
124
                        public void jumpTo(int newActiveStep) {
125
                            setActiveStep(newActiveStep);
126
                        }
127
                    };
128
            fundingWizardStepWidget.setFundingWizardJumpToStepListener(fundingWizardJumpToStepListener);
129
        }
130

  
115 131
        FundingNavigationWidget.NextButtonListener nextButtonListener = new FundingNavigationWidget.NextButtonListener() {
116 132

  
117 133
            @Override
......
152 168

  
153 169
        if(stepNumber==wizardStepWidgets.size()-1) {
154 170
            fundingNavigationWidget.setNextButtonText("Submit");
171
        } else {
172
            fundingNavigationWidget.setNextButtonText("Next");
155 173
        }
156 174

  
157 175
        currentActiveStep = stepNumber;
......
166 184
        fundingWizardStepPanel.add(wizardStepWidgets.get(stepNumber).asWidget());
167 185
    }
168 186

  
187
    private void finishRequest() {
188

  
189
        fundingWizardPanel.clear();
190

  
191
        Alert informationLabel = new Alert();
192
        informationLabel.addStyleName("alertLabel");
193
        informationLabel.addStyleName("width80");
194
        informationLabel.setType(AlertType.SUCCESS);
195
        informationLabel.setVisible(false);
196
        informationLabel.setClose(false);
197
        informationLabel.setText("Your request has been submitted successfully.");
198
        fundingWizardPanel.add(informationLabel);
199

  
200
        eligibilityService.validate(fundingWizardState.getRequest(), new AsyncCallback<Eligibility>() {
201

  
202
            @Override
203
            public void onFailure(Throwable throwable) {
204
                EligibilityDisplayWidget eligibilityDisplayWidget = new EligibilityDisplayWidget(null);
205
                fundingWizardPanel.add(eligibilityDisplayWidget.asWidget());
206
            }
207

  
208
            @Override
209
            public void onSuccess(Eligibility eligibility) {
210
                EligibilityDisplayWidget eligibilityDisplayWidget = new EligibilityDisplayWidget(eligibility);
211
                fundingWizardPanel.add(eligibilityDisplayWidget.asWidget());
212
            }
213
        });
214
    }
215

  
169 216
    @Override
170 217
    public void clear() {
171 218

  
modules/uoa-goldoa-portal/trunk/src/main/java/eu/dnetlib/client/fundingrequest/newrequest/researcherstep/ResearcherStepWidget.java
171 171
    }
172 172

  
173 173
    @Override
174
    public void setFundingWizardJumpToStepListener(FundingWizardJumpToStepListener fundingWizardJumpToStepListener) {
175

  
176
    }
177

  
178
    @Override
174 179
    public Widget asWidget() {
175 180
        return researcherStepPanel;
176 181
    }
modules/uoa-goldoa-portal/trunk/src/main/java/eu/dnetlib/client/fundingrequest/newrequest/projectstep/ProjectStepWidget.java
173 173
    }
174 174

  
175 175
    @Override
176
    public void setFundingWizardJumpToStepListener(FundingWizardJumpToStepListener fundingWizardJumpToStepListener) {
177

  
178
    }
179

  
180
    @Override
176 181
    public Widget asWidget() {
177 182
        return projectStepPanel;
178 183
    }
modules/uoa-goldoa-portal/trunk/src/main/java/eu/dnetlib/client/fundingrequest/newrequest/publicationstep/PublicationStepWidget.java
149 149

  
150 150
            if(savedPublication.getType().equals(Publication.Type.ARTICLE) && savedPublication.getJournal()!=null) {
151 151
                request.setJournal(savedPublication.getJournal().getId());
152
                fundingWizardState.setJournal(savedPublication.getJournal());
153 152
            }
154 153

  
155 154
            if(savedPublication.getType().equals(Publication.Type.MONOGRAPH) && savedPublication.getPublisher()!=null) {
156 155
                request.setPublisher(savedPublication.getPublisher().getId());
157
                fundingWizardState.setPublisher(savedPublication.getPublisher());
158 156
            }
159 157
        }
160 158
    }
......
201 199
    }
202 200

  
203 201
    @Override
202
    public void setFundingWizardJumpToStepListener(FundingWizardJumpToStepListener fundingWizardJumpToStepListener) {
203

  
204
    }
205

  
206
    @Override
204 207
    public Widget asWidget() {
205 208
        return publicationStepPanel;
206 209
    }
modules/uoa-goldoa-portal/trunk/src/main/java/eu/dnetlib/client/fundingrequest/newrequest/publicationstep/JournalDisplayInfo.java
38 38

  
39 39
            contents += "<div class=\"displayInfoElementTitle\">" + journal.getTitle() + "</div>";
40 40

  
41
            if (journal.getAlternativeTitle() != null)
41
            if (journal.getAlternativeTitle() != null && !journal.getAlternativeTitle().trim().equals(""))
42 42
                contents += "<dl class=\"dl-horizontal\"><dt>ALTERNATIVE TITLE</dt><dd>" + journal.getAlternativeTitle() + "</dd></dl>";
43 43

  
44
            if (journal.getUrl() != null)
44
            if (journal.getUrl() != null && !journal.getUrl().trim().equals(""))
45 45
                contents += "<dl class=\"dl-horizontal\"><dt>URL</dt><dd><a target=\"_blank\" href=\"" + journal.getUrl() + "\">" + journal.getUrl() + "</a></dd></dl>";
46 46

  
47 47
            if (journal.getPublisher() != null && journal.getPublisher().getName() !=null)
48 48
                contents += "<dl class=\"dl-horizontal\"><dt>PUBLISHER</dt><dd>" + journal.getPublisher().getName() + "</dd></dl>";
49 49

  
50
            if (journal.getLanguages() != null)
50
            if (journal.getLanguages() != null && !journal.getLanguages().trim().equals(""))
51 51
                contents += "<dl class=\"dl-horizontal\"><dt>LANGUAGES</dt><dd>" + journal.getLanguages() + "</dd></dl>";
52 52

  
53
            if (journal.getIssn() != null)
53
            if (journal.getIssn() != null && !journal.getIssn().trim().equals(""))
54 54
                contents += "<dl class=\"dl-horizontal\"><dt>ISSN / EISSN</dt><dd>" + journal.getIssn() + "</dd></dl>";
55 55

  
56
            if (journal.getCountry() != null)
56
            if (journal.getCountry() != null && !journal.getCountry().trim().equals(""))
57 57
                contents += "<dl class=\"dl-horizontal\"><dt>COUNTRY</dt><dd>" + journal.getCountry() + "</dd></dl>";
58 58

  
59
            if (journal.getSubjects() != null)
59
            if (journal.getSubjects() != null && !journal.getSubjects().trim().equals(""))
60 60
                contents += "<dl class=\"dl-horizontal\"><dt>SUBJECTS</dt><dd>" + journal.getSubjects() + "</dd></dl>";
61 61

  
62
            if (journal.getLicence() != null)
62
            if (journal.getLicence() != null & !journal.getLicence().trim().equals(""))
63 63
                contents += "<dl class=\"dl-horizontal\"><dt>LICENCE</dt><dd>" + journal.getLicence() + "</dd></dl>";
64 64

  
65 65
            contents += "<dl class=\"dl-horizontal\"><dt>APC</dt><dd>" + journal.getApc() + "</dd></dl>";
modules/uoa-goldoa-portal/trunk/src/main/java/eu/dnetlib/client/fundingrequest/newrequest/accountingstep/AccountingStepWidget.java
262 262
        Request request = fundingWizardState.getRequest();
263 263
        requestIdHidden.setValue(request.getId());
264 264

  
265
        if(fundingWizardState.getJournal()!=null) {
265
        if(fundingWizardState.getPublication().getJournal()!=null) {
266 266

  
267
            apcTextBox.setValue(fundingWizardState.getJournal().getApc() + "");
268
            apc = fundingWizardState.getJournal().getApc();
267
            apcTextBox.setValue(fundingWizardState.getPublication().getJournal().getApc() + "");
268
            apc = fundingWizardState.getPublication().getJournal().getApc();
269 269
            if(apc>0)
270 270
                fundingRequestedTextBox.setEnabled(false);
271 271

  
272
            goldDiscountTextBox.setValue(fundingWizardState.getJournal().getDiscount() + "");
273
            goldDiscount = fundingWizardState.getJournal().getDiscount();
272
            goldDiscountTextBox.setValue(fundingWizardState.getPublication().getJournal().getDiscount() + "");
273
            goldDiscount = fundingWizardState.getPublication().getJournal().getDiscount();
274 274

  
275
        } else if(fundingWizardState.getPublisher()!=null) {
275
        } else if(fundingWizardState.getPublication().getPublisher()!=null) {
276 276

  
277 277
            //TODO uncomment when Antonis updates publisher
278
//                    apcTextBox.setValue(fundingWizardState.getPublisher().getApc() + "");
279
//                    apc = fundingWizardState.getPublisher().getApc();
278
//                    apcTextBox.setValue(fundingWizardState.getPublication().getPublisher().getApc() + "");
279
//                    apc = fundingWizardState.getPublication().getPublisher().getApc();
280 280
//                    if(apc>0)
281 281
//                        fundingRequestedTextBox.setEnabled(false);
282 282

  
283
            goldDiscountTextBox.setValue(fundingWizardState.getPublisher().getDiscount() + "");
284
            goldDiscount = fundingWizardState.getPublisher().getDiscount();
283
            goldDiscountTextBox.setValue(fundingWizardState.getPublication().getPublisher().getDiscount() + "");
284
            goldDiscount = fundingWizardState.getPublication().getPublisher().getDiscount();
285 285
        }
286 286
    }
287 287

  
......
290 290
        this.fundingWizardStepCompleteListener = fundingWizardStepCompleteListener;
291 291
    }
292 292

  
293
    @Override
294
    public void setFundingWizardJumpToStepListener(FundingWizardJumpToStepListener fundingWizardJumpToStepListener) {
295

  
296
    }
297

  
293 298
    private boolean isPercentage(String percentage) {
294 299

  
295 300
        try {
modules/uoa-goldoa-portal/trunk/src/main/java/eu/dnetlib/client/fundingrequest/newrequest/summarystep/ResearcherSummaryWidget.java
1
package eu.dnetlib.client.fundingrequest.newrequest.summarystep;
2

  
3
import com.github.gwtbootstrap.client.ui.base.IconAnchor;
4
import com.google.gwt.event.dom.client.ClickEvent;
5
import com.google.gwt.event.dom.client.ClickHandler;
6
import com.google.gwt.user.client.ui.*;
7
import eu.dnetlib.goldoa.domain.Affiliation;
8
import eu.dnetlib.goldoa.domain.Person;
9

  
10
/**
11
 * Created by stefania on 3/25/15.
12
 */
13
public class ResearcherSummaryWidget implements IsWidget {
14

  
15
    private FlowPanel researcherSummaryPanel = new FlowPanel();
16
    private FlowPanel researcherSummaryHeader = new FlowPanel();
17
    private FlowPanel researcherSummaryBody = new FlowPanel();
18

  
19
    private Label researcherSummaryTitle = new Label();
20
    private IconAnchor editAnchor = new IconAnchor();
21

  
22
    private HTML researcherSummaryElement = new HTML();
23
    private String contents;
24

  
25
    private EditResearcherListener editResearcherListener;
26

  
27
    public ResearcherSummaryWidget(Person researcher) {
28

  
29
        researcherSummaryPanel.addStyleName("researcherSummaryPanel");
30
        researcherSummaryPanel.add(researcherSummaryHeader);
31
        researcherSummaryPanel.add(researcherSummaryBody);
32

  
33
        researcherSummaryTitle.setText("Researcher Info");
34
        researcherSummaryTitle.addStyleName("inlineBlock");
35

  
36
        editAnchor.setText("(EDIT)");
37
        editAnchor.addStyleName("inlineBlock");
38
        editAnchor.addStyleName("float-right");
39
        editAnchor.addClickHandler(new ClickHandler() {
40
            @Override
41
            public void onClick(ClickEvent clickEvent) {
42
                if(editResearcherListener!=null)
43
                    editResearcherListener.editClicked(0);
44
            }
45
        });
46

  
47
        researcherSummaryHeader.addStyleName("panelHeader");
48
        researcherSummaryHeader.add(researcherSummaryTitle);
49
        researcherSummaryHeader.add(editAnchor);
50

  
51
        researcherSummaryBody.addStyleName("panelBody");
52
        researcherSummaryBody.add(researcherSummaryElement);
53

  
54
        contents = "<div class=\"summaryInfo\">";
55

  
56
        contents += "<div><span class=\"strong\">Name</span>" + researcher.getName()  + " ";
57
        if(researcher.getInitials()!=null && !researcher.getInitials().trim().equals(""))
58
            contents += researcher.getInitials() + ". ";
59
        contents += researcher.getLastname() + "</div>";
60
        contents += "<div><span class=\"strong\">E-mail</span>" + researcher.getEmail() + "</div>";
61

  
62
        if(researcher.getTelephone()!=null && !researcher.getTelephone().trim().equals(""))
63
            contents += "<div><span class=\"strong\">Telephone</span>" + researcher.getTelephone() + "</div>";
64

  
65
        if(researcher.getOrcidId()!=null && !researcher.getOrcidId().trim().equals(""))
66
            contents += "<div><span class=\"strong\">ORCID</span>" + researcher.getOrcidId() + "</div>";
67

  
68
        if(!researcher.getAffiliations().isEmpty()) {
69

  
70
            contents += "<div><span class=\"strong\">Affiliation(s)</span>";
71

  
72
            for(Affiliation affiliation : researcher.getAffiliations()) {
73
                contents += affiliation.getOrganization().getName();
74
                if(affiliation.getDepartment()!=null && !affiliation.getDepartment().equals(""))
75
                    contents += " - " + affiliation.getDepartment();
76
                contents += "<br>";
77
            }
78
            contents += "</div>";
79
        }
80

  
81
        contents += "</div>";
82

  
83
        researcherSummaryElement.setHTML(contents);
84
    }
85

  
86
    @Override
87
    public Widget asWidget() {
88
        return researcherSummaryPanel;
89
    }
90

  
91
    public interface EditResearcherListener {
92
        public void editClicked(int stepNumber);
93
    }
94

  
95
    public void setEditResearcherListener(EditResearcherListener editResearcherListener) {
96
        this.editResearcherListener = editResearcherListener;
97
    }
98
}
modules/uoa-goldoa-portal/trunk/src/main/java/eu/dnetlib/client/fundingrequest/newrequest/summarystep/AccountingSummaryPanel.java
1
package eu.dnetlib.client.fundingrequest.newrequest.summarystep;
2

  
3
import com.github.gwtbootstrap.client.ui.base.IconAnchor;
4
import com.google.gwt.event.dom.client.ClickEvent;
5
import com.google.gwt.event.dom.client.ClickHandler;
6
import com.google.gwt.user.client.ui.*;
7
import eu.dnetlib.shared.FundingWizardState;
8

  
9
/**
10
 * Created by stefania on 3/25/15.
11
 */
12
public class AccountingSummaryPanel implements IsWidget {
13

  
14
    private FlowPanel researcherSummaryPanel = new FlowPanel();
15
    private FlowPanel researcherSummaryHeader = new FlowPanel();
16
    private FlowPanel researcherSummaryBody = new FlowPanel();
17

  
18
    private Label researcherSummaryTitle = new Label();
19
    private IconAnchor editAnchor = new IconAnchor();
20

  
21
    private HTML researcherSummaryElement = new HTML();
22
    private String contents;
23

  
24
    private EditAccountingListener editAccountingListener;
25

  
26
    public AccountingSummaryPanel(FundingWizardState fundingWizardState) {
27

  
28
        researcherSummaryPanel.addStyleName("researcherSummaryPanel");
29
        researcherSummaryPanel.add(researcherSummaryHeader);
30
        researcherSummaryPanel.add(researcherSummaryBody);
31

  
32
        researcherSummaryTitle.setText("Accounting Info");
33
        researcherSummaryTitle.addStyleName("inlineBlock");
34

  
35
        editAnchor.setText("(EDIT)");
36
        editAnchor.addStyleName("inlineBlock");
37
        editAnchor.addStyleName("float-right");
38
        editAnchor.addClickHandler(new ClickHandler() {
39
            @Override
40
            public void onClick(ClickEvent clickEvent) {
41
                if(editAccountingListener !=null)
42
                    editAccountingListener.editClicked(3);
43
            }
44
        });
45

  
46
        researcherSummaryHeader.addStyleName("panelHeader");
47
        researcherSummaryHeader.add(researcherSummaryTitle);
48
        researcherSummaryHeader.add(editAnchor);
49

  
50
        researcherSummaryBody.addStyleName("panelBody");
51
        researcherSummaryBody.add(researcherSummaryElement);
52

  
53
        contents = "<div class=\"summaryInfo\">";
54

  
55
        if(fundingWizardState.getPublication().getJournal()!=null) {
56

  
57
            contents += "<div><span class=\"strong\">APC</span>" + fundingWizardState.getPublication().getJournal().getApc() + "</div>";
58
            contents += "<div><span class=\"strong\">OpenAIRE Gold Discount</span>" + fundingWizardState.getPublication().getJournal().getDiscount() + "%</div>";
59

  
60
        } else if(fundingWizardState.getPublication().getPublisher()!=null) {
61

  
62
            //TODO uncomment when Antonis adds apc to publisher
63
//            contents += "<div><span class=\"strong\">APC</span>" + fundingWizardState.getPublication().getPublisher().getApc() + "</div>";
64
            contents += "<div><span class=\"strong\">OpenAIRE Gold Discount</span>" + fundingWizardState.getPublication().getPublisher().getDiscount() + "%</div>";
65
        }
66

  
67
        contents += "<div><span class=\"strong\">Project Participation</span>" + fundingWizardState.getRequest().getProjectParticipation() + "%</div>";
68
        contents += "<div><span class=\"strong\">Funding Requested</span>" + fundingWizardState.getRequest().getFundingRequested() + "</div>";
69

  
70
        contents += "</div>";
71

  
72
        researcherSummaryElement.setHTML(contents);
73
    }
74

  
75
    @Override
76
    public Widget asWidget() {
77
        return researcherSummaryPanel;
78
    }
79

  
80
    public interface EditAccountingListener {
81
        public void editClicked(int stepNumber);
82
    }
83

  
84
    public void setEditAccountingListener(EditAccountingListener editAccountingListener) {
85
        this.editAccountingListener = editAccountingListener;
86
    }
87
}
modules/uoa-goldoa-portal/trunk/src/main/java/eu/dnetlib/client/fundingrequest/newrequest/summarystep/ProjectSummaryWidget.java
1
package eu.dnetlib.client.fundingrequest.newrequest.summarystep;
2

  
3
import com.github.gwtbootstrap.client.ui.base.IconAnchor;
4
import com.google.gwt.event.dom.client.ClickEvent;
5
import com.google.gwt.event.dom.client.ClickHandler;
6
import com.google.gwt.user.client.ui.*;
7
import eu.dnetlib.goldoa.domain.Project;
8

  
9
/**
10
 * Created by stefania on 3/25/15.
11
 */
12
public class ProjectSummaryWidget implements IsWidget {
13

  
14
    private FlowPanel projectSummaryPanel = new FlowPanel();
15
    private FlowPanel projectSummaryHeader = new FlowPanel();
16
    private FlowPanel projectSummaryBody = new FlowPanel();
17

  
18
    private Label projectSummaryTitle = new Label();
19
    private IconAnchor editAnchor = new IconAnchor();
20

  
21
    private HTML projectSummaryElement = new HTML();
22
    private String contents;
23

  
24
    private EditProjectListener editProjectListener;
25

  
26
    public ProjectSummaryWidget(Project project) {
27

  
28
        projectSummaryPanel.addStyleName("projectSummaryPanel");
29
        projectSummaryPanel.add(projectSummaryHeader);
30
        projectSummaryPanel.add(projectSummaryBody);
31

  
32
        projectSummaryTitle.setText("Project Info");
33
        projectSummaryTitle.addStyleName("inlineBlock");
34

  
35
        editAnchor.setText("(EDIT)");
36
        editAnchor.addStyleName("inlineBlock");
37
        editAnchor.addStyleName("float-right");
38
        editAnchor.addClickHandler(new ClickHandler() {
39
            @Override
40
            public void onClick(ClickEvent clickEvent) {
41
                if(editProjectListener!=null)
42
                    editProjectListener.editClicked(1);
43
            }
44
        });
45

  
46
        projectSummaryHeader.addStyleName("panelHeader");
47
        projectSummaryHeader.add(projectSummaryTitle);
48
        projectSummaryHeader.add(editAnchor);
49

  
50
        projectSummaryBody.addStyleName("panelBody");
51
        projectSummaryBody.add(projectSummaryElement);
52

  
53
        contents = "<div class=\"summaryInfo\">";
54

  
55
        if (project.getAcronym() != null)
56
            contents += "<div><span class=\"strong\">Acronym</span>" + project.getAcronym() + "</div>";
57

  
58
        if (project.getTitle() != null)
59
            contents += "<div><span class=\"strong\">Title</span>" + project.getTitle() + "</div>";
60

  
61
        contents += "</div>";
62

  
63
        projectSummaryElement.setHTML(contents);
64
    }
65

  
66
    @Override
67
    public Widget asWidget() {
68
        return projectSummaryPanel;
69
    }
70

  
71
    public interface EditProjectListener {
72
        public void editClicked(int stepNumber);
73
    }
74

  
75
    public void setEditProjectListener(EditProjectListener editProjectListener) {
76
        this.editProjectListener = editProjectListener;
77
    }
78
}
modules/uoa-goldoa-portal/trunk/src/main/java/eu/dnetlib/client/fundingrequest/newrequest/summarystep/PublicationSummaryWidget.java
1
package eu.dnetlib.client.fundingrequest.newrequest.summarystep;
2

  
3
import com.github.gwtbootstrap.client.ui.base.IconAnchor;
4
import com.google.gwt.event.dom.client.ClickEvent;
5
import com.google.gwt.event.dom.client.ClickHandler;
6
import com.google.gwt.i18n.client.DateTimeFormat;
7
import com.google.gwt.user.client.ui.*;
8
import eu.dnetlib.goldoa.domain.*;
9

  
10
/**
11
 * Created by stefania on 3/25/15.
12
 */
13
public class PublicationSummaryWidget implements IsWidget {
14

  
15
    private FlowPanel publicationSummaryPanel = new FlowPanel();
16
    private FlowPanel publicationSummaryHeader = new FlowPanel();
17
    private FlowPanel publicationSummaryBody = new FlowPanel();
18

  
19
    private Label publicationSummaryTitle = new Label();
20
    private IconAnchor editAnchor = new IconAnchor();
21

  
22
    private HTML publicationSummaryElement = new HTML();
23
    private String contents;
24

  
25
    DateTimeFormat dtf = DateTimeFormat.getFormat("yyyy/MM/dd");
26

  
27
    private EditPublicationListener editPublicationListener;
28

  
29
    public PublicationSummaryWidget(Publication publication) {
30

  
31
        publicationSummaryPanel.addStyleName("publicationSummaryPanel");
32
        publicationSummaryPanel.add(publicationSummaryHeader);
33
        publicationSummaryPanel.add(publicationSummaryBody);
34

  
35
        if(publication.getJournal()!=null)
36
            publicationSummaryTitle.setText("Publication / Journal Info");
37
        else
38
            publicationSummaryTitle.setText("Publication / Publisher Info");
39
        publicationSummaryTitle.addStyleName("inlineBlock");
40

  
41
        editAnchor.setText("(EDIT)");
42
        editAnchor.addStyleName("inlineBlock");
43
        editAnchor.addStyleName("float-right");
44
        editAnchor.addClickHandler(new ClickHandler() {
45
            @Override
46
            public void onClick(ClickEvent clickEvent) {
47
                if(editPublicationListener !=null)
48
                    editPublicationListener.editClicked(2);
49
            }
50
        });
51

  
52
        publicationSummaryHeader.addStyleName("panelHeader");
53
        publicationSummaryHeader.add(publicationSummaryTitle);
54
        publicationSummaryHeader.add(editAnchor);
55

  
56
        publicationSummaryBody.addStyleName("panelBody");
57
        publicationSummaryBody.add(publicationSummaryElement);
58

  
59
        contents = "<div class=\"summaryInfo\">";
60

  
61
        contents += "<dl><dt>PUBLICATION</dt></dl>";
62

  
63
        if(publication.getTitle()!=null && !publication.getTitle().trim().equals(""))
64
            contents += "<div><span class=\"strong\">Title</span>" + publication.getTitle() + "</div>";
65

  
66
        if(publication.getDoi()!=null && !publication.getDoi().trim().equals(""))
67
            contents += "<div><span class=\"strong\">DOI</span>" + publication.getDoi() + "</div>";
68

  
69
        if(!publication.getAuthors().isEmpty()) {
70

  
71
            contents += "<div><span class=\"strong\">Author(s)</span>";
72
            for(int i=0; i<publication.getAuthors().size(); i++) {
73
                if(i!=0)
74
                    contents += ", ";
75
                contents += publication.getAuthors().get(i).getPerson().getName();
76
                if(publication.getAuthors().get(i).getPerson().getInitials()!=null && !publication.getAuthors().get(i).getPerson().getInitials().trim().equals(""))
77
                    contents += " " + publication.getAuthors().get(i).getPerson().getInitials();
78
                contents += " " + publication.getAuthors().get(i).getPerson().getLastname();
79
            }
80

  
81
            contents += "</div>";
82
        }
83

  
84
        if(publication.getPublicationDate()!=null)
85
            contents += "<div><span class=\"strong\">Publication Date</span>" + dtf.format(publication.getPublicationDate()) + "</div>";
86

  
87
        if(publication.getType().equals(Publication.Type.ARTICLE))
88
            contents += "<div><span class=\"strong\">Type</span>Article</div>";
89
        else
90
            contents += "<div><span class=\"strong\">Type</span>Monograph</div>";
91

  
92
        if(publication.getLanguages()!=null && !publication.getLanguages().trim().equals(""))
93
            contents += "<div><span class=\"strong\">Languages</span>" + publication.getLanguages() + "</div>";
94

  
95
        if(publication.getSubjects()!=null && !publication.getSubjects().trim().equals(""))
96
            contents += "<div><span class=\"strong\">Subjects</span>" + publication.getSubjects() + "</div>";
97

  
98
        if(!publication.getIdentifiers().isEmpty()) {
99

  
100
            contents += "<div><span class=\"strong\">Identifier(s)</span>";
101

  
102
            for(PublicationIdentifier publicationIdentifier : publication.getIdentifiers()) {
103
                contents += publicationIdentifier.getType() + " - " + publicationIdentifier.getValue() + "<br>";
104
            }
105

  
106
            contents += "</div>";
107
        }
108

  
109

  
110
        if(publication.getJournal()!=null) {
111

  
112
            Journal journal = publication.getJournal();
113
            contents += "<dl><dt>JOURNAL</dt></dl>";
114

  
115
            if(journal.getTitle()!=null && !journal.getTitle().trim().equals(""))
116
                contents += "<div><span class=\"strong\">Title</span>" + journal.getTitle() + "</div>";
117

  
118
            if(journal.getAlternativeTitle()!=null && !journal.getAlternativeTitle().trim().equals(""))
119
                contents += "<div><span class=\"strong\">Alternative Title</span>" + journal.getAlternativeTitle() + "</div>";
120

  
121
            if(journal.getUrl()!=null && !journal.getUrl().trim().equals(""))
122
                contents += "<div><span class=\"strong\">URL</span>" + journal.getUrl() + "</div>";
123

  
124
            if(journal.getLanguages()!=null && !journal.getLanguages().trim().equals(""))
125
                contents += "<div><span class=\"strong\">Languages</span>" + journal.getLanguages() + "</div>";
126

  
127
            if(journal.getIssn()!=null && !journal.getIssn().trim().equals(""))
128
                contents += "<div><span class=\"strong\">ISSN / EISSN</span>" + journal.getIssn() + "</div>";
129

  
130
            if(journal.getCountry()!=null && !journal.getCountry().trim().equals(""))
131
                contents += "<div><span class=\"strong\">Country</span>" + journal.getCountry() + "</div>";
132

  
133
            if(journal.getSubjects()!=null && !journal.getSubjects().trim().equals(""))
134
                contents += "<div><span class=\"strong\">Subjects</span>" + journal.getSubjects() + "</div>>";
135

  
136
            if(journal.getLicence()!=null && !journal.getLicence().trim().equals(""))
137
                contents += "<div><span class=\"strong\">Licence</span>" + journal.getLicence() + "</div>";
138

  
139
        } else if(publication.getPublisher()!=null) {
140

  
141
            Publisher publisher = publication.getPublisher();
142
            contents += "<dl><dt>PUBLISHER</dt></dl>";
143

  
144
            if(publisher.getName()!=null && !publisher.getName().trim().equals(""))
145
                contents += "<div><span class=\"strong\">Publisher Name</span>" + publisher.getName() + "</div>";
146
        }
147

  
148

  
149
        contents += "</div>";
150

  
151
        publicationSummaryElement.setHTML(contents);
152
    }
153

  
154
    @Override
155
    public Widget asWidget() {
156
        return publicationSummaryPanel;
157
    }
158

  
159
    public interface EditPublicationListener {
160
        public void editClicked(int stepNumber);
161
    }
162

  
163
    public void setEditPublicationListener(EditPublicationListener editPublicationListener) {
164
        this.editPublicationListener = editPublicationListener;
165
    }
166
}
modules/uoa-goldoa-portal/trunk/src/main/java/eu/dnetlib/client/fundingrequest/newrequest/summarystep/SummaryStepWidget.java
1 1
package eu.dnetlib.client.fundingrequest.newrequest.summarystep;
2 2

  
3
import com.github.gwtbootstrap.client.ui.Alert;
4
import com.github.gwtbootstrap.client.ui.CheckBox;
5
import com.github.gwtbootstrap.client.ui.base.IconAnchor;
6
import com.github.gwtbootstrap.client.ui.constants.AlertType;
7
import com.google.gwt.core.client.GWT;
8
import com.google.gwt.event.dom.client.ClickEvent;
9
import com.google.gwt.event.dom.client.ClickHandler;
10
import com.google.gwt.user.client.rpc.AsyncCallback;
3 11
import com.google.gwt.user.client.ui.FlowPanel;
12
import com.google.gwt.user.client.ui.Label;
4 13
import com.google.gwt.user.client.ui.Widget;
14
import eu.dnetlib.client.fundingrequest.newrequest.EligibilityDisplayWidget;
15
import eu.dnetlib.client.fundingrequest.newrequest.EligibilityService;
16
import eu.dnetlib.client.fundingrequest.newrequest.EligibilityServiceAsync;
5 17
import eu.dnetlib.client.fundingrequest.newrequest.FundingWizardStepWidget;
18
import eu.dnetlib.goldoa.domain.Eligibility;
6 19
import eu.dnetlib.shared.FundingWizardState;
7 20

  
8 21
/**
......
11 24
public class SummaryStepWidget extends FundingWizardStepWidget {
12 25

  
13 26
    private FlowPanel summaryStepPanel = new FlowPanel();
27
    private Label researcherInfoLabel = new Label();
28
    private Alert errorLabel = new Alert();
14 29

  
30
    private FlowPanel eligibilityPanel = new FlowPanel();
31

  
32
    private FlowPanel summaryWidgetsPanel = new FlowPanel();
33

  
34
    private ResearcherSummaryWidget researcherSummaryWidget;
35
    private ProjectSummaryWidget projectSummaryWidget;
36
    private PublicationSummaryWidget publicationSummaryWidget;
37
    private AccountingSummaryPanel accountingSummaryPanel;
38

  
39
    private FlowPanel agreeToTermsPanel = new FlowPanel();
40
    private CheckBox agreeToTerms = new CheckBox("I have read and agreed to the ");
41
    private IconAnchor termsLink = new IconAnchor();
42

  
43
    private FundingWizardJumpToStepListener fundingWizardJumpToStepListener;
44
    private FundingWizardStepCompleteListener fundingWizardStepCompleteListener;
45

  
46
    private FundingWizardState currentFundingWizardState;
47

  
48
    private EligibilityServiceAsync eligibilityService = GWT.create(EligibilityService.class);
49

  
15 50
    public SummaryStepWidget(String title) {
16 51

  
17 52
        super(title);
53

  
54
        researcherInfoLabel.addStyleName("stepWidgetLabel");
55
        researcherInfoLabel.setText("Review your funding request so far and edit if needed before submitting");
56

  
57
        errorLabel.addStyleName("alertLabel");
58
        errorLabel.setType(AlertType.ERROR);
59
        errorLabel.setVisible(false);
60
        errorLabel.setClose(false);
61

  
62
        agreeToTermsPanel.addStyleName("agreeToTerms");
63
        agreeToTerms.addStyleName("inlineBlock");
64
        termsLink.setText("Terms and Conditions");
65
        termsLink.addStyleName("inlineBlock");
66
        termsLink.addClickHandler(new ClickHandler() {
67
            @Override
68
            public void onClick(ClickEvent clickEvent) {
69

  
70
            }
71
        });
72

  
73
        agreeToTermsPanel.add(agreeToTerms);
74
        agreeToTermsPanel.add(termsLink);
75

  
76
        summaryStepPanel.add(researcherInfoLabel);
77
        summaryStepPanel.add(errorLabel);
78
        summaryStepPanel.add(eligibilityPanel);
79
        summaryStepPanel.add(summaryWidgetsPanel);
80
        summaryStepPanel.add(agreeToTermsPanel);
18 81
    }
19 82

  
20 83
    @Override
......
25 88
    @Override
26 89
    public void save() {
27 90

  
91
        errorLabel.setVisible(false);
92
        eligibilityPanel.clear();
93

  
94
        eligibilityService.validate(currentFundingWizardState.getRequest(), new AsyncCallback<Eligibility>() {
95

  
96
            @Override
97
            public void onFailure(Throwable throwable) {
98
                errorLabel.setText("System error retrieving eligibility for this request.");
99
                errorLabel.setVisible(true);
100
            }
101

  
102
            @Override
103
            public void onSuccess(Eligibility eligibility) {
104

  
105
                if(eligibility.getStatus().equals(Eligibility.Status.OK) || eligibility.getStatus().equals(Eligibility.Status.IFFY)) {
106

  
107
                    if(agreeToTerms.getValue()) {
108
                        if(fundingWizardStepCompleteListener!=null)
109
                            fundingWizardStepCompleteListener.setStepComplete(true);
110
                    } else {
111
                        errorLabel.setText("You need to agree first to our Terms and Conditions.");
112
                        errorLabel.setVisible(true);
113
                    }
114

  
115
                } else {
116
                    EligibilityDisplayWidget eligibilityDisplayWidget = new EligibilityDisplayWidget(eligibility);
117
                    eligibilityPanel.add(eligibilityDisplayWidget.asWidget());
118
                }
119
            }
120
        });
28 121
    }
29 122

  
30 123
    @Override
31 124
    public void loadContent(FundingWizardState fundingWizardState) {
32 125

  
126
        currentFundingWizardState = fundingWizardState;
127

  
128
        errorLabel.setVisible(false);
129
        summaryWidgetsPanel.clear();
130

  
131
        publicationSummaryWidget = new PublicationSummaryWidget(fundingWizardState.getPublication());
132
        PublicationSummaryWidget.EditPublicationListener editPublicationListener = new PublicationSummaryWidget.EditPublicationListener() {
133
            @Override
134
            public void editClicked(int stepNumber) {
135
                if(fundingWizardJumpToStepListener!=null)
136
                    fundingWizardJumpToStepListener.jumpTo(stepNumber);
137
            }
138
        };
139
        publicationSummaryWidget.setEditPublicationListener(editPublicationListener);
140
        summaryWidgetsPanel.add(publicationSummaryWidget.asWidget());
141

  
142
        researcherSummaryWidget = new ResearcherSummaryWidget(fundingWizardState.getResearcher());
143
        ResearcherSummaryWidget.EditResearcherListener editResearcherListener = new ResearcherSummaryWidget.EditResearcherListener() {
144
            @Override
145
            public void editClicked(int stepNumber) {
146
                if(fundingWizardJumpToStepListener!=null)
147
                    fundingWizardJumpToStepListener.jumpTo(stepNumber);
148
            }
149
        };
150
        researcherSummaryWidget.setEditResearcherListener(editResearcherListener);
151
        summaryWidgetsPanel.add(researcherSummaryWidget.asWidget());
152

  
153
        projectSummaryWidget = new ProjectSummaryWidget(fundingWizardState.getProject());
154
        ProjectSummaryWidget.EditProjectListener editProjectListener = new ProjectSummaryWidget.EditProjectListener() {
155
            @Override
156
            public void editClicked(int stepNumber) {
157
                if(fundingWizardJumpToStepListener!=null)
158
                    fundingWizardJumpToStepListener.jumpTo(stepNumber);
159
            }
160
        };
161
        projectSummaryWidget.setEditProjectListener(editProjectListener);
162
        summaryWidgetsPanel.add(projectSummaryWidget.asWidget());
163

  
164
        accountingSummaryPanel = new AccountingSummaryPanel(fundingWizardState);
165
        AccountingSummaryPanel.EditAccountingListener editAccountingListener = new AccountingSummaryPanel.EditAccountingListener() {
166
            @Override
167
            public void editClicked(int stepNumber) {
168
                if(fundingWizardJumpToStepListener!=null)
169
                    fundingWizardJumpToStepListener.jumpTo(stepNumber);
170
            }
171
        };
172
        accountingSummaryPanel.setEditAccountingListener(editAccountingListener);
173
        summaryWidgetsPanel.add(accountingSummaryPanel.asWidget());
33 174
    }
34 175

  
35 176
    @Override
36 177
    public void setFundingWizardStepCompleteListener(FundingWizardStepCompleteListener fundingWizardStepCompleteListener) {
178
        this.fundingWizardStepCompleteListener = fundingWizardStepCompleteListener;
179
    }
37 180

  
181
    @Override
182
    public void setFundingWizardJumpToStepListener(FundingWizardJumpToStepListener fundingWizardJumpToStepListener) {
183
        this.fundingWizardJumpToStepListener = fundingWizardJumpToStepListener;
38 184
    }
39 185

  
40 186
    @Override
modules/uoa-goldoa-portal/trunk/src/main/java/eu/dnetlib/client/fundingrequest/newrequest/FundingWizardStepWidget.java
29 29
    }
30 30

  
31 31
    public abstract void setFundingWizardStepCompleteListener(FundingWizardStepCompleteListener fundingWizardStepCompleteListener);
32

  
33
    public interface FundingWizardJumpToStepListener {
34
        public void jumpTo(int newActiveStep);
35
    }
36

  
37
    public abstract void setFundingWizardJumpToStepListener(FundingWizardJumpToStepListener fundingWizardJumpToStepListener);
32 38
}
modules/uoa-goldoa-portal/trunk/src/main/webapp/GoldOAPortal.css
565 565
    padding: 10px 20px;
566 566
}
567 567

  
568
.personalInfoPanel dd {
568
.panelBody dd {
569 569
    margin-left: 0px !important;
570 570
}
571 571

  
......
588 588
    margin-right: 137px;
589 589
}
590 590

  
591
.strong {
592
    font-weight: bold;
593
}
591 594

  
595
/********************************/
592 596

  
597
.projectSummaryPanel {
598
    border: 1px solid #ccc;
599
    border-radius: 4px;
600
    margin-top: 20px;
601
    width: 40%;
602
}
593 603

  
604
.researcherSummaryPanel {
605
    border: 1px solid #ccc;
606
    border-radius: 4px;
607
    margin-top: 20px;
608
    width: 40%;
609
}
594 610

  
611
.publicationSummaryPanel {
612
    border: 1px solid #ccc;
613
    border-radius: 4px;
614
    float: right;
615
    margin-right: 25px;
616
    width: 53%;
617
}
595 618

  
619
.accountingSummaryPanel {
620
    border: 1px solid #ccc;
621
    border-radius: 4px;
622
    margin-top: 20px;
623
    width: 40%;
624
}
596 625

  
626
span.strong {
627
    margin-right: 20px;
628
}
597 629

  
630
.summaryInfo div {
631
    margin-bottom: 10px;
632
}
598 633

  
634
.agreeToTerms {
635
    margin-top: 20px;
636
}
599 637

  
638
.agreeToTerms label {
639
    margin-left: 4px;
640
}
600 641

  
601 642

  
602 643

  
644

  
645

  
646

  
647

  
648

  
649

  
650

  
651

  
652

  
653

  
654

  
655

  
656

  
603 657
/********************************/
604 658

  
605 659
/* Bootstrap overrides */

Also available in: Unified diff