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

knowledgepixels / nanodash / 18741366223

23 Oct 2025 07:48AM UTC coverage: 12.895% (-0.8%) from 13.69%
18741366223

push

github

tkuhn
feat: Apply new view display method also for Space pages

452 of 4396 branches covered (10.28%)

Branch coverage included in aggregate %.

1174 of 8214 relevant lines covered (14.29%)

0.64 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.User;
18

19
public class ViewList extends Panel {
20

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

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

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

54
        });
55

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

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

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

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

92
        });
93

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

97

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