public Page getPage() { return getPageInstance().getPage(); }
public Page getPage() { return getPageInstance().getPage(); }
/** * Returns the layout that drives the display of the embedded children of this page. * If this page instance has parameters, the detail layout is returned; else, the regular layout is returned. * @return the layout. */ public Layout getLayout() { if(getParameters().isEmpty()) { return getPage().getLayout(); } else { return getPage().getDetailLayout(); } }
/** * Sets the layout that drives the display of the embedded children of this page. * If this page instance has parameters, the detail layout is set; else, the regular layout is set. * @param layout the new layout. */ public void setLayout(Layout layout) { if(getParameters().isEmpty()) { getPage().setLayout(layout); } else { getPage().setDetailLayout(layout); } }
/** * Returns a description of this PageAction. * @since 4.2.1 * @return the page's description as JSON. */ @Path(":page") @GET @Produces(MimeTypes.APPLICATION_JSON_UTF8) public Map<String, Object> getPageDescription() { Map<String, Object> description = new HashMap<String, Object>(); description.put("javaClass", pageInstance.getActionClass().getSuperclass().getName()); description.put("groovyClass", pageInstance.getActionClass().getName()); description.put("page", pageInstance.getPage()); return description; } }
/** * Persists a page to the file system. * @param pageInstance the live PageInstance containing the Page to save. * @return the file where the page was saved. * @throws Exception in case the save fails. */ public static File savePage(PageInstance pageInstance) throws Exception { return savePage(pageInstance.getDirectory(), pageInstance.getPage()); }
protected void prepareScript() { String pageId = pageInstance.getPage().getId(); File file = ScriptingUtil.getGroovyScriptFile(pageInstance.getDirectory(), "action"); FileReader fr = null; try { fr = new FileReader(file); script = IOUtils.toString(fr); } catch (Exception e) { logger.warn("Couldn't load script for page " + pageId, e); } finally { IOUtils.closeQuietly(fr); } }
public int getClosestSubtreeRootIndex() { PageInstance[] path = getPageInstancePath(); for(int i = path.length - 1; i > 0; i--) { if(path[i].getPage().getActualNavigationRoot() != NavigationRoot.INHERIT) { return i; } } return 0; }
public static Permissions calculateActualPermissions(PageInstance instance) { List<Page> pages = new ArrayList<Page>(); while (instance != null) { pages.add(0, instance.getPage()); instance = instance.getParent(); } return calculateActualPermissions(new Permissions(), pages); }
@Button(list = "pageHeaderButtons", titleKey = "edit", order = 2, icon = Button.ICON_EDIT, group = "pageHeaderButtons") @RequiresPermissions(level = AccessLevel.VIEW, permissions = { PERMISSION_EDIT }) @RequiresAuthentication public Resolution configure() { title = pageInstance.getPage().getTitle(); description = pageInstance.getPage().getDescription(); try { loadContent(); logger.debug("Edit content: {}", textFile.getAbsolutePath()); } catch (IOException e) { logger.error("Could not load content", e); SessionMessages.addErrorMessage("Could not load content: " + e); } return new ForwardResolution("/m/pageactions/text/edit-content.jsp"); }
protected void updatePagePermissions(PageInstance page) throws Exception { Permissions pagePermissions = page.getPage().getPermissions(); pagePermissions.getGroups().clear(); Map<String, Group> groups = new HashMap<String, Group>(); for(Map.Entry<String, String> entry : accessLevels.entrySet()) { Group group = new Group(); group.setName(entry.getKey()); group.setAccessLevel(entry.getValue()); groups.put(group.getName(), group); } for(Map.Entry<String, List<String>> custPerm : permissions.entrySet()) { String groupId = custPerm.getKey(); Group group = groups.get(groupId); if(group == null) { group = new Group(); group.setName(groupId); groups.put(groupId, group); } group.getPermissions().addAll(custPerm.getValue()); } for(Group group : groups.values()) { pagePermissions.getGroups().add(group); } DispatcherLogic.savePage(page); }
PageInstance current = dispatch.getPageInstancePath()[i]; sb.append("/"); Page page = current.getPage(); sb.append(current.getName()); BreadcrumbItem item = new BreadcrumbItem( sb.toString(), current.getPage().getTitle(), current.getPage().getDescription()); if(page.getActualNavigationRoot() != NavigationRoot.GHOST_ROOT) { items.add(item);
SessionMessages.addErrorMessage(msg); } catch (Exception e) { String pageId = pageInstance.getPage().getId(); logger.warn("Couldn't compile script for page " + pageId, e); SessionMessages.addErrorMessage(ElementsThreadLocals.getText("couldnt.compile.script"));
if(pageName.equals(it.next().getName())) { it.remove(); DispatcherLogic.savePage(parentPageInstance.getDirectory(), parentPageInstance.getPage()); break;
EditPage edit = new EditPage(); pageConfigurationForm.writeToObject(edit); Page page = pageInstance.getPage(); page.setTitle(edit.title); page.setDescription(edit.description);
Page rootPage = rootPageInstance.getPage(); boolean rootGhost = rootPage.getActualNavigationRoot() == NavigationRoot.GHOST_ROOT; rootNavigationItem = new NavigationItem( PageInstance[] allInstances = dispatch.getPageInstancePath(); for(int i = 0; i <= rootPageIndex; i++) { pages.add(allInstances[i].getPage()); pages.add(next.getPage());
newParent = new PageInstance(newParent.getParent(), newParent.getDirectory(), oldParent.getPage(), null); newParent.getParameters().addAll(params); DispatcherLogic.savePage(oldParent.getDirectory(), oldParent.getPage()); logger.debug("Moving directory"); FileUtils.moveDirectory(pageInstance.getDirectory(), newDirectory); DispatcherLogic.savePage(newParent.getDirectory(), newParent.getPage()); } catch (Exception e) { logger.error("Couldn't copy/move page", e);
@Button(list = "edit-content", key = "update", order = 1, type = Button.TYPE_PRIMARY) @RequiresPermissions(level = AccessLevel.VIEW, permissions = { PERMISSION_EDIT }) public Resolution updateContent() { title = context.getRequest().getParameter("title"); title = StringUtils.trimToNull(title); if (title == null) { SessionMessages.addErrorMessage(ElementsThreadLocals.getText("title.cannot.be.empty")); return new ForwardResolution("/m/pageactions/text/edit-content.jsp"); } description = context.getRequest().getParameter("description"); description = StringUtils.trimToNull(description); Page page = pageInstance.getPage(); page.setTitle(title); page.setDescription(description); try { DispatcherLogic.savePage(pageInstance.getDirectory(), page); saveContent(); SessionMessages.addInfoMessage(ElementsThreadLocals.getText("object.updated.successfully")); } catch (Exception e) { logger.error("Could not save content for page " + pageInstance.getPath(), e); SessionMessages.addInfoMessage(ElementsThreadLocals.getText("update.failed")); } return cancel(); }
case CHILD: parentPageInstance = getPageInstance(); parentPage = parentPageInstance.getPage(); parentLayout = parentPageInstance.getLayout(); parentDirectory = parentPageInstance.getDirectory(); case SIBLING: parentPageInstance = dispatch.getPageInstance(-2); parentPage = parentPageInstance.getPage(); parentLayout = parentPageInstance.getLayout(); parentDirectory = parentPageInstance.getDirectory();
/** * Sets up the Elements form(s) */ protected void prepareConfigurationForms() { Page page = pageInstance.getPage(); PageInstance parent = pageInstance.getParent(); assert parent != null; FormBuilder formBuilder = new FormBuilder(EditPage.class) .configPrefix(CONF_FORM_PREFIX) .configFields(PageActionLogic.supportsDetail(getClass()) ? PAGE_CONFIGURATION_FIELDS : PAGE_CONFIGURATION_FIELDS_NO_DETAIL) .configFieldSetNames("Page"); SelectionProvider layoutSelectionProvider = createTemplateSelectionProvider(); formBuilder.configSelectionProvider(layoutSelectionProvider, "template"); SelectionProvider detailLayoutSelectionProvider = createTemplateSelectionProvider(); formBuilder.configSelectionProvider(detailLayoutSelectionProvider, "detailTemplate"); pageConfigurationForm = formBuilder.build(); EditPage edit = new EditPage(); edit.id = page.getId(); edit.title = page.getTitle(); edit.description = page.getDescription(); edit.template = page.getLayout().getTemplate(); edit.detailTemplate = page.getDetailLayout().getTemplate(); pageConfigurationForm.readFromObject(edit); if(script == null) { prepareScript(); } }