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

knowledgepixels / nanodash / 17592217047

09 Sep 2025 06:31PM UTC coverage: 13.801% (-0.02%) from 13.819%
17592217047

push

github

tkuhn
Use ItemListPanel for all user lists on UserListPage

415 of 3902 branches covered (10.64%)

Branch coverage included in aggregate %.

1102 of 7090 relevant lines covered (15.54%)

0.69 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 java.util.ArrayList;
4
import java.util.List;
5

6
import org.apache.wicket.markup.html.link.ExternalLink;
7
import org.apache.wicket.request.mapper.parameter.PageParameters;
8
import org.eclipse.rdf4j.model.IRI;
9
import org.nanopub.extra.services.ApiResponseEntry;
10

11
import com.knowledgepixels.nanodash.QueryRef;
12
import com.knowledgepixels.nanodash.User;
13
import com.knowledgepixels.nanodash.Utils;
14
import com.knowledgepixels.nanodash.component.ItemListElement;
15
import com.knowledgepixels.nanodash.component.ItemListPanel;
16
import com.knowledgepixels.nanodash.component.TitleBar;
17

18
/**
19
 * Page that lists all users and groups.
20
 */
21
public class UserListPage extends NanodashPage {
22

23
    private static final long serialVersionUID = 1L;
24

25
    /**
26
     * The mount path for this page.
27
     */
28
    public static final String MOUNT_PATH = "/userlist";
29

30
    /**
31
     * {@inheritDoc}
32
     */
33
    @Override
34
    public String getMountPath() {
35
        return MOUNT_PATH;
×
36
    }
37

38
    /**
39
     * Constructor for the user list page.
40
     *
41
     * @param parameters the page parameters
42
     */
43
    public UserListPage(final PageParameters parameters) {
44
        super(parameters);
×
45

46
        add(new TitleBar("titlebar", this, "users"));
×
47

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

65
        add(new ItemListPanel<IRI>(
×
66
                "topcreator-users",
67
                "Top Nanopublication Creators Last Month",
68
                new QueryRef("get-top-creators-last30d"),
69
                (apiResponse) -> {
70
                    List<IRI> users = new ArrayList<>();
×
71
                    for (ApiResponseEntry e : apiResponse.getData()) {
×
72
                        users.add(Utils.vf.createIRI(e.get("userid")));
×
73
                    }
×
74
                    return users;
×
75
                },
76
                (userIri) -> {
77
                    return new ItemListElement("item", UserPage.class, new PageParameters().add("id", userIri), User.getShortDisplayName(userIri));
×
78
                }
79
            ));
80

81
        add(new ItemListPanel<IRI>(
×
82
                "topauthor-users",
83
                "Top Authors of Accepted Nanopublications",
84
                new QueryRef("get-top-authors"),
85
                (apiResponse) -> {
86
                    List<IRI> users = new ArrayList<>();
×
87
                    for (ApiResponseEntry e : apiResponse.getData()) {
×
88
                        users.add(Utils.vf.createIRI(e.get("author")));
×
89
                    }
×
90
                    return users;
×
91
                },
92
                (userIri) -> {
93
                    return new ItemListElement("item", UserPage.class, new PageParameters().add("id", userIri), User.getShortDisplayName(userIri));
×
94
                }
95
            ));
96

97
        add(new ItemListPanel<IRI>(
×
98
                "approved-users",
99
                "Approved Users",
100
                User.getUsers(true),
×
101
                (userIri) -> {
102
                    return new ItemListElement("item", UserPage.class, new PageParameters().add("id", userIri), User.getShortDisplayName(userIri));
×
103
                }
104
            ));
105

106
        add(new ItemListPanel<IRI>(
×
107
                "other-users",
108
                "Non-Approved Users",
109
                User.getUsers(false),
×
110
                (userIri) -> {
111
                    return new ItemListElement("item", UserPage.class, new PageParameters().add("id", userIri), User.getShortDisplayName(userIri));
×
112
                }
113
            ));
114

115
        add(new ExternalLink("approve", PublishPage.MOUNT_PATH + "?template=http://purl.org/np/RA6TVVSnZChEwyxjvFDNAujk1i8sSPnQx60ZQjldtiDkw&template-version=latest", "approve somebody else"));
×
116
        //add(new ExternalLink("newgroup", PublishPage.MOUNT_PATH + "?template=http://purl.org/np/RAJz6w5cvlsFGkCDtWOUXt2VwEQ3tVGtPdy3atPj_DUhk&template-version=latest", "new group"));
117
    }
×
118

119
    /**
120
     * {@inheritDoc}
121
     */
122
    @Override
123
    protected boolean hasAutoRefreshEnabled() {
124
        return true;
×
125
    }
126

127
}
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