Project

General

Profile

« Previous | Next » 

Revision 50334

First version of the collection monitor page

View differences:

modules/uoa-repository-manager-gui/trunk/src/main/java/eu/dnetlib/repo/manager/client/monitor/AggregationHistoryTimeline.java
1
package eu.dnetlib.repo.manager.client.monitor;
2

  
3
import com.google.gwt.i18n.client.DateTimeFormat;
4
import com.google.gwt.user.client.ui.FlowPanel;
5
import com.google.gwt.user.client.ui.HTML;
6
import com.google.gwt.user.client.ui.IsWidget;
7
import com.google.gwt.user.client.ui.Widget;
8
import eu.dnetlib.repo.manager.shared.AggregationDetails;
9

  
10
import java.util.List;
11

  
12
/**
13
 * Created by stefania on 1/16/18.
14
 */
15
public class AggregationHistoryTimeline implements IsWidget {
16

  
17
    private FlowPanel aggregationHistoryPanel = new FlowPanel();
18

  
19
    private DateTimeFormat dtf = DateTimeFormat.getFormat("yyyy-MM-dd");
20

  
21
    public AggregationHistoryTimeline(List<AggregationDetails> aggregationHistory) {
22

  
23
        aggregationHistoryPanel.addStyleName("uk-width-1-1@m");
24

  
25
        FlowPanel section = new FlowPanel();
26
        section.addStyleName("section md-bg-blue-grey-700");
27
        aggregationHistoryPanel.add(section);
28

  
29
        FlowPanel container = new FlowPanel();
30
        container.addStyleName("uk-container uk-container-center");
31
        section.add(container);
32

  
33
        FlowPanel timeline = new FlowPanel();
34
        timeline.addStyleName("al_timeline");
35
        container.add(timeline);
36

  
37
        for(AggregationDetails aggregationDetails: aggregationHistory) {
38

  
39
            FlowPanel timelineBlock = new FlowPanel();
40
            timelineBlock.addStyleName("al_timeline_block versionChange");
41

  
42
            FlowPanel timelineImage = new FlowPanel();
43
            timelineImage.addStyleName("al_timeline_image uk-scrollspy-init-inview uk-scrollspy-inview uk-animation-scale-up");
44
            timelineBlock.add(timelineImage);
45

  
46
            FlowPanel timelineContent = new FlowPanel();
47
            timelineContent.addStyleName("al_timeline_content uk-scrollspy-init-inview uk-scrollspy-inview uk-animation-slide-left");
48
            timelineBlock.add(timelineContent);
49

  
50
            String content = "";
51

  
52
            if(aggregationDetails.getDate()!=null)
53
                content += "<h3>" + dtf.format(aggregationDetails.getDate()) + "</h3>";
54

  
55
            if(aggregationDetails.getAggregationStage()!=null)
56
                content += "<p>Aggregation stage - " + aggregationDetails.getAggregationStage() + "</p>";
57

  
58
            if(aggregationDetails.getCollectionMode()!=null)
59
                content += "<p>Collection mode - " + aggregationDetails.getCollectionMode() + "</p>";
60

  
61
            content += "<p>Number of records - " + aggregationDetails.getNumberOfRecords() + "</p>";
62
//                    "<a class=\"md-btn md-btn-primary\" href=\"#\">View version details</a>" ;
63
            timelineContent.add(new HTML(content));
64

  
65
            timeline.add(timelineBlock);
66
        }
67

  
68
//        String timelineContent = "<div _ngcontent-c5=\"\" class=\"uk-width-1-1@m\">\n" +
69
//                "<section _ngcontent-c5=\"\" class=\"section md-bg-blue-grey-700\">\n" +
70
//                "                                        <div _ngcontent-c5=\"\" class=\"uk-container uk-container-center\">\n" +
71
//                "                                            <div _ngcontent-c5=\"\" class=\"al_timeline\">\n" +
72
//                "                                                <div _ngcontent-c5=\"\" class=\"al_timeline_block versionChange\">\n" +
73
//                "                                                    <div _ngcontent-c5=\"\" class=\"al_timeline_image uk-scrollspy-init-inview uk-scrollspy-inview uk-animation-scale-up\">\n" +
74
//                "                                                    </div>\n" +
75
//                "                                                    <div _ngcontent-c5=\"\" class=\"al_timeline_content uk-scrollspy-init-inview uk-scrollspy-inview uk-animation-slide-left\">\n" +
76
//                "                                                        <h3 _ngcontent-c5=\"\">Version 3</h3>\n" +
77
//                "                                                        <p _ngcontent-c5=\"\">Updated to this version on 08/08/17 by Antonis Lempesis</p>\n" +
78
//                "                                                        <a _ngcontent-c5=\"\" class=\"md-btn md-btn-primary\" href=\"#\">View version details</a>\n" +
79
//                "                                                    </div>\n" +
80
//                "                                                </div>\n" +
81
//                "                                                <div _ngcontent-c5=\"\" class=\"al_timeline_block update\">\n" +
82
//                "                                                    <div _ngcontent-c5=\"\" class=\"al_timeline_image uk-scrollspy-init-inview uk-scrollspy-inview uk-animation-scale-up\">\n" +
83
//                "                                                    </div>\n" +
84
//                "                                                    <div _ngcontent-c5=\"\" class=\"al_timeline_content uk-scrollspy-init-inview uk-scrollspy-inview uk-animation-slide-right\">\n" +
85
//                "                                                        <h3 _ngcontent-c5=\"\">Updated</h3>\n" +
86
//                "                                                        <p _ngcontent-c5=\"\">on 07/06/17 by George Papastefanatos</p>\n" +
87
//                "                                                    </div>\n" +
88
//                "                                                </div>\n" +
89
//                "                                                <div _ngcontent-c5=\"\" class=\"al_timeline_block update\">\n" +
90
//                "                                                    <div _ngcontent-c5=\"\" class=\"al_timeline_image uk-scrollspy-init-inview uk-scrollspy-inview uk-animation-scale-up\">\n" +
91
//                "                                                    </div>\n" +
92
//                "                                                    <div _ngcontent-c5=\"\" class=\"al_timeline_content uk-scrollspy-init-inview uk-scrollspy-inview uk-animation-slide-right\">\n" +
93
//                "                                                        <h3 _ngcontent-c5=\"\">Updated</h3>\n" +
94
//                "                                                        <p _ngcontent-c5=\"\">on 05/06/17 by Antonis Lempesis</p>\n" +
95
//                "                                                    </div>\n" +
96
//                "                                                </div>\n" +
97
//                "                                                <div _ngcontent-c5=\"\" class=\"al_timeline_block versionChange\">\n" +
98
//                "                                                    <div _ngcontent-c5=\"\" class=\"al_timeline_image uk-scrollspy-init-inview uk-scrollspy-inview uk-animation-scale-up\">\n" +
99
//                "                                                    </div>\n" +
100
//                "                                                    <div _ngcontent-c5=\"\" class=\"al_timeline_content uk-scrollspy-init-inview uk-scrollspy-inview uk-animation-slide-right\">\n" +
101
//                "                                                        <h3 _ngcontent-c5=\"\">Version 2</h3>\n" +
102
//                "                                                        <p _ngcontent-c5=\"\">Updated to this version by Stefania Martziou</p>\n" +
103
//                "                                                        <a _ngcontent-c5=\"\" class=\"md-btn md-btn-primary\" href=\"#\">View version details</a>\n" +
104
//                "                                                    </div>\n" +
105
//                "                                                </div>\n" +
106
//                "                                                <div _ngcontent-c5=\"\" class=\"al_timeline_block update\">\n" +
107
//                "                                                    <div _ngcontent-c5=\"\" class=\"al_timeline_image uk-scrollspy-init-inview uk-scrollspy-inview uk-animation-scale-up\">\n" +
108
//                "                                                    </div>\n" +
109
//                "                                                    <div _ngcontent-c5=\"\" class=\"al_timeline_content uk-scrollspy-init-inview uk-scrollspy-inview uk-animation-slide-right\">\n" +
110
//                "                                                        <h3 _ngcontent-c5=\"\">Updated</h3>\n" +
111
//                "                                                        <p _ngcontent-c5=\"\">on 07/06/17 by George Papastefanatos</p>\n" +
112
//                "                                                    </div>\n" +
113
//                "                                                </div>\n" +
114
//                "                                                <div _ngcontent-c5=\"\" class=\"al_timeline_block update\">\n" +
115
//                "                                                    <div _ngcontent-c5=\"\" class=\"al_timeline_image uk-scrollspy-init-inview uk-scrollspy-inview uk-animation-scale-up\">\n" +
116
//                "                                                    </div>\n" +
117
//                "                                                    <div _ngcontent-c5=\"\" class=\"al_timeline_content uk-scrollspy-init-inview uk-scrollspy-inview uk-animation-slide-right\">\n" +
118
//                "                                                        <h3 _ngcontent-c5=\"\">Updated</h3>\n" +
119
//                "                                                        <p _ngcontent-c5=\"\">on 07/06/17 by Panagiotis Lampropoulos</p>\n" +
120
//                "                                                    </div>\n" +
121
//                "                                                </div>\n" +
122
//                "                                                <div _ngcontent-c5=\"\" class=\"al_timeline_block update\">\n" +
123
//                "                                                    <div _ngcontent-c5=\"\" class=\"al_timeline_image uk-scrollspy-init-inview uk-scrollspy-inview uk-animation-scale-up\">\n" +
124
//                "                                                    </div>\n" +
125
//                "                                                    <div _ngcontent-c5=\"\" class=\"al_timeline_content uk-scrollspy-init-inview uk-scrollspy-inview uk-animation-slide-left\">\n" +
126
//                "                                                        <h3 _ngcontent-c5=\"\">Updated</h3>\n" +
127
//                "                                                        <p _ngcontent-c5=\"\">on 07/06/17 by Stefania Martziou</p>\n" +
128
//                "                                                    </div>\n" +
129
//                "                                                </div>\n" +
130
//                "                                                <div _ngcontent-c5=\"\" class=\"al_timeline_block versionChange\">\n" +
131
//                "                                                    <div _ngcontent-c5=\"\" class=\"al_timeline_image\">\n" +
132
//                "                                                    </div>\n" +
133
//                "                                                    <div _ngcontent-c5=\"\" class=\"al_timeline_content\">\n" +
134
//                "                                                        <h3 _ngcontent-c5=\"\">Version 1</h3>\n" +
135
//                "                                                        <p _ngcontent-c5=\"\">Updated to this version on 01/01/2017 by George Papastefanatos</p>\n" +
136
//                "                                                        <a _ngcontent-c5=\"\" class=\"md-btn md-btn-primary\" href=\"#\">View version details</a>\n" +
137
//                "                                                    </div>\n" +
138
//                "                                                </div>\n" +
139
//                "                                            </div>\n" +
140
//                "                                        </div>\n" +
141
//                "                                    </section>\n" +
142
//                "\n" +
143
//                "\n" +
144
//                "                                </div>";
145
//
146
//        HTML timeline = new HTML(timelineContent);
147
//
148
//        aggregationHistoryPanel.add(timeline);
149

  
150
    }
151

  
152
    @Override
153
    public Widget asWidget() {
154
        return aggregationHistoryPanel;
155
    }
156
}
modules/uoa-repository-manager-gui/trunk/src/main/java/eu/dnetlib/repo/manager/client/monitor/CollectionMonitorWidget.java
1
package eu.dnetlib.repo.manager.client.monitor;
2

  
3
import com.google.gwt.core.client.GWT;
4
import com.google.gwt.dom.client.Document;
5
import com.google.gwt.user.client.Window;
6
import com.google.gwt.user.client.rpc.AsyncCallback;
7
import com.google.gwt.user.client.ui.FlowPanel;
8
import com.google.gwt.user.client.ui.HTML;
9
import eu.dnetlib.domain.data.Repository;
10
import eu.dnetlib.gwt.client.help.HelpService;
11
import eu.dnetlib.gwt.client.help.HelpServiceAsync;
12
import eu.dnetlib.repo.manager.client.AbstractRepositoryManagerWidget;
13
import eu.dnetlib.repo.manager.client.HelpCallback;
14
import eu.dnetlib.repo.manager.client.RepositoryManagerWidget;
15
import eu.dnetlib.repo.manager.client.services.RepositoryService;
16
import eu.dnetlib.repo.manager.client.services.RepositoryServiceAsync;
17
import eu.dnetlib.repo.manager.shared.Aggregations;
18
import org.gwtbootstrap3.client.ui.Alert;
19
import org.gwtbootstrap3.client.ui.constants.AlertType;
20

  
21
/**
22
 * Created by stefania on 1/16/18.
23
 */
24
public class CollectionMonitorWidget extends AbstractRepositoryManagerWidget implements RepositoryManagerWidget {
25

  
26
    private String parentToken = "";
27
    private String restToken = "";
28

  
29
    private Alert errorAlert = new Alert();
30

  
31
    private HTML title = new HTML();
32
    private FlowPanel monitorContent = new FlowPanel();
33

  
34
    private static HelpServiceAsync helpService = GWT.create(HelpService.class);
35
    private RepositoryServiceAsync repositoryService = GWT.create(RepositoryService.class);
36

  
37
    public CollectionMonitorWidget() {
38

  
39
        super();
40

  
41
        title.addStyleName("uk-margin-medium-bottom");
42
        contentPanel.add(title);
43

  
44
        errorAlert.setType(AlertType.DANGER);
45
        errorAlert.setDismissable(false);
46
        errorAlert.setVisible(false);
47
        contentPanel.add(errorAlert);
48

  
49
        contentPanel.add(monitorContent);
50
    }
51

  
52
    @Override
53
    public void clear() {
54

  
55
        monitorContent.clear();
56
        errorAlert.setVisible(false);
57
        gridPanel.remove(helpPanel);
58
    }
59

  
60
    @Override
61
    public void reload() {
62

  
63
        errorAlert.setVisible(false);
64

  
65
        Document.get().getElementById("headerNoTransparent").removeClassName("tm-header-transparent");
66

  
67
        helpService.getHelpById(parentToken, new HelpCallback(helpPanel, gridPanel));
68

  
69
        final HTML loadingWheel = new HTML("<div class=\"loader-big\" style=\"text-align: center; padding-top: 170px; " +
70
                "color: rgb(47, 64, 80); font-weight: bold;\">Retrieving repository info...</div>" +
71
                "<div class=\"whiteFilm\"></div>");
72
        monitorContent.addStyleName("loading-big");
73
        monitorContent.add(loadingWheel);
74

  
75
        repositoryService.getRepository(restToken, new AsyncCallback<Repository>() {
76

  
77
            @Override
78
            public void onFailure(Throwable throwable) {
79

  
80
                monitorContent.removeStyleName("loading-big");
81
                monitorContent.remove(loadingWheel);
82

  
83
                Alert errorAlert = new Alert();
84
                errorAlert.setType(AlertType.DANGER);
85
                errorAlert.setText("System error retrieving repository info.");
86
                errorAlert.setDismissable(false);
87
                monitorContent.add(errorAlert);
88
            }
89

  
90
            @Override
91
            public void onSuccess(Repository repository) {
92

  
93
                title.setHTML("<h1 class=\"uk-article-title\">Aggregation history for " + repository.getOfficialName() + "</h1>");
94

  
95
                repositoryService.getRepositoryAggregations(restToken, new AsyncCallback<Aggregations>() {
96

  
97
                    @Override
98
                    public void onFailure(Throwable throwable) {
99

  
100
                        monitorContent.removeStyleName("loading-big");
101
                        monitorContent.remove(loadingWheel);
102

  
103
                        Alert errorAlert = new Alert();
104
                        errorAlert.setType(AlertType.DANGER);
105
                        errorAlert.setText("System error retrieving repository aggregation history.");
106
                        errorAlert.setDismissable(false);
107
                        monitorContent.add(errorAlert);
108
                    }
109

  
110
                    @Override
111
                    public void onSuccess(Aggregations aggregations) {
112

  
113
                        monitorContent.removeStyleName("loading-big");
114
                        monitorContent.remove(loadingWheel);
115

  
116
                        if(aggregations==null || aggregations.getAggregationHistory()==null
117
                                || aggregations.getAggregationHistory().isEmpty()) {
118
                            HTML message = new HTML("<div>There is no aggregation history for this repository at the moment</div>");
119
                            monitorContent.add(message);
120
                        } else {
121
                            AggregationHistoryTimeline aggregationHistoryTimeline = new AggregationHistoryTimeline(aggregations.getAggregationHistory());
122
                            monitorContent.add(aggregationHistoryTimeline.asWidget());
123
                        }
124
                    }
125
                });
126
            }
127
        });
128
    }
129

  
130
    @Override
131
    public void setToken(String parentToken, String rest) {
132
        this.parentToken = parentToken;
133
        this.restToken = rest;
134
    }
135

  
136
    @Override
137
    public void afterAdditionToRootPanel() {
138

  
139
    }
140
}
modules/uoa-repository-manager-gui/trunk/src/main/java/eu/dnetlib/repo/manager/client/monitor/MonitorController.java
9 9
public class MonitorController extends TokenController {
10 10

  
11 11
    private MonitorWidget monitorWidget = new MonitorWidget();
12
    private CollectionMonitorWidget collectionMonitorWidget = new CollectionMonitorWidget();
12 13

  
13 14
    private static MonitorController instance = null;
14 15

  
......
25 26
        if (rest == null)
26 27
            redrawWidget(contentPanel, monitorWidget, parent, rest);
27 28
        else {
28
//            redrawWidget(contentPanel, viewJobDetailsWidget, parent, rest);
29
            redrawWidget(contentPanel, collectionMonitorWidget, parent, rest);
29 30
        }
30 31
    }
31 32

  
modules/uoa-repository-manager-gui/trunk/src/main/java/eu/dnetlib/repo/manager/client/monitor/MonitorWidget.java
2 2

  
3 3
import com.google.gwt.core.client.GWT;
4 4
import com.google.gwt.dom.client.Document;
5
import com.google.gwt.user.client.rpc.AsyncCallback;
5 6
import com.google.gwt.user.client.ui.FlowPanel;
6 7
import com.google.gwt.user.client.ui.HTML;
7 8
import eu.dnetlib.gwt.client.help.HelpService;
8 9
import eu.dnetlib.gwt.client.help.HelpServiceAsync;
9 10
import eu.dnetlib.repo.manager.client.AbstractRepositoryManagerWidget;
10 11
import eu.dnetlib.repo.manager.client.HelpCallback;
12
import eu.dnetlib.repo.manager.client.RepositoryManager;
11 13
import eu.dnetlib.repo.manager.client.RepositoryManagerWidget;
12 14
import eu.dnetlib.repo.manager.client.services.RepositoryService;
13 15
import eu.dnetlib.repo.manager.client.services.RepositoryServiceAsync;
16
import eu.dnetlib.repo.manager.client.widgets.ListOrGridViewOfDatasourcesWidget;
17
import eu.dnetlib.repo.manager.client.widgets.OpenAIRECompliantLogoDownloadWidget;
18
import eu.dnetlib.repo.manager.shared.DatasourcesCollection;
14 19
import org.gwtbootstrap3.client.ui.Alert;
15 20
import org.gwtbootstrap3.client.ui.constants.AlertType;
16 21

  
......
61 66

  
62 67
        helpService.getHelpById(parentToken, new HelpCallback(helpPanel, gridPanel));
63 68

  
64
        HTML comingSoon = new HTML("Coming soon...");
65
        monitorContent.add(comingSoon);
69
        final HTML loadingWheel = new HTML("<div class=\"loader-big\" style=\"text-align: center; padding-top: 170px; " +
70
                "color: rgb(47, 64, 80); font-weight: bold;\">Retrieving repositories...</div>" +
71
                "<div class=\"whiteFilm\"></div>");
72
        monitorContent.addStyleName("loading-big");
73
        monitorContent.add(loadingWheel);
66 74

  
67
//        final HTML loadingWheel = new HTML("<div class=\"loader-big\" style=\"text-align: center; padding-top: 170px; " +
68
//                "color: rgb(47, 64, 80); font-weight: bold;\">Retrieving repositories...</div>" +
69
//                "<div class=\"whiteFilm\"></div>");
70
//        getImpactContent.addStyleName("loading-big");
71
//        getImpactContent.add(loadingWheel);
75
        repositoryService.getRepositoriesOfUser(RepositoryManager.currentUser.getEmail(), true, false,
76
                new AsyncCallback<DatasourcesCollection>() {
77

  
78
                    @Override
79
                    public void onFailure(Throwable caught) {
80

  
81
                        monitorContent.removeStyleName("loading-big");
82
                        monitorContent.remove(loadingWheel);
83

  
84
                        Alert errorAlert = new Alert();
85
                        errorAlert.setType(AlertType.DANGER);
86
                        errorAlert.setText("System error retrieving repositories.");
87
                        errorAlert.setDismissable(false);
88
                        monitorContent.add(errorAlert);
89
                    }
90

  
91
                    @Override
92
                    public void onSuccess(DatasourcesCollection datasourcesCollection) {
93

  
94
                        monitorContent.removeStyleName("loading-big");
95
                        monitorContent.remove(loadingWheel);
96

  
97
                        ListOrGridViewOfDatasourcesWidget listOrGridViewOfDatasourcesWidget =
98
                                new ListOrGridViewOfDatasourcesWidget(datasourcesCollection, "Choose the Datasource you would like to manage",
99
                                        parentToken, "<i class=\"fa fa-pencil\" aria-hidden=\"true\"></i>", false);
100

  
101
                        monitorContent.add(listOrGridViewOfDatasourcesWidget.asWidget());
102
                    }
103
                });
72 104
    }
73 105

  
74 106
    @Override

Also available in: Unified diff