package org.exoplatform.ks.ext.impl; import org.apache.commons.lang.StringUtils; import org.exoplatform.forum.service.Utils; import org.exoplatform.social.webui.activity.BaseUIActivity; import org.exoplatform.webui.config.annotation.ComponentConfig; import org.exoplatform.webui.config.annotation.EventConfig; import org.exoplatform.webui.core.lifecycle.UIFormLifecycle; import org.exoplatform.webui.core.lifecycle.WebuiBindingContext; @ComponentConfig( lifecycle = UIFormLifecycle.class, template = "classpath:groovy/ks/social-integration/plugin/space/ForumUIActivity.gtmpl", events = { @EventConfig(listeners = BaseUIActivity.ToggleDisplayLikesActionListener.class), @EventConfig(listeners = BaseUIActivity.ToggleDisplayCommentFormActionListener.class), @EventConfig(listeners = BaseUIActivity.LikeActivityActionListener.class), @EventConfig(listeners = BaseUIActivity.SetCommentListStatusActionListener.class), @EventConfig(listeners = BaseUIActivity.PostCommentActionListener.class), @EventConfig(listeners = BaseUIActivity.DeleteActivityActionListener.class, confirm = "UIActivity.msg.Are_You_Sure_To_Delete_This_Activity"), @EventConfig(listeners = BaseUIActivity.DeleteCommentActionListener.class, confirm = "UIActivity.msg.Are_You_Sure_To_Delete_This_Comment") } ) public class ForumUIActivity extends BaseKSActivity { public ForumUIActivity() { } @SuppressWarnings("unused") private String getReplyLink() { String link = getViewLink(); if (!link.endsWith("/")) link += "/"; // add signal to show reply form link += "false"; return link; } private String getViewLink() { String link = ""; if (getActivityParamValue(ForumSpaceActivityPublisher.ACTIVITY_TYPE_KEY).toLowerCase().indexOf("topic") >= 0) { link = getActivityParamValue(ForumSpaceActivityPublisher.TOPIC_LINK_KEY); } else { link = getActivityParamValue(ForumSpaceActivityPublisher.POST_LINK_KEY) + "/" + getActivityParamValue(ForumSpaceActivityPublisher.POST_ID_KEY); } return link; } private String getLink(String tagLink, String nameLink) { tagLink = StringUtils.replace(tagLink, "{0}", getViewLink()); return StringUtils.replace(tagLink, "{1}", nameLink); } private String getActivityContentTitle(WebuiBindingContext _ctx, String herf) throws Exception { String title = "", linkTag = ""; try { if (getActivityParamValue(ForumSpaceActivityPublisher.ACTIVITY_TYPE_KEY).equalsIgnoreCase(ForumSpaceActivityPublisher.ACTIVITYTYPE.AddPost.toString())) { title = _ctx.appRes("ForumUIActivity.label.add-post"); linkTag = getLink(herf, getActivityParamValue(ForumSpaceActivityPublisher.POST_NAME_KEY)); } else if (getActivityParamValue(ForumSpaceActivityPublisher.ACTIVITY_TYPE_KEY).equalsIgnoreCase(ForumSpaceActivityPublisher.ACTIVITYTYPE.UpdatePost.toString())) { title = _ctx.appRes("ForumUIActivity.label.update-post"); linkTag = getLink(herf, getActivityParamValue(ForumSpaceActivityPublisher.POST_NAME_KEY)); } else if (getActivityParamValue(ForumSpaceActivityPublisher.ACTIVITY_TYPE_KEY).equalsIgnoreCase(ForumSpaceActivityPublisher.ACTIVITYTYPE.AddTopic.toString())) { title = _ctx.appRes("ForumUIActivity.label.add-topic"); linkTag = getLink(herf, getActivityParamValue(ForumSpaceActivityPublisher.TOPIC_NAME_KEY)); } else if (getActivityParamValue(ForumSpaceActivityPublisher.ACTIVITY_TYPE_KEY).equalsIgnoreCase(ForumSpaceActivityPublisher.ACTIVITYTYPE.UpdateTopic.toString())) { title = _ctx.appRes("ForumUIActivity.label.update-topic"); linkTag = getLink(herf, getActivityParamValue(ForumSpaceActivityPublisher.TOPIC_NAME_KEY)); } } catch (Exception e) { log.debug("Failed to get activity content and title ", e); } if (!Utils.isEmpty(title)) { title = StringUtils.replace(title, "{0}", getUriOfAuthor()); title = StringUtils.replace(title, "{1}", linkTag); } return title; } }