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.
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.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.