• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

knowledgepixels / nanodash / 17437818570

03 Sep 2025 03:09PM UTC coverage: 12.108% (-0.03%) from 12.137%
17437818570

push

github

tkuhn
Improve async loading of projects; provide new MethodResultComponent

337 of 3874 branches covered (8.7%)

Branch coverage included in aggregate %.

972 of 6937 relevant lines covered (14.01%)

0.62 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
src/main/java/com/knowledgepixels/nanodash/page/UserListPage.java
1
package com.knowledgepixels.nanodash.page;
2

3
import com.knowledgepixels.nanodash.ApiCache;
4
import com.knowledgepixels.nanodash.User;
5
import com.knowledgepixels.nanodash.component.ApiResultComponent;
6
import com.knowledgepixels.nanodash.component.TitleBar;
7
import com.knowledgepixels.nanodash.component.UserList;
8
import org.apache.wicket.Component;
9
import org.apache.wicket.markup.html.basic.Label;
10
import org.apache.wicket.markup.html.link.BookmarkablePageLink;
11
import org.apache.wicket.markup.html.link.ExternalLink;
12
import org.apache.wicket.markup.repeater.Item;
13
import org.apache.wicket.markup.repeater.data.DataView;
14
import org.apache.wicket.markup.repeater.data.ListDataProvider;
15
import org.apache.wicket.request.mapper.parameter.PageParameters;
16
import org.eclipse.rdf4j.model.IRI;
17
import org.nanopub.extra.services.ApiResponse;
18

19
import java.util.HashMap;
20
import java.util.List;
21

22
/**
23
 * Page that lists all users and groups.
24
 */
25
public class UserListPage extends NanodashPage {
26

27
    private static final long serialVersionUID = 1L;
28

29
    /**
30
     * The mount path for this page.
31
     */
32
    public static final String MOUNT_PATH = "/userlist";
33

34
    /**
35
     * {@inheritDoc}
36
     */
37
    @Override
38
    public String getMountPath() {
39
        return MOUNT_PATH;
×
40
    }
41

42
    /**
43
     * Constructor for the user list page.
44
     *
45
     * @param parameters the page parameters
46
     */
47
    public UserListPage(final PageParameters parameters) {
48
        super(parameters);
×
49

50
        add(new TitleBar("titlebar", this, "users"));
×
51

52
//                final List<Group> groupList = new ArrayList<Group>(Group.getGroups());
53
//                add(new DataView<Group>("groups", new ListDataProvider<Group>(groupList)) {
54
//
55
//                        private static final long serialVersionUID = 1L;
56
//
57
//                        @Override
58
//                        protected void populateItem(Item<Group> item) {
59
//                                Group g = item.getModelObject();
60
//                                PageParameters params = new PageParameters();
61
//                                params.add("id", g.getIri());
62
//                                BookmarkablePageLink<Void> l = new BookmarkablePageLink<Void>("grouplink", GroupPage.class, params);
63
//                                l.add(new Label("linktext", g.getName()));
64
//                                item.add(l);
65
//                        }
66
//
67
//                });
68

69
        final HashMap<String, String> noParams = new HashMap<>();
×
70

71
        final String uQueryName = "get-top-creators-last30d";
×
72
        ApiResponse rResponse = ApiCache.retrieveResponse(uQueryName, noParams);
×
73
        if (rResponse != null) {
×
74
            add(new UserList("topcreators", rResponse, "userid"));
×
75
        } else {
76
            add(new ApiResultComponent("topcreators", uQueryName, noParams) {
×
77

78
                private static final long serialVersionUID = 1L;
79

80
                @Override
81
                public Component getApiResultComponent(String markupId, ApiResponse response) {
82
                    return new UserList(markupId, response, "userid");
×
83
                }
84
            });
85
        }
86

87
        final String aQueryName = "get-top-authors";
×
88
        ApiResponse aResponse = ApiCache.retrieveResponse(aQueryName, noParams);
×
89
        if (aResponse != null) {
×
90
            add(new UserList("topauthors", aResponse, "author"));
×
91
        } else {
92
            add(new ApiResultComponent("topauthors", aQueryName, noParams) {
×
93

94
                private static final long serialVersionUID = 1L;
95

96
                @Override
97
                public Component getApiResultComponent(String markupId, ApiResponse response) {
98
                    return new UserList(markupId, response, "author");
×
99
                }
100
            });
101
        }
102

103
        final List<IRI> userList = User.getUsers(true);
×
104
        add(new Label("usercount", userList.size()));
×
105

106
        add(new DataView<IRI>("approved-users", new ListDataProvider<IRI>(userList)) {
×
107

108
            private static final long serialVersionUID = 1L;
109

110
            @Override
111
            protected void populateItem(Item<IRI> item) {
112
                PageParameters params = new PageParameters();
×
113
                params.add("id", item.getModelObject());
×
114
                BookmarkablePageLink<Void> l = new BookmarkablePageLink<Void>("userlink", UserPage.class, params);
×
115
                l.add(new Label("linktext", User.getDisplayName(item.getModelObject())));
×
116
                item.add(l);
×
117
            }
×
118

119
        });
120

121
        add(new DataView<IRI>("other-users", new ListDataProvider<IRI>(User.getUsers(false))) {
×
122

123
            private static final long serialVersionUID = 1L;
124

125
            @Override
126
            protected void populateItem(Item<IRI> item) {
127
                PageParameters params = new PageParameters();
×
128
                IRI iri = item.getModelObject();
×
129
                params.add("id", iri);
×
130
                BookmarkablePageLink<Void> l = new BookmarkablePageLink<Void>("userlink", UserPage.class, params);
×
131
                l.add(new Label("linktext", User.getDisplayName(iri)));
×
132
                item.add(l);
×
133
            }
×
134

135
        });
136
        add(new ExternalLink("approve", PublishPage.MOUNT_PATH + "?template=http://purl.org/np/RA6TVVSnZChEwyxjvFDNAujk1i8sSPnQx60ZQjldtiDkw&template-version=latest", "approve somebody else"));
×
137
        //add(new ExternalLink("newgroup", PublishPage.MOUNT_PATH + "?template=http://purl.org/np/RAJz6w5cvlsFGkCDtWOUXt2VwEQ3tVGtPdy3atPj_DUhk&template-version=latest", "new group"));
138
    }
×
139

140
    /**
141
     * {@inheritDoc}
142
     */
143
    @Override
144
    protected boolean hasAutoRefreshEnabled() {
145
        return true;
×
146
    }
147

148
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc