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

knowledgepixels / nanodash / 22618039211

03 Mar 2026 10:05AM UTC coverage: 16.058% (+0.2%) from 15.884%
22618039211

Pull #365

github

web-flow
Merge 1e7e700f0 into a8c4b4a77
Pull Request #365: Refactor of `ResourceWithProfile` and related classes

699 of 5287 branches covered (13.22%)

Branch coverage included in aggregate %.

1721 of 9783 relevant lines covered (17.59%)

2.41 hits per line

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

0.0
src/main/java/com/knowledgepixels/nanodash/component/SpaceUserList.java
1
package com.knowledgepixels.nanodash.component;
2

3
import com.knowledgepixels.nanodash.*;
4
import com.knowledgepixels.nanodash.domain.Space;
5
import com.knowledgepixels.nanodash.domain.User;
6
import com.knowledgepixels.nanodash.page.PublishPage;
7
import com.knowledgepixels.nanodash.page.UserPage;
8
import org.apache.commons.lang3.tuple.Pair;
9
import org.apache.wicket.markup.html.panel.Panel;
10
import org.apache.wicket.markup.repeater.Item;
11
import org.apache.wicket.markup.repeater.data.DataView;
12
import org.apache.wicket.markup.repeater.data.ListDataProvider;
13
import org.apache.wicket.request.mapper.parameter.PageParameters;
14
import org.eclipse.rdf4j.model.IRI;
15

16
import java.util.ArrayList;
17
import java.util.List;
18

19
public class SpaceUserList extends Panel {
20

21
    public SpaceUserList(String markupId, Space space) {
22
        super(markupId);
×
23

24
        List<Pair<SpaceMemberRole, List<Pair<IRI, String>>>> userLists = new ArrayList<>();
×
25
        for (SpaceMemberRoleRef r : space.getRoles()) {
×
26
            // list of pairs of userId + nanopubId:
27
            List<Pair<IRI, String>> userList = new ArrayList<>();
×
28
            for (IRI userId : space.getUsers()) {
×
29
                for (SpaceMemberRoleRef p : space.getMemberRoles(userId)) {
×
30
                    if (p.getRole().equals(r.getRole())) {
×
31
                        userList.add(Pair.of(userId, p.getNanopubUri()));
×
32
                        break;
×
33
                    }
34
                }
×
35
            }
×
36
            userLists.add(Pair.of(r.getRole(), userList));
×
37
        }
×
38

39
        add(new DataView<Pair<SpaceMemberRole, List<Pair<IRI, String>>>>("user-lists", new ListDataProvider<>(userLists)) {
×
40
            @Override
41
            protected void populateItem(Item<Pair<SpaceMemberRole, List<Pair<IRI, String>>>> item) {
42
                SpaceMemberRole role = item.getModelObject().getLeft();
×
43
                ItemListPanel<Pair<IRI, String>> panel = new ItemListPanel<>(
×
44
                        "user-list",
45
                        role.getTitle(),
×
46
                        item.getModelObject().getRight(),
×
47
                        // FIXME add the source nanopublication
48
                        m -> new ItemListElement("item", UserPage.class, new PageParameters().add("id", m.getLeft()), User.getShortDisplayName(m.getLeft()), null, Utils.getAsNanopub(m.getRight()))).setProfiledResource(space);
×
49
                if (role.getRoleAssignmentTemplate() != null) {
×
50
                    if (!role.isAdminRole() || SpaceMemberRole.isCurrentUserAdmin(space)) {
×
51
                        panel.addButton("+", PublishPage.class, new PageParameters()
×
52
                                .set("template", role.getRoleAssignmentTemplate().getId())
×
53
                                .set("param_space", space.getId())
×
54
                                .set("refresh-upon-publish", space.getId())
×
55
                                .set("template-version", "latest")
×
56
                        );
57
                    }
58
                }
59
                item.add(panel);
×
60
            }
×
61
        });
62
    }
×
63

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