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

knowledgepixels / nanodash / 23441640250

23 Mar 2026 02:10PM UTC coverage: 16.351% (-0.01%) from 16.361%
23441640250

push

github

tkuhn
feat: refresh cache and redirect to new space/resource after publish

When creating spaces, subspaces, or maintained resources, the cache is now
properly refreshed and the user is redirected to the newly created entity's
page instead of back to the parent or list page.

- SpaceExploreMenu: use space ID as refresh target (refreshes parent space
  data + repositories) and set redirect to the new entity's page
- WicketApplication: also refresh MaintainedResourceRepository when the
  refresh target is a Space
- ExplorePage: use the introduced IRI from the published nanopub as the
  redirect ID, so the redirect goes to the new space/resource page
- SpaceListPage: redirect to the new space's page instead of /spaces
- PublishForm: skip context-based redirect when postpub-redirect-url is
  set, so the redirect URL takes priority

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

746 of 5627 branches covered (13.26%)

Branch coverage included in aggregate %.

1894 of 10519 relevant lines covered (18.01%)

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

3
import com.knowledgepixels.nanodash.SpaceMemberRole;
4
import com.knowledgepixels.nanodash.domain.Space;
5
import com.knowledgepixels.nanodash.page.ExplorePage;
6
import com.knowledgepixels.nanodash.page.MaintainedResourcePage;
7
import com.knowledgepixels.nanodash.page.PublishPage;
8
import com.knowledgepixels.nanodash.page.SpacePage;
9
import org.apache.wicket.markup.html.link.BookmarkablePageLink;
10
import org.apache.wicket.request.mapper.parameter.PageParameters;
11
import org.eclipse.rdf4j.model.IRI;
12

13
public class SpaceExploreMenu extends BaseDisplayMenu {
14

15
    public SpaceExploreMenu(String id, String exploreUri, String exploreLabel, IRI sourceUri, Space space) {
16
        super(id);
×
17

18
        addEntry("explore", new BookmarkablePageLink<Void>("explore", ExplorePage.class,
×
19
                new PageParameters().set("id", exploreUri).set("label", exploreLabel)));
×
20
        addEntry("viewDeclaration", new BookmarkablePageLink<Void>("viewDeclaration", ExplorePage.class,
×
21
                new PageParameters().set("id", sourceUri)));
×
22

23
        boolean isAdmin = SpaceMemberRole.isCurrentUserAdmin(space);
×
24

25
        String spacePrefix = space.getId().replaceFirst("https://w3id.org/spaces/", "") + "/<SET-SUFFIX>";
×
26

27
        BookmarkablePageLink<Void> addResource = new BookmarkablePageLink<>("addMaintainedResource", PublishPage.class,
×
28
                new PageParameters()
29
                        .set("template", "https://w3id.org/np/RA25VaVFxSOgKEuZ70gFINn-N3QV4Pf62-IMK_SWkg-c8")
×
30
                        .set("param_space", space.getId())
×
31
                        .set("context", space.getId())
×
32
                        .set("refresh-upon-publish", space.getId())
×
33
                        .set("postpub-redirect-url", MaintainedResourcePage.MOUNT_PATH)
×
34
                        .set("template-version", "latest"));
×
35
        addResource.setVisible(isAdmin);
×
36
        addEntry("addMaintainedResource", addResource);
×
37

38
        BookmarkablePageLink<Void> addTimeLimited = new BookmarkablePageLink<>("addTimeLimitedSpace", PublishPage.class,
×
39
                new PageParameters()
40
                        .set("template", "https://w3id.org/np/RAaE7NP9RNIx03AHZxanFMdtUuaTfe50ns5tHhpEVloQ4")
×
41
                        .set("param_space", spacePrefix)
×
42
                        .set("context", space.getId())
×
43
                        .set("refresh-upon-publish", space.getId())
×
44
                        .set("postpub-redirect-url", SpacePage.MOUNT_PATH)
×
45
                        .set("template-version", "latest"));
×
46
        addTimeLimited.setVisible(isAdmin);
×
47
        addEntry("addTimeLimitedSpace", addTimeLimited);
×
48

49
        BookmarkablePageLink<Void> addOpenEnded = new BookmarkablePageLink<>("addOpenEndedSpace", PublishPage.class,
×
50
                new PageParameters()
51
                        .set("template", "https://w3id.org/np/RA7dQfmndqKmooQ4PlHyQsAql9i2tg_8GLHf_dqtxsGEQ")
×
52
                        .set("param_space", spacePrefix)
×
53
                        .set("context", space.getId())
×
54
                        .set("refresh-upon-publish", space.getId())
×
55
                        .set("postpub-redirect-url", SpacePage.MOUNT_PATH)
×
56
                        .set("template-version", "latest"));
×
57
        addOpenEnded.setVisible(isAdmin);
×
58
        addEntry("addOpenEndedSpace", addOpenEnded);
×
59
    }
×
60

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