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

knowledgepixels / nanodash / 18713878426

22 Oct 2025 10:55AM UTC coverage: 13.858% (+0.7%) from 13.113%
18713878426

push

github

tkuhn
feat: Basic support for maintained resources + pages (not yet linked)

482 of 4366 branches covered (11.04%)

Branch coverage included in aggregate %.

1254 of 8161 relevant lines covered (15.37%)

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/component/ViewList.java
1
package com.knowledgepixels.nanodash.component;
2

3
import org.apache.wicket.markup.html.WebMarkupContainer;
4
import org.apache.wicket.markup.html.basic.Label;
5
import org.apache.wicket.markup.html.panel.Panel;
6
import org.apache.wicket.markup.repeater.Item;
7
import org.apache.wicket.markup.repeater.data.DataView;
8
import org.apache.wicket.markup.repeater.data.ListDataProvider;
9
import org.eclipse.rdf4j.model.IRI;
10
import org.nanopub.extra.services.QueryRef;
11

12
import com.google.common.collect.ArrayListMultimap;
13
import com.google.common.collect.Multimap;
14
import com.knowledgepixels.nanodash.MaintainedResource;
15
import com.knowledgepixels.nanodash.ResourceView;
16
import com.knowledgepixels.nanodash.Space;
17
import com.knowledgepixels.nanodash.SpaceQueryView;
18
import com.knowledgepixels.nanodash.User;
19

20
public class ViewList extends Panel {
21

22
    public ViewList(String markupId, Space space) {
23
        super(markupId);
×
24

25
        add(new DataView<SpaceQueryView>("views", new ListDataProvider<SpaceQueryView>(space.getViews())) {
×
26

27
            @Override
28
            protected void populateItem(Item<SpaceQueryView> item) {
29
                SpaceQueryView view = item.getModelObject();
×
30
                Multimap<String, String> queryRefParams = ArrayListMultimap.create();
×
31
                for (String p : view.getQuery().getPlaceholdersList()) {
×
32
                    String paramName = QueryParamField.getParamName(p);
×
33
                    if (paramName.equals("space")) {
×
34
                        queryRefParams.put("space", space.getId());
×
35
                        if (QueryParamField.isMultiPlaceholder(p)) {
×
36
                            for (String altId : space.getAltIDs()) {
×
37
                                queryRefParams.put("space", altId);
×
38
                            }
×
39
                        }
40
                    } else if (paramName.equals("user_pubkey") && QueryParamField.isMultiPlaceholder(p)) {
×
41
                        for (IRI userId : space.getUsers()) {
×
42
                            for (String memberHash : User.getUserData().getPubkeyhashes(userId, true)) {
×
43
                                queryRefParams.put("user_pubkey", memberHash);
×
44
                            }
×
45
                        }
×
46
                    } else if (!QueryParamField.isOptional(p)) {
×
47
                        item.add(new Label("view", "<span class=\"negative\">Error: Query has non-optional parameter.</span>").setEscapeModelStrings(false));
×
48
                        return;
×
49
                    }
50
                }
×
51
                QueryRef queryRef = new QueryRef(view.getQuery().getQueryId(), queryRefParams);
×
52
                item.add(QueryResultTable.createComponent("view", queryRef, view.getTitle(), 10));
×
53
            }
×
54

55
        });
56

57
        add(new WebMarkupContainer("emptynotice").setVisible(space.getViews().isEmpty()));
×
58
    }
×
59

60
    public ViewList(String markupId, MaintainedResource resource) {
61
        super(markupId);
×
62

63
        add(new DataView<ResourceView>("views", new ListDataProvider<ResourceView>(resource.getViews())) {
×
64

65
            @Override
66
            protected void populateItem(Item<ResourceView> item) {
67
                ResourceView view = item.getModelObject();
×
68
                Multimap<String, String> queryRefParams = ArrayListMultimap.create();
×
69
                for (String p : view.getQuery().getPlaceholdersList()) {
×
70
                    String paramName = QueryParamField.getParamName(p);
×
71
                    if (paramName.equals(view.getQueryField())) {
×
72
                        queryRefParams.put(view.getQueryField(), resource.getId());
×
73
//                        if (QueryParamField.isMultiPlaceholder(p)) {
74
//                            for (String altId : resource.getAltIDs()) {
75
//                                queryRefParams.put("space", altId);
76
//                            }
77
//                        }
78
//                    } else if (paramName.equals("user_pubkey") && QueryParamField.isMultiPlaceholder(p)) {
79
//                        for (IRI userId : resource.getSpace().getUsers()) {
80
//                            for (String memberHash : User.getUserData().getPubkeyhashes(userId, true)) {
81
//                                queryRefParams.put("user_pubkey", memberHash);
82
//                            }
83
//                        }
84
                    } else if (!QueryParamField.isOptional(p)) {
×
85
                        item.add(new Label("view", "<span class=\"negative\">Error: Query has non-optional parameter.</span>").setEscapeModelStrings(false));
×
86
                        return;
×
87
                    }
88
                }
×
89
                QueryRef queryRef = new QueryRef(view.getQuery().getQueryId(), queryRefParams);
×
90
                item.add(QueryResultTable.createComponent("view", queryRef, view.getTitle(), 10));
×
91
            }
×
92

93
        });
94

95
        add(new WebMarkupContainer("emptynotice").setVisible(resource.getViews().isEmpty()));
×
96
    }
×
97

98

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