public void onEvent(Event<UIPostForm> event, UIPostForm uiForm, String id) throws Exception { UIForumInputWithActions threadContent = uiForm.getChildById(FIELD_THREADCONTEN_TAB); int t = 0, k = 1; String postTitle = threadContent.getUIStringInput(FIELD_POSTTITLE_INPUT).getValue(); String userName = UserHelper.getCurrentUser(); String message = threadContent.getChild(UIFormWYSIWYGInput.class).getValue(); String checksms = TransformHTML.cleanHtmlCode( message, new ArrayList<String>((new ExtendedBBCodeProvider()).getSupportedBBCodes())); checksms = checksms.replaceAll(" ", " "); t = checksms.trim().length(); if (ForumUtils.isEmpty(postTitle)) { k = 0; } if (t > 0 && k != 0 && !checksms.equals("null")) { postTitle = CommonUtils.encodeSpecialCharInTitle(postTitle); Post post = uiForm.post_; post.setName(postTitle); post.setMessage(message); post.setOwner(userName); if (ForumUtils.isEmpty(uiForm.postId)) { post.setCreatedDate(CommonUtils.getGreenwichMeanTime().getTime()); post.setModifiedDate(CommonUtils.getGreenwichMeanTime().getTime()); } post.setModifiedBy(userName); post.setRemoteAddr(ForumUtils.EMPTY_STR); post.setIcon("uiIconForumTopic uiIconForumLightGray"); post.setIsApproved(false); post.setAttachments(uiForm.getAttachFileList()); UIPopupContainer popupContainer = uiForm.getAncestorOfType(UIPopupContainer.class); UIViewPost viewPost = uiForm.openPopup(popupContainer, UIViewPost.class, 670, 0); viewPost.setId("viewPost"); viewPost.setPostView(post); viewPost.setActionForm(new String[] {"Close"}); } else { String[] args = {ForumUtils.EMPTY_STR}; if (k == 0) { args = new String[] {uiForm.getLabel(FIELD_POSTTITLE_INPUT)}; if (t <= 0) args = new String[] { uiForm.getLabel(FIELD_POSTTITLE_INPUT) + ", " + uiForm.getLabel(FIELD_MESSAGECONTENT) }; uiForm.warning("NameValidator.msg.ShortText", args); } else if (t <= 0) { args = new String[] {uiForm.getLabel(FIELD_MESSAGECONTENT)}; uiForm.warning("NameValidator.msg.ShortMessage", args); } } }
public void onEvent(Event<UICategoryForm> event, UICategoryForm uiForm, String objectId) throws Exception { if (uiForm.isDoubleClickSubmit) return; String categoryTitle = uiForm.getUIStringInput(FIELD_CATEGORYTITLE_INPUT).getValue(); int maxText = ForumUtils.MAXTITLE; if (categoryTitle.length() > maxText) { warning( "NameValidator.msg.warning-long-text", new String[] {uiForm.getLabel(FIELD_CATEGORYTITLE_INPUT), String.valueOf(maxText)}); return; } categoryTitle = CommonUtils.encodeSpecialCharInTitle(categoryTitle); String description = uiForm.getUIFormTextAreaInput(FIELD_DESCRIPTION_INPUT).getValue(); if (!ForumUtils.isEmpty(description) && description.length() > maxText) { warning( "NameValidator.msg.warning-long-text", new String[] {uiForm.getLabel(FIELD_DESCRIPTION_INPUT), String.valueOf(maxText)}); return; } description = CommonUtils.encodeSpecialCharInTitle(description); String categoryOrder = uiForm.getUIStringInput(FIELD_CATEGORYORDER_INPUT).getValue(); if (ForumUtils.isEmpty(categoryOrder)) categoryOrder = "0"; categoryOrder = ForumUtils.removeZeroFirstNumber(categoryOrder); if (categoryOrder.length() > 3) { warning( "NameValidator.msg.erro-large-number", new String[] {uiForm.getLabel(FIELD_CATEGORYORDER_INPUT)}); return; } UIPermissionPanel permissionTab = uiForm.getChildById(PERMISSION_TAB); String moderator = permissionTab.getOwnersByPermission(MODERAROR); moderator = ForumUtils.removeSpaceInString(moderator); moderator = ForumUtils.removeStringResemble(moderator); String[] moderators = ForumUtils.splitForForum(moderator); if (!ForumUtils.isEmpty(moderator)) { String erroUser = UserHelper.checkValueUser(moderator); if (!ForumUtils.isEmpty(erroUser)) { warning( "NameValidator.msg.erroUser-input", new String[] {uiForm.getLabel(MODERAROR), erroUser}); return; } } else { moderators = new String[] {""}; } String userPrivate = uiForm.getUIFormTextAreaInput(FIELD_USERPRIVATE_MULTIVALUE).getValue(); if (!ForumUtils.isEmpty(userPrivate) && !ForumUtils.isEmpty(moderator)) { userPrivate = userPrivate + ForumUtils.COMMA + moderator; } userPrivate = ForumUtils.removeSpaceInString(userPrivate); userPrivate = ForumUtils.removeStringResemble(userPrivate); String[] userPrivates = ForumUtils.splitForForum(userPrivate); if (!ForumUtils.isEmpty(userPrivate)) { String erroUser = UserHelper.checkValueUser(userPrivate); if (!ForumUtils.isEmpty(erroUser)) { warning( "NameValidator.msg.erroUser-input", new String[] {uiForm.getLabel(FIELD_USERPRIVATE_MULTIVALUE), erroUser}); return; } } else { userPrivates = new String[] {""}; } String topicable = permissionTab.getOwnersByPermission(TOPICABLE); String postable = permissionTab.getOwnersByPermission(POSTABLE); String viewer = permissionTab.getOwnersByPermission(VIEWER); topicable = ForumUtils.removeSpaceInString(topicable); postable = ForumUtils.removeSpaceInString(postable); viewer = ForumUtils.removeSpaceInString(viewer); String erroUser = UserHelper.checkValueUser(topicable); erroUser = UserHelper.checkValueUser(topicable); if (!ForumUtils.isEmpty(erroUser)) { warning( "NameValidator.msg.erroUser-input", new String[] {uiForm.getLabel(TOPICABLE), erroUser}); return; } erroUser = UserHelper.checkValueUser(postable); if (!ForumUtils.isEmpty(erroUser)) { warning( "NameValidator.msg.erroUser-input", new String[] {uiForm.getLabel(POSTABLE), erroUser}); return; } erroUser = UserHelper.checkValueUser(viewer); if (!ForumUtils.isEmpty(erroUser)) { warning( "NameValidator.msg.erroUser-input", new String[] {uiForm.getLabel(VIEWER), erroUser}); return; } String[] setTopicable = ForumUtils.splitForForum(topicable); String[] setPostable = ForumUtils.splitForForum(postable); String[] setViewer = ForumUtils.splitForForum(viewer); String userName = uiForm.getUserProfile().getUserId(); UIForumPortlet forumPortlet = uiForm.getAncestorOfType(UIForumPortlet.class); boolean isNew = true; Category cat = new Category(); if (!ForumUtils.isEmpty(uiForm.categoryId)) { cat = uiForm.getForumService().getCategory(uiForm.categoryId); if (cat == null) { warning("UIForumPortlet.msg.catagory-deleted", false); forumPortlet.cancelAction(); forumPortlet.renderForumHome(); event.getRequestContext().addUIComponentToUpdateByAjax(forumPortlet); return; } isNew = false; } cat.setOwner(userName); cat.setCategoryName(categoryTitle.trim()); cat.setCategoryOrder(Long.parseLong(categoryOrder)); cat.setCreatedDate(new Date()); cat.setDescription(description); cat.setModifiedBy(userName); cat.setModifiedDate(new Date()); cat.setUserPrivate(userPrivates); cat.setModerators(moderators); cat.setCreateTopicRole(setTopicable); cat.setPoster(setPostable); cat.setViewer(setViewer); UICategoryContainer categoryContainer = forumPortlet.getChild(UICategoryContainer.class); try { uiForm.getForumService().saveCategory(cat, isNew); List<String> invisibleCategories = forumPortlet.getInvisibleCategories(); if (!invisibleCategories.isEmpty()) { List<String> invisibleForums = forumPortlet.getInvisibleForums(); invisibleCategories.add(cat.getId()); String listForumId = UICategoryForm.listToString(invisibleForums); String listCategoryId = UICategoryForm.listToString(invisibleCategories); ForumUtils.savePortletPreference(listCategoryId, listForumId); forumPortlet.loadPreferences(); } UICategory uiCategory = categoryContainer.getChild(UICategory.class); uiCategory.setIsEditForum(true); uiCategory.updateByBreadcumbs(cat.getId()); categoryContainer.updateIsRender(false); forumPortlet.updateIsRendered(ForumUtils.CATEGORIES); forumPortlet.findFirstComponentOfType(UIBreadcumbs.class).setUpdataPath(cat.getId()); } catch (Exception e) { warning("UIForumPortlet.msg.catagory-deleted", false); forumPortlet.renderForumHome(); } forumPortlet.cancelAction(); uiForm.isDoubleClickSubmit = true; event.getRequestContext().addUIComponentToUpdateByAjax(forumPortlet); }
public void onEvent( Event<UIModeratorManagementForm> event, UIModeratorManagementForm uiForm, String userId) throws Exception { UserProfile userProfile = uiForm.editUserProfile; UIFormInputWithActions inputSetProfile = uiForm.getChildById(FIELD_USERPROFILE_FORM); String userTitle = inputSetProfile.getUIStringInput(FIELD_USERTITLE_INPUT).getValue(); String screenName = inputSetProfile.getUIStringInput(FIELD_SCREENNAME_INPUT).getValue(); screenName = CommonUtils.encodeSpecialCharInTitle(screenName); long userRole = 2; boolean isAdmin = inputSetProfile.getUICheckBoxInput(FIELD_USERROLE_CHECKBOX).isChecked(); if (isAdmin || uiForm.isAdmin(userProfile.getUserId())) { isAdmin = true; userRole = 0; } // if (ForumUtils.isEmpty(userTitle)) { if (isAdmin) { userTitle = Utils.ADMIN; } else { userTitle = userProfile.getUserTitle(); } } else { userTitle = CommonUtils.encodeSpecialCharInTitle(userTitle); } // ----------------- List<String> oldModerateForum = uiForm.getModerateList(Arrays.asList(userProfile.getModerateForums())); List<String> newModeratorsForum = new ArrayList<String>(); List<String> removeModerateForum = new ArrayList<String>(); List<String> forumIdsMod = new ArrayList<String>(); // newModeratorsForum = uiForm.getModerateList(uiForm.listModerate); forumIdsMod.addAll(newModeratorsForum); if (newModeratorsForum.isEmpty()) { removeModerateForum = oldModerateForum; } else { for (String string : oldModerateForum) { if (newModeratorsForum.contains(string)) { newModeratorsForum.remove(string); } else { removeModerateForum.add(string); } } if (!newModeratorsForum.isEmpty()) uiForm .getForumService() .saveModerateOfForums(newModeratorsForum, userProfile.getUserId(), false); } if (!removeModerateForum.isEmpty()) { uiForm .getForumService() .saveModerateOfForums(removeModerateForum, userProfile.getUserId(), true); } uiForm .getForumService() .saveUserModerator(userProfile.getUserId(), uiForm.listModerate, false); List<String> moderateCates = new ArrayList<String>(); moderateCates.addAll(uiForm.listModCate); List<String> newModeratorsCate = new ArrayList<String>(); List<String> categoryIdsMod = new ArrayList<String>(); List<String> oldModerateCate = uiForm.getModerateList(Arrays.asList(userProfile.getModerateCategory())); List<String> removeModerateCate = new ArrayList<String>(); // set moderator category newModeratorsCate = uiForm.getModerateList(moderateCates); categoryIdsMod.addAll(newModeratorsCate); if (newModeratorsCate.isEmpty()) { removeModerateCate = oldModerateCate; } else { for (String string : oldModerateCate) { if (newModeratorsCate.contains(string)) { newModeratorsCate.remove(string); } else { removeModerateCate.add(string); } } if (!newModeratorsCate.isEmpty()) { uiForm .getForumService() .saveModOfCategory(newModeratorsCate, userProfile.getUserId(), true); if (userRole > 1) userRole = 1; } } if (removeModerateCate.size() > 0) { uiForm .getForumService() .saveModOfCategory(removeModerateCate, userProfile.getUserId(), false); } if (userRole > 1) { uiForm.listModerate = uiForm.getForumService().getUserModerator(userProfile.getUserId(), false); if (uiForm.listModerate.size() >= 1 && !uiForm.listModerate.get(0).equals(" ")) userRole = 1; } if (userTitle == null || userTitle.trim().length() < 1) { userTitle = userProfile.getUserTitle(); } else if (!isAdmin) { int newPos = Arrays.asList(uiForm.permissionUser).indexOf(userTitle.toLowerCase()); if (newPos >= 0 && newPos < userRole) { if (Arrays.asList(uiForm.permissionUser).indexOf(userProfile.getUserTitle().toLowerCase()) < 0) userTitle = userProfile.getUserTitle(); else userTitle = uiForm.titleUser[(int) userRole]; } } else { if (userTitle.equalsIgnoreCase(uiForm.titleUser[1]) || userTitle.equalsIgnoreCase(uiForm.titleUser[2])) userTitle = uiForm.titleUser[0]; } if (userRole == 1 && userTitle.equalsIgnoreCase(uiForm.titleUser[2])) { userTitle = uiForm.titleUser[1]; } String signature = inputSetProfile.getUIFormTextAreaInput(FIELD_SIGNATURE_TEXTAREA).getValue(); signature = CommonUtils.encodeSpecialCharInTitle(signature); boolean isDisplaySignature = inputSetProfile.getUICheckBoxInput(FIELD_ISDISPLAYSIGNATURE_CHECKBOX).isChecked(); Boolean isDisplayAvatar = inputSetProfile.getUICheckBoxInput(FIELD_ISDISPLAYAVATAR_CHECKBOX).isChecked(); UIFormInputWithActions inputSetOption = uiForm.getChildById(FIELD_USEROPTION_FORM); double timeZone = Double.parseDouble( inputSetOption.getUIFormSelectBox(FIELD_TIMEZONE_SELECTBOX).getValue()); String shortDateFormat = inputSetOption.getUIFormSelectBox(FIELD_SHORTDATEFORMAT_SELECTBOX).getValue(); String longDateFormat = inputSetOption.getUIFormSelectBox(FIELD_LONGDATEFORMAT_SELECTBOX).getValue(); String timeFormat = inputSetOption.getUIFormSelectBox(FIELD_TIMEFORMAT_SELECTBOX).getValue(); long maxTopic = Long.parseLong( inputSetOption.getUIFormSelectBox(FIELD_MAXTOPICS_SELECTBOX).getValue().substring(2)); long maxPost = Long.parseLong( inputSetOption.getUIFormSelectBox(FIELD_MAXPOSTS_SELECTBOX).getValue().substring(2)); UIFormInputWithActions inputSetBan = uiForm.getChildById(FIELD_USERBAN_FORM); boolean wasBanned = userProfile.getIsBanned(); boolean isBanned = inputSetBan.getUICheckBoxInput(FIELD_ISBANNED_CHECKBOX).isChecked(); String until = inputSetBan.getUIFormSelectBox(FIELD_BANUNTIL_SELECTBOX).getValue(); long banUntil = 0; if (!ForumUtils.isEmpty(until)) { banUntil = Long.parseLong(until.substring(6)); } String banReason = inputSetBan.getUIFormTextAreaInput(FIELD_BANREASON_TEXTAREA).getValue(); String[] banReasonSummaries = userProfile.getBanReasonSummary(); Date date = CommonUtils.getGreenwichMeanTime().getTime(); int banCounter = userProfile.getBanCounter(); date.setTime(banUntil); StringBuffer stringBuffer = new StringBuffer(); if (!ForumUtils.isEmpty(banReason)) { stringBuffer.append("Ban Reason: ").append(banReason).append(" "); } stringBuffer .append("From Date: ") .append( TimeConvertUtils.getFormatDate( "MM-dd-yyyy hh:mm a", CommonUtils.getGreenwichMeanTime().getTime())) .append(" GMT+0 To Date: ") .append(TimeConvertUtils.getFormatDate("MM-dd-yyyy hh:mm a", date)) .append(" GMT+0"); if (isBanned) { if (banReasonSummaries != null && banReasonSummaries.length > 0) { if (wasBanned) { banReasonSummaries[0] = stringBuffer.toString(); } else { String[] temp = new String[banReasonSummaries.length + 1]; int i = 1; for (String string : banReasonSummaries) { temp[i++] = string; } temp[0] = stringBuffer.toString(); banReasonSummaries = temp; banCounter = banCounter + 1; } } else { banReasonSummaries = new String[] {stringBuffer.toString()}; banCounter = 1; } } userProfile.setUserTitle(userTitle); userProfile.setScreenName(screenName); userProfile.setUserRole(userRole); userProfile.setSignature(signature); userProfile.setIsDisplaySignature(isDisplaySignature); userProfile.setModerateCategory(moderateCates.toArray(new String[] {})); userProfile.setIsDisplayAvatar(isDisplayAvatar); userProfile.setTimeZone(-timeZone); userProfile.setShortDateFormat(shortDateFormat); userProfile.setLongDateFormat(longDateFormat.replace('=', ' ')); userProfile.setTimeFormat(timeFormat.replace('=', ' ')); userProfile.setMaxPostInPage(maxPost); userProfile.setMaxTopicInPage(maxTopic); userProfile.setIsBanned(isBanned); userProfile.setBanUntil(banUntil); userProfile.setBanReason(banReason); userProfile.setBanCounter(banCounter); userProfile.setBanReasonSummary(banReasonSummaries); try { uiForm.getForumService().saveUserProfile(userProfile, true, true); } catch (Exception e) { uiForm.log.trace("\nSave user profile fail: " + e.getMessage() + "\n" + e.getCause()); } uiForm.isEdit = false; if (ForumUtils.isEmpty(uiForm.valueSearch)) { uiForm.isViewSearchUser = false; } else { uiForm.searchUserProfileByKey(uiForm.valueSearch); } UIPopupWindow popupWindow = uiForm.getAncestorOfType(UIPopupWindow.class); popupWindow.setWindowSize(760, 350); event.getRequestContext().addUIComponentToUpdateByAjax(popupWindow.getParent()); }
public void onEvent(Event<UIPostForm> event, UIPostForm uiForm, String id) throws Exception { if (uiForm.isDoubleClickSubmit) return; uiForm.isDoubleClickSubmit = true; UIForumPortlet forumPortlet = uiForm.getAncestorOfType(UIForumPortlet.class); UserProfile userProfile = forumPortlet.getUserProfile(); try { if (forumPortlet.checkForumHasAddPost(uiForm.categoryId, uiForm.forumId, uiForm.topicId)) { UIForumInputWithActions threadContent = uiForm.getChildById(FIELD_THREADCONTEN_TAB); int t = 0, k = 1; String postTitle = threadContent.getUIStringInput(FIELD_POSTTITLE_INPUT).getValue(); boolean isAddRe = false; int maxText = ForumUtils.MAXTITLE; if (!ForumUtils.isEmpty(postTitle)) { while (postTitle.indexOf(uiForm.getTitle("").trim()) == 0) { postTitle = postTitle.replaceFirst(STR_RE.trim(), ForumUtils.EMPTY_STR).trim(); isAddRe = true; } if (postTitle.length() > maxText) { warning( "NameValidator.msg.warning-long-text", new String[] {uiForm.getLabel(FIELD_POSTTITLE_INPUT), String.valueOf(maxText)}); uiForm.isDoubleClickSubmit = false; return; } } String message = threadContent.getChild(UIFormWYSIWYGInput.class).getValue(); String checksms = TransformHTML.cleanHtmlCode( message, new ArrayList<String>((new ExtendedBBCodeProvider()).getSupportedBBCodes())); checksms = checksms.replaceAll(" ", " "); t = checksms.length(); if (ForumUtils.isEmpty(postTitle)) { k = 0; } if (t > 0 && k != 0 && !checksms.equals("null")) { String editReason = threadContent.getUIStringInput(FIELD_EDITREASON_INPUT).getValue(); if (!ForumUtils.isEmpty(editReason) && editReason.length() > maxText) { warning( "NameValidator.msg.warning-long-text", new String[] {uiForm.getLabel(FIELD_EDITREASON_INPUT), String.valueOf(maxText)}); uiForm.isDoubleClickSubmit = false; return; } String userName = userProfile.getUserId(); editReason = CommonUtils.encodeSpecialCharInTitle(editReason); message = TransformHTML.fixAddBBcodeAction(message); message = CommonUtils.encodeSpecialCharInSearchTerm(message); postTitle = CommonUtils.encodeSpecialCharInTitle(postTitle); Post post = uiForm.post_; boolean isPP = false; boolean isOffend = false; boolean hasTopicMod = false; if (!uiForm.isMod()) { String[] censoredKeyword = ForumUtils.getCensoredKeyword(uiForm.getForumService()); checksms = checksms.toLowerCase().trim(); for (String string : censoredKeyword) { if (checksms.indexOf(string.trim()) >= 0) { isOffend = true; break; } if (postTitle.toLowerCase().indexOf(string.trim()) >= 0) { isOffend = true; break; } } if (post.getUserPrivate() != null && post.getUserPrivate().length == 2) isPP = true; if ((!uiForm.isMP || !isPP) && uiForm.topic != null) hasTopicMod = uiForm.topic.getIsModeratePost(); } if (isOffend && (uiForm.isMP || isPP)) { uiForm.warning("UIPostForm.msg.PrivateCensor"); uiForm.isDoubleClickSubmit = false; return; } // set link String link = ForumUtils.createdForumLink(ForumUtils.TOPIC, uiForm.topicId, false); // if (uiForm.isQuote || uiForm.isMP) post = new Post(); post.setName((isAddRe) ? uiForm.getTitle(postTitle) : postTitle); post.setMessage(message); post.setOwner(userName); post.setCreatedDate(new Date()); post.setIcon("uiIconForumTopic uiIconForumLightGray"); post.setAttachments(uiForm.getAttachFileList()); post.setIsWaiting(isOffend); post.setLink(link); String[] userPrivate = new String[] {"exoUserPri"}; if (uiForm.isMP) { userPrivate = new String[] {userName, uiForm.post_.getOwner()}; hasTopicMod = false; } post.setUserPrivate(userPrivate); post.setIsApproved(!hasTopicMod); UITopicDetailContainer topicDetailContainer = forumPortlet.findFirstComponentOfType(UITopicDetailContainer.class); UITopicDetail topicDetail = topicDetailContainer.getChild(UITopicDetail.class); boolean isParentDelete = false; boolean isNew = false; try { if (!ForumUtils.isEmpty(uiForm.postId)) { if (uiForm.isQuote || uiForm.isMP) { post.setRemoteAddr(WebUIUtils.getRemoteIP()); try { uiForm .getForumService() .savePost( uiForm.categoryId, uiForm.forumId, uiForm.topicId, post, true, ForumUtils.getDefaultMail()); isNew = true; } catch (PathNotFoundException e) { isParentDelete = true; } topicDetail.setIdPostView("lastpost"); } else { // post.setId(uiForm.postId) ; post.setModifiedBy(userName); post.setModifiedDate(new Date()); post.setEditReason(editReason); MessageBuilder messageBuilder = ForumUtils.getDefaultMail(); messageBuilder.setLink(link + ForumUtils.SLASH + post.getId()); try { uiForm .getForumService() .savePost( uiForm.categoryId, uiForm.forumId, uiForm.topicId, post, false, messageBuilder); } catch (PathNotFoundException e) { isParentDelete = true; } topicDetail.setIdPostView(uiForm.postId); } } else { post.setRemoteAddr(WebUIUtils.getRemoteIP()); try { uiForm .getForumService() .savePost( uiForm.categoryId, uiForm.forumId, uiForm.topicId, post, true, ForumUtils.getDefaultMail()); isNew = true; } catch (PathNotFoundException e) { isParentDelete = true; } catch (Exception ex) { uiForm.log.warn(String.format("Failed to save post %s", post.getName()), ex); } topicDetail.setIdPostView("lastpost"); } if (isNew) { if (userProfile.getIsAutoWatchTopicIPost()) { List<String> values = new ArrayList<String>(); values.add(userProfile.getEmail()); String path = uiForm.categoryId + ForumUtils.SLASH + uiForm.forumId + ForumUtils.SLASH + uiForm.topicId; uiForm.getForumService().addWatch(1, path, values, userProfile.getUserId()); } } uiForm .getForumService() .updateTopicAccess(forumPortlet.getUserProfile().getUserId(), uiForm.topicId); forumPortlet .getUserProfile() .setLastTimeAccessTopic( uiForm.topicId, CommonUtils.getGreenwichMeanTime().getTimeInMillis()); } catch (Exception e) { uiForm.log.warn("Failed to save topic", e); } uiForm.isMP = uiForm.isQuote = false; if (isParentDelete) { forumPortlet.cancelAction(); uiForm.warning("UIPostForm.msg.isParentDelete"); return; } forumPortlet.cancelAction(); if (isOffend || hasTopicMod) { topicDetail.setIdPostView("normal"); if (isOffend) uiForm.warning("MessagePost.msg.isOffend", false); else { uiForm.warning("MessagePost.msg.isModerate", false); } } event.getRequestContext().addUIComponentToUpdateByAjax(topicDetailContainer); } else { String[] args = {ForumUtils.EMPTY_STR}; if (k == 0) { args = new String[] {uiForm.getLabel(FIELD_POSTTITLE_INPUT)}; if (t == 0) args = new String[] { uiForm.getLabel(FIELD_POSTTITLE_INPUT) + ", " + uiForm.getLabel(FIELD_MESSAGECONTENT) }; uiForm.isDoubleClickSubmit = false; uiForm.warning("NameValidator.msg.ShortMessage", args); } else if (t == 0) { args = new String[] {uiForm.getLabel(FIELD_MESSAGECONTENT)}; uiForm.isDoubleClickSubmit = false; uiForm.warning("NameValidator.msg.ShortMessage", args); } } } else { forumPortlet.cancelAction(); forumPortlet.removeCacheUserProfile(); UITopicDetail topicDetail = forumPortlet.findFirstComponentOfType(UITopicDetail.class); topicDetail.initInfoTopic(uiForm.categoryId, uiForm.forumId, uiForm.topic, 0); uiForm.warning("UIPostForm.msg.no-permission", false); event.getRequestContext().addUIComponentToUpdateByAjax(forumPortlet); } } catch (Exception e) { uiForm.log.error("Can not save post into this topic, exception: " + e.getMessage(), e); uiForm.warning("UIPostForm.msg.isParentDelete", false); forumPortlet.cancelAction(); } }