Hello,
I am working on a custom blueprint that should force the users to add labels to their page, before saving the page. The approach for this that I took is that when the user tries to save the blank page thats created by the blueprint, the code below listening for the PageCreateEvent and its during this time that I am currently trying to add an hardcoded label. But as of now I am not sure why the label is not getting added to the page. I do see those sysouts on the console but am clueless why the label is not getting added to the page. Please help.
public class PageCreatedListener implements DisposableBean {
protected EventPublisher eventPublisher;
private final LabelManager labelManager;
private final PageManager pageManager;
private final Logger log;
public PageCreatedListener(EventPublisher eventPublisher, LabelManager labelManager, PageManager pageManager) {
this.eventPublisher = eventPublisher;
eventPublisher.register(this);
this.labelManager = labelManager;
this.pageManager = pageManager;
log = LoggerFactory.getLogger(PageCreatedListener.class);
}
@EventListener
public void pageCreateFromTemplateEvent(PageCreateEvent event) {
Page page= pageManager.getPage(event.getPage().getId());
System.out.println("PAGE ID " + page.getId());
labelManager.addLabel((Labelable) page, new Label("timesheet"));
System.out.println("LABEL 1 ADDED");
labelManager.addLabel((Labelable) page, new Label("timesheettwo"));
System.out.println("LABEL 2 ADDED");
}
@Override
public void destroy() throws Exception {
eventPublisher.unregister(this);
}
}
To add a label to a page, try to use the LabelUtil.addLabel("label", labelManager, page)- method.
This works fine for me:
for(String i : labels)LabelUtil.addLabel(i, labelManager, event.getPage());
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.