private void updateProperties(Page source, JpaPage converted) { replacePageReferences(source, converted); converted.setId(source.getId()); converted.setMembers(source.getMembers()); converted.setName(source.getName()); converted.setOwnerId(source.getOwnerId()); converted.setContextId(source.getContextId()); converted.setPageLayout(source.getPageLayout()); converted.setPageType(source.getPageType()); converted.setParentPage(source.getParentPage()); converted.setRegions(source.getRegions()); converted.setSubPages(source.getSubPages()); converted.setProperties(source.getProperties()); }
private static void modifyForExport(Page page) { page.setOwnerId(null); for(Region r : page.getRegions()){ modifyForExport(r); } }
private boolean isDefaultSubPage(Page subPage) { return subPage.getParentPage().getSubPages().get(0).getId().equals(subPage.getId()); } }
@Override public JpaPage convert(Page source) { //Enforce consistent casing for page types if (source != null) { source.setPageType(source.getPageType() == null ? null : source.getPageType().toUpperCase()); return source instanceof JpaPage ? (JpaPage) source : createEntity(source); } return null; }
long renderSequence = (parentPage.getSubPages() != null) ? parentPage.getSubPages().size() + 1 : 1; Page page = new PageImpl(); page.setName(pageName); page.setOwnerId(user.getId()); page.setPageLayout(pageLayout); page.setRegions(regions); page.setPageType(PageType.SUB_PAGE.toString()); PageUser pageUser = new PageUserImpl(page.getOwnerId(), page, renderSequence); pageUser.setPageStatus(PageInvitationStatus.OWNER); List<PageUser> members = new ArrayList<PageUser>(); members.add(pageUser); page.setMembers(members); page.setParentPage(parentPage); if (parentPage.getSubPages() != null){ parentsSubPages = parentPage.getSubPages(); parentPage.setSubPages(parentsSubPages); pageRepository.save(page);
public Page(org.apache.rave.model.Page source) { this.id = source.getId(); this.name = source.getName(); this.ownerId = source.getOwnerId(); this.pageType = source.getPageType().toString(); this.pageLayoutCode = source.getPageLayout().getCode(); this.properties = source.getProperties(); this.subPages = createSubPages(source); this.regions = createRegions(source); this.members = createPageUsers(source); }
@Transactional public Boolean clonePageForUser(String pageId, String userId, String pageName) { Page page = getPage(pageId); if(pageName == null || pageName.equals("null")){ // try to use the original page name if none supplied pageName = page.getName(); } Page clonedPage = addNewUserPage(userService.getUserById(userId), pageName, page.getPageLayout().getCode()); // populate all the widgets in cloned page from original for(int i=0; i<page.getRegions().size(); i++){ for(int j=0; j<page.getRegions().get(i).getRegionWidgets().size(); j++){ String widgetId = page.getRegions().get(i).getRegionWidgets().get(j).getWidgetId(); addWidgetToPageRegion(clonedPage.getId(), widgetId, clonedPage.getRegions().get(i).getId()); } } clonedPage = getFromRepository(clonedPage.getId(), pageRepository); // newly created page - so only one pageUser PageUser pageUser = clonedPage.getMembers().get(0); // update status to pending pageUser.setPageStatus(PageInvitationStatus.PENDING); if(pageRepository.save(clonedPage) != null){ return Boolean.TRUE; }else{ return Boolean.FALSE; } }
/** * Converts a PageTemplate to an instance of a Page * * @param template template * @param owner owner of the new page * @param createIds optionally set a negative ID as a relative reference * @return */ public static Page convert(PageTemplate template, User owner, boolean createIds) { Page p = new PageImpl(); if(createIds) { p.setId(String.valueOf(-1L)); } p.setName(template.getName()); p.setPageType(template.getPageType()); p.setOwnerId(owner.getId()); PageUser pageUser = new PageUserImpl(owner.getId(), p, template.getRenderSequence()); pageUser.setPageStatus(PageInvitationStatus.OWNER); pageUser.setEditor(true); List<PageUser> members = new ArrayList<PageUser>(); members.add(pageUser); p.setMembers(members); p.setPageLayout(template.getPageLayout()); p.setRegions(convertRegions(template.getPageTemplateRegions(), p, createIds)); p.setSubPages(convertPages(template.getSubPageTemplates(), p, createIds)); return p; }
page.setName(pageName); page.setOwnerId(user.getId()); page.setPageLayout(pageLayout); PageUser pageUser = new PageUserImpl(page.getOwnerId(), page, renderSequence); pageUser.setPageStatus(PageInvitationStatus.OWNER); pageUser.setEditor(true); page.setMembers(members); page.setRegions(regions); page.setPageType(PageType.USER.toString()); return pageRepository.save(page);
@RequestMapping(value = "/page/view/{pageId}", method = RequestMethod.GET) public String view(@PathVariable String pageId, Model model, HttpServletRequest request) { try { List<Page> pages = getAllPagesForAuthenticatedUser(); Page page = pageService.getPageFromList(pageId, pages); PageUser currentPageUser = null; User thisUser = userService.getAuthenticatedUser(); for(PageUser pageUser : page.getMembers()){ if(pageUser.getUserId().equals(thisUser.getId())){ currentPageUser = pageUser; } } List<PageLayout> pageLayouts = pageLayoutService.getAllUserSelectable(); addAttributesToModel(model, page, currentPageUser, pages, pageLayouts); String view = ControllerUtils.getDeviceAppropriateView(request, ViewNames.getPageView(page.getPageLayout().getCode()), ViewNames.MOBILE_HOME); ControllerUtils.addNavItemsToModel(view, model, page.getId(), thisUser, currentPageUser.isEditor()); return view; } catch (Exception e) { logger.info("unable to get page - possibly because a shared page was revoked by its owner"); } // Page could not be found or a shared page was removed, in which case return to default view return viewDefault(model, request); }
private void updatePage(Map<String, User> usersByOriginalId, Map<String, Widget> widgetsById, Page page) { for (Region region : page.getRegions()) { region.setPage(page); setIdViaReflection(region, null); for (RegionWidget widget : region.getRegionWidgets()) { widget.setRegion(region); Widget fromDb = widgetsById.get(widget.getId()); if (fromDb != null) { widget.setWidgetId(fromDb.getId()); } setIdViaReflection(widget, null); } } for (PageUser user : page.getMembers()) { user.setPage(page); setIdViaReflection(user, null); User fromDb = usersByOriginalId.get(user.getUserId()); if (fromDb != null) { user.setUserId(fromDb.getId()); } } User user = usersByOriginalId.get(page.getOwnerId()); page.setOwnerId(user.getId()); }
trustedPage = page; } else { trustedPage = getTrustedPage(page.getId(), trustedPageContainer); if (trustedPage.getMembers() == null){ return false; List<PageUser> members = trustedPage.getMembers(); if (members != null) { for (PageUser pageUser : members){ if (userRepository.get(pageUser.getUserId()).getUsername().equals(viewer)){ log.info("User "+viewer+" is a member of page "+trustedPage.getId()); if(checkEditorStatus){ log.info("checking editor:"+trustedPage.getId()+"@"+viewer+"@"+pageUser.isEditor()); return pageUser.isEditor(); log.info("User "+viewer+" is NOT a member of page "+trustedPage.getId()); return false;
@Override public int compare(Page o1, Page o2) { if (o1 == null || o1.getMembers() == null || o1.getMembers().isEmpty()) { return 1; } if (o2 == null || o2.getMembers() == null || o2.getMembers().isEmpty()) { return -1; } Long o1RenderSequence = null; Long o2RenderSequence = null; // find the PageUser object representing the sub page owned by the user for (PageUser pageUser : o1.getMembers()) { if (pageUser.getUserId().equals(o1.getOwnerId())) { o1RenderSequence = pageUser.getRenderSequence(); break; } } // find the PageUser object representing the sub page owned by the user for (PageUser pageUser : o2.getMembers()) { if (pageUser.getUserId().equals(o2.getOwnerId())) { o2RenderSequence = pageUser.getRenderSequence(); break; } } // compare the renderSequences of these two PageUser objects to determine the sort order return o1RenderSequence.compareTo(o2RenderSequence); } }
public void buildModel(Page page, String omdlUrl, String wookieUrl) { this.wookieUrl = wookieUrl; OmdlWidget omdlWidget = null; this.status = new Status(OmdlModelUtils.getDate(), DEFAULT_STATUS); this.page = page; this.identifier = omdlUrl; this.title = page.getName(); this.description = DEFAULT_DESCRIPTION; this.creator = getCreator(page); this.date = OmdlModelUtils.getDate(); this.layout = OmdlModelUtils.getOmdlLayoutForExport(page.getPageLayout().getCode()); widgetsList = new ArrayList<OmdlWidget>(); for(int i=0;i<page.getRegions().size(); i++){ for(int j=0;j<page.getRegions().get(i).getRegionWidgets().size();j++){ Widget widget = widgetService.getWidget(page.getRegions().get(i).getRegionWidgets().get(j).getWidgetId()); omdlWidget = new OmdlWidget(); omdlWidget.setUrl(widget.getUrl()); omdlWidget.setLink(createLinkElement(widget.getType(), widget.getUrl())); // figure out what positioning to use for this widget String position = OmdlModelUtils.getPositionString(i+1, page.getRegions().size(), j+1, page.getRegions().get(i).getRegionWidgets().size()); if(position != null && position !=""){ omdlWidget.setPosition(position); } omdlWidget.setWidgetType(UNKNOWN_VALUE); widgetsList.add(omdlWidget); } } }
boolean isDefault = false; Page page = item.getRegion().getPage(); if (page.getParentPage() != null) { pageId = "'" + page.getId() + "'"; pageName = page.getName();
@Override public String toString() { return "RegionImpl{" + "id=" + id + ", page=" + ((page == null) ? null : page.getId()) + ", locked=" + locked + ", renderOrder=" + renderOrder + '}'; } }
private boolean isPageOwner(Authentication authentication, Page page, List<Page> trustedPageContainer, boolean trustedDomainObject) { Page trustedPage = null; if (trustedDomainObject) { trustedPage = page; } else { trustedPage = getTrustedPage(page.getId(), trustedPageContainer); } return isPageOwnerByUserId(authentication, trustedPage.getOwnerId()); }
private void replacePageReferences(Page source, JpaPage converted) { if (source.getMembers() != null) { for (PageUser user : source.getMembers()) { user.setPage(converted); } } } }
private List<Region> createRegions(org.apache.rave.model.Page source) { List<Region> created = null; List<org.apache.rave.model.Region> regions = source.getRegions(); if(regions != null) { created = new ArrayList<Region>(); for(org.apache.rave.model.Region region : regions) { created.add(new Region(region)); } } return created; }
@Override @Transactional public Page updatePage(String pageId, String name, String pageLayoutCode, Map<String, Object> properties) { Page page = pageRepository.get(pageId); PageLayout newLayout = pageLayoutRepository.getByPageLayoutCode(pageLayoutCode); PageLayout curLayout = page.getPageLayout(); //if the region lengths of the layouts do not match then adjust the new layout if (isLayoutAdjustmentNeeded(newLayout, curLayout)) { //if the new layout has fewer regions than the previous layout the widgets from the //deleted regions need to be appended to the last valid region in the new layout if (curLayout.getNumberOfRegions() > newLayout.getNumberOfRegions()) { reduceRegionsForPage(page, newLayout.getNumberOfRegions()); } //otherwise the new layout has more regions that the previous layout and //new regions need to be added to the page else { long numberOfNewRegionsToAdd = newLayout.getNumberOfRegions() - curLayout.getNumberOfRegions(); createAdditionalRegionsForPage(page, numberOfNewRegionsToAdd); } } //save the new page properties page.setName(name); page.setPageLayout(newLayout); //Forces callers to send an empty map rather than a null value to clear properties if(properties != null) { page.setProperties(properties); } return pageRepository.save(page); }