It's not the same without you

Join the community to find out what other Atlassian users are discussing, debating and creating.

Atlassian Community Hero Image Collage

Conveyed viewpage.action shows "View Page" button instead of "Edit" button in the upper right corner of a page

When conveying "viewpage.action" everything works as expected, besides when viewing a page now I no longer get the "Edit" button in the upper right corner, but instead a "View Page" button only. I noticed in page.vm and page.vmd files that a "mode" decides what is rendered there, but couldn't figure out why it changed due to my conveyed action.

The conveyor-config.xml contains the following:

<conveyor-config>
    <package-override name="pages" namespace="/pages">
        <action-override name="viewpage" class="my.package.actions.ViewPageOverrideAction" inherit="true">
        </action-override> 
    </package-override>
</conveyor-config>

My ViewPageOverrideAction only adds text to the content of the page:

@Override
    public String execute() throws Exception {
        return super.execute();
    }

    @Override
    @HtmlSafe
    public String getPageXHtmlContent() {
        String pageXHtmlContent = super.getPageXHtmlContent();
        return pageXHtmlContent + "I was added";
    }

Why is it that I get the "View Page" button instead of the "Edit" button. How can I fix it? Any help would be appreciated.

2 answers

1 accepted

0 votes
Answer accepted

Problem was that a method in ViewPageAction checks for the ViewPageClass.class. Solution is to override that method and exchange the class.

@Override
    public WebInterfaceContext getWebInterfaceContext() {
        DefaultWebInterfaceContext result = new DefaultWebInterfaceContext(super.getWebInterfaceContext());
        List<Label> labels = getPage() == null ? Collections.<Label> emptyList() : getPage().getLabelsForDisplay(
                getRemoteUser());
        result.setParameter("labels", labels);
        if (getClass().equals(ViewPageOverrideAction.class))
            result.setParameter(ViewingContentCondition.CONTEXT_KEY, Boolean.TRUE);
        return result;
    }

Problem was that the WebInterfaceContext checks for the ViewPageAction.class. Overriding the following method and entering the ViewPageOverrideAction.class solves the problem.

Suggest an answer

Log in or Sign up to answer
TAGS
Community showcase
Published in Jira Align

Best Practices in Jira Align

Hello Jira Align customers! In order to better serve you on your journey with Jira Align, the Community team has worked with the Jira Align team to curate the content in this collection to better s...

44 views 0 2
Read article

Community Events

Connect with like-minded Atlassian users at free events near you!

Find an event

Connect with like-minded Atlassian users at free events near you!

Unfortunately there are no Community Events near you at the moment.

Host an event

You're one step closer to meeting fellow Atlassian users at your local event. Learn more about Community Events

Events near you