/** * Computes new last read post on the page based on the topic size and * current pagination settings. * * @param user user to calculate post for * @param topic topic to calculate post for * @param pageNum page number co calculate last post seen by the user * @return last post on the page */ private Post calculatePostOnPage(JCUser user, Topic topic, int pageNum) { int maxPostIndex = user.getPageSize() * pageNum - 1; maxPostIndex = Math.min(topic.getPostCount() - 1, maxPostIndex); return topic.getPosts().get(maxPostIndex); }
/** * {@inheritDoc} */ @Override public int calculatePageForPost(Post post) { Topic topic = post.getTopic(); int index = topic.getPosts().indexOf(post) + 1; int pageSize = userService.getCurrentUser().getPageSize(); int pageNum = index / pageSize; if (index % pageSize == 0) { return pageNum; } else { return pageNum + 1; } }
/** * {@inheritDoc} */ @Override public Page<Topic> getRecentTopics(String page) { int pageSize = userService.getCurrentUser().getPageSize(); PageRequest pageRequest = new PageRequest(page, pageSize); DateTime date24HoursAgo = new DateTime().minusDays(1); return this.getDao().getTopicsUpdatedSince(date24HoursAgo, pageRequest, userService.getCurrentUser()); }
/** * {@inheritDoc} */ @Override public Page<PrivateMessage> getOutboxForCurrentUser(String page) { JCUser currentUser = userService.getCurrentUser(); PageRequest pageRequest = new PageRequest(page, currentUser.getPageSize()); return this.getDao().getAllFromUser(currentUser, pageRequest); }
/** * {@inheritDoc} */ @Override public Page<Post> getPostsOfUser(JCUser userCreated, String page) { JCUser currentUser = userService.getCurrentUser(); List<Long> allowedBranchesIds = topicDao.getAllowedBranchesIds(currentUser); PageRequest pageRequest = new PageRequest(page, currentUser.getPageSize()); if (allowedBranchesIds.isEmpty()) { return new PageImpl<>(Collections.<Post>emptyList()); } else { return this.getDao().getUserPosts(userCreated, pageRequest, allowedBranchesIds); } }
/** * {@inheritDoc} */ @Override public Page<PrivateMessage> getInboxForCurrentUser(String page) { JCUser currentUser = userService.getCurrentUser(); PageRequest pageRequest = new PageRequest(page, currentUser.getPageSize()); return this.getDao().getAllForUser(currentUser, pageRequest); }
/** * {@inheritDoc} */ @Override public Page<Topic> searchByTitleAndContent(String phrase, String page) { JCUser currentUser = userService.getCurrentUser(); List<Long> allowedBranchesIds = this.getDao().getAllowedBranchesIds(currentUser); if (!StringUtils.isEmpty(phrase) && !allowedBranchesIds.isEmpty()) { int pageSize = currentUser.getPageSize(); PageRequest pageRequest = new PageRequest(page, pageSize); // hibernate search refuses to process long string throwing error String normalizedPhrase = StringUtils.left(phrase, 50); return searchDao.searchByTitleAndContent(normalizedPhrase, pageRequest, allowedBranchesIds); } return new PageImpl<>(Collections.<Topic>emptyList()); }
/** * {@inheritDoc} */ @Override public Page<PrivateMessage> getDraftsForCurrentUser(String page) { JCUser currentUser = userService.getCurrentUser(); PageRequest pageRequest = new PageRequest(page, currentUser.getPageSize()); return this.getDao().getDraftsForUser(currentUser, pageRequest); }
/** * {@inheritDoc} */ @Override public Page<Topic> getTopics(Branch branch, String page) { int pageSize = userService.getCurrentUser().getPageSize(); PageRequest pageRequest = new PageRequest(page, pageSize); return getDao().getTopics(branch, pageRequest); }
/** * {@inheritDoc} */ @Override public Page<Post> getPosts(Topic topic, String page) { PageRequest pageRequest = new PageRequest(page, userService.getCurrentUser().getPageSize()); return getDao().getPosts(topic, pageRequest); }
/** * {@inheritDoc} */ @Override public Page<Topic> getUnansweredTopics(String page) { int pageSize = userService.getCurrentUser().getPageSize(); PageRequest pageRequest = new PageRequest(page, pageSize); return this.getDao().getUnansweredTopics(pageRequest, userService.getCurrentUser()); }
/** * Constructor which fills dto fields from user. * * @param user copying source */ public UserProfileDto(JCUser user) { this.userId = user.getId(); this.firstName = user.getFirstName(); this.lastName = user.getLastName(); this.email = user.getEmail(); this.signature = user.getSignature(); this.pageSize = user.getPageSize(); this.location = user.getLocation(); this.postCount = user.getPostCount(); this.registrationDate = user.getRegistrationDate(); this.lastLogin = user.getLastLogin(); }
copy.setPostCount(user.getPostCount()); copy.setLanguage(user.getLanguage()); copy.setPageSize(user.getPageSize()); copy.setLocation(user.getLocation()); copy.setSignature(user.getSignature());