• 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/page/SpaceListPage.java
1
package com.knowledgepixels.nanodash.page;
2

3
import com.knowledgepixels.nanodash.domain.Project;
4
import com.knowledgepixels.nanodash.QueryApiAccess;
5
import com.knowledgepixels.nanodash.domain.Space;
6
import com.knowledgepixels.nanodash.component.ItemListElement;
7
import com.knowledgepixels.nanodash.component.ItemListPanel;
8
import com.knowledgepixels.nanodash.component.TitleBar;
9
import com.knowledgepixels.nanodash.repository.SpaceRepository;
10
import com.knowledgepixels.nanodash.vocabulary.KPXL_TERMS;
11
import org.apache.wicket.request.mapper.parameter.PageParameters;
12
import org.nanopub.extra.services.QueryRef;
13

14
/**
15
 * A page that lists all available connectors.
16
 */
17
public class SpaceListPage extends NanodashPage {
18

19
    /**
20
     * The mount path for this page.
21
     */
22
    public static final String MOUNT_PATH = "/spaces";
23

24
    /**
25
     * {@inheritDoc}
26
     */
27
    @Override
28
    public String getMountPath() {
29
        return MOUNT_PATH;
×
30
    }
31

32
    /**
33
     * Constructor for the SpaceListPage.
34
     *
35
     * @param parameters the page parameters
36
     */
37
    public SpaceListPage(final PageParameters parameters) {
38
        super(parameters);
×
39

40
        add(new TitleBar("titlebar", this, "connectors"));
×
41

42
        addSpacePanel("Alliance", true);
×
43
        addSpacePanel("Consortium", false);
×
44
        addSpacePanel("Organization", true);
×
45
        addSpacePanel("Taskforce", false);
×
46
        addSpacePanel("Division", true);
×
47
        addSpacePanel("Taskunit", false);
×
48
        addSpacePanel("Group", true);
×
49
        addSpacePanel("Project", false);
×
50
        addSpacePanel("Program", true);
×
51
        addSpacePanel("Initiative", false);
×
52
        addSpacePanel("Outlet", true);
×
53
        addSpacePanel("Campaign", false);
×
54
        addSpacePanel("Community", true);
×
55
        addSpacePanel("Event", false);
×
56

57
        add(new ItemListPanel<Project>(
×
58
                "legacy-projects",
59
                "Legacy Projects",
60
                new QueryRef(QueryApiAccess.GET_PROJECTS),
61
                (apiResponse) -> {
62
                    Project.refresh(apiResponse);
×
63
                    return Project.getProjectList();
×
64
                },
65
                (project) -> {
66
                    return new ItemListElement("item", ProjectPage.class, new PageParameters().set("id", project.getId()), project.getLabel());
×
67
                }
68
        ).setDescription("These legacy project pages will be migrated into the Spaces above:"));
×
69
    }
×
70

71
    private void addSpacePanel(String type, boolean openEnded) {
72
        String typePl = type + "s";
×
73
        typePl = typePl.replaceFirst("ys$", "ies");
×
74

75
        PageParameters newLinkParams = new PageParameters()
×
76
                .set("param_type", KPXL_TERMS.NAMESPACE + type)
×
77
                .set("template-version", "latest")
×
78
                .set("refresh-upon-publish", "spaces")
×
79
                .set("postpub-redirect-url", MOUNT_PATH);
×
80
        if (openEnded) {
×
81
            newLinkParams.set("template", "https://w3id.org/np/RA7dQfmndqKmooQ4PlHyQsAql9i2tg_8GLHf_dqtxsGEQ");
×
82
        } else {
83
            newLinkParams.set("template", "https://w3id.org/np/RAaE7NP9RNIx03AHZxanFMdtUuaTfe50ns5tHhpEVloQ4");
×
84
        }
85

86
        add(new ItemListPanel<Space>(
×
87
                typePl.toLowerCase(),
×
88
                typePl,
89
                new QueryRef(QueryApiAccess.GET_SPACES),
90
                (apiResponse) -> {
91
                    SpaceRepository.get().refresh(apiResponse);
×
92
                    return SpaceRepository.get().findByType(KPXL_TERMS.NAMESPACE + type);
×
93
                },
94
                (space) -> {
95
                    return new ItemListElement("item", SpacePage.class, new PageParameters().set("id", space.getId()), space.getLabel());
×
96
                }
97
        ).addButton("+", PublishPage.class, newLinkParams));
×
98
    }
×
99

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