Skip to content

Commit

Permalink
Merge pull request #110 from support-project/feature/issue101_notify_…
Browse files Browse the repository at this point in the history
…desktop

#101 デスクトップ通知は3秒で消えるようにして、通知をクリックするとそのナレッジを表示するように変更
  • Loading branch information
koda-masaru committed Oct 20, 2015
2 parents 45c607b + b1b1146 commit 78a8983
Show file tree
Hide file tree
Showing 3 changed files with 45 additions and 30 deletions.
31 changes: 4 additions & 27 deletions src/main/java/org/support/project/knowledge/bat/NotifyMailBat.java
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@
import org.support.project.common.util.StringUtils;
import org.support.project.knowledge.config.AppConfig;
import org.support.project.knowledge.config.MailConfig;
import org.support.project.knowledge.config.SystemConfig;
import org.support.project.knowledge.dao.CommentsDao;
import org.support.project.knowledge.dao.ExUsersDao;
import org.support.project.knowledge.dao.KnowledgesDao;
Expand All @@ -31,16 +30,15 @@
import org.support.project.knowledge.entity.NotifyConfigsEntity;
import org.support.project.knowledge.entity.NotifyQueuesEntity;
import org.support.project.knowledge.logic.KnowledgeLogic;
import org.support.project.knowledge.logic.NotifyLogic;
import org.support.project.knowledge.vo.GroupUser;
import org.support.project.knowledge.vo.Notify;
import org.support.project.web.dao.MailConfigsDao;
import org.support.project.web.dao.MailsDao;
import org.support.project.web.dao.SystemConfigsDao;
import org.support.project.web.dao.UsersDao;
import org.support.project.web.entity.GroupsEntity;
import org.support.project.web.entity.MailConfigsEntity;
import org.support.project.web.entity.MailsEntity;
import org.support.project.web.entity.SystemConfigsEntity;
import org.support.project.web.entity.UsersEntity;

public class NotifyMailBat extends AbstractBat {
Expand Down Expand Up @@ -87,27 +85,6 @@ private void start() {
LOG.info("Notify process finished. count: " + notifyQueuesEntities.size());
}

/**
* 指定のナレッジにアクセスするURLを作成
* @param knowledge
* @return
*/
private String makeURL(KnowledgesEntity knowledge) {
SystemConfigsDao dao = SystemConfigsDao.get();
SystemConfigsEntity config = dao.selectOnKey(SystemConfig.SYSTEM_URL, AppConfig.get().getSystemName());
if (config == null) {
return "";
}

StringBuilder builder = new StringBuilder();
builder.append(config.getConfigValue());
if (!config.getConfigValue().endsWith("/")) {
builder.append("/");
}
builder.append("protect.knowledge/view/");
builder.append(knowledge.getKnowledgeId());
return builder.toString();
}


/**
Expand Down Expand Up @@ -189,7 +166,7 @@ private void sendLikeMail(LikesEntity like, KnowledgesEntity knowledge, UsersEnt
} else {
contents = contents.replace("{LikeInsertUser}", "");
}
contents = contents.replace("{URL}", makeURL(knowledge));
contents = contents.replace("{URL}", NotifyLogic.get().makeURL(knowledge.getKnowledgeId()));

mailsEntity.setContent(contents);
if (LOG.isDebugEnabled()) {
Expand Down Expand Up @@ -327,7 +304,7 @@ private void sendCommentMail(CommentsEntity comment, KnowledgesEntity knowledge,
contents = contents.replace("{CommentInsertUser}", "");
}
contents = contents.replace("{CommentContents}", comment.getComment());
contents = contents.replace("{URL}", makeURL(knowledge));
contents = contents.replace("{URL}", NotifyLogic.get().makeURL(knowledge.getKnowledgeId()));

mailsEntity.setContent(contents);
if (LOG.isDebugEnabled()) {
Expand Down Expand Up @@ -493,7 +470,7 @@ private void insertNotifyKnowledgeUpdateMailQue(KnowledgesEntity knowledge, User
contents = contents.replace("{KnowledgeId}", knowledge.getKnowledgeId().toString());
contents = contents.replace("{KnowledgeTitle}", knowledge.getTitle());
contents = contents.replace("{Contents}", knowledge.getContent());
contents = contents.replace("{URL}", makeURL(knowledge));
contents = contents.replace("{URL}", NotifyLogic.get().makeURL(knowledge.getKnowledgeId()));

mailsEntity.setContent(contents);

Expand Down
32 changes: 32 additions & 0 deletions src/main/java/org/support/project/knowledge/logic/NotifyLogic.java
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@
import org.support.project.di.Container;
import org.support.project.di.DI;
import org.support.project.di.Instance;
import org.support.project.knowledge.config.AppConfig;
import org.support.project.knowledge.config.SystemConfig;
import org.support.project.knowledge.dao.KnowledgeGroupsDao;
import org.support.project.knowledge.dao.KnowledgeUsersDao;
import org.support.project.knowledge.dao.KnowledgesDao;
Expand All @@ -27,7 +29,9 @@
import org.support.project.knowledge.websocket.NotifyAction;
import org.support.project.web.bean.LoginedUser;
import org.support.project.web.bean.MessageResult;
import org.support.project.web.dao.SystemConfigsDao;
import org.support.project.web.entity.GroupsEntity;
import org.support.project.web.entity.SystemConfigsEntity;

@DI(instance=Instance.Singleton)
public class NotifyLogic {
Expand All @@ -38,6 +42,29 @@ public static NotifyLogic get() {
return Container.getComp(NotifyLogic.class);
}

/**
* 指定のナレッジにアクセスするURLを作成
* @param knowledge
* @return
*/
public String makeURL(Long knowledgeId) {
SystemConfigsDao dao = SystemConfigsDao.get();
SystemConfigsEntity config = dao.selectOnKey(SystemConfig.SYSTEM_URL, AppConfig.get().getSystemName());
if (config == null) {
return "";
}

StringBuilder builder = new StringBuilder();
builder.append(config.getConfigValue());
if (!config.getConfigValue().endsWith("/")) {
builder.append("/");
}
builder.append("protect.knowledge/view/");
builder.append(knowledgeId);
return builder.toString();
}


/**
* 通知を処理
* @param notify
Expand Down Expand Up @@ -129,6 +156,7 @@ public MessageResult getInsertKnowledgeMessage(LoginedUser loginuser, Locale loc
if (isToKnowledgeSave(loginuser, knowledge)) {
MessageResult messageResult = new MessageResult();
messageResult.setMessage(Resources.getInstance(locale).getResource("knowledge.notify.msg.desktop.to.insert", String.valueOf(knowledge.getKnowledgeId())));
messageResult.setResult(makeURL(knowledge.getKnowledgeId()));// Knowledgeへのリンク
return messageResult;
}
return null;
Expand All @@ -145,6 +173,7 @@ public MessageResult getUpdateKnowledgeMessage(LoginedUser loginuser, Locale loc
if (isToKnowledgeSave(loginuser, knowledge)) {
MessageResult messageResult = new MessageResult();
messageResult.setMessage(Resources.getInstance(locale).getResource("knowledge.notify.msg.desktop.to.update", String.valueOf(knowledge.getKnowledgeId())));
messageResult.setResult(makeURL(knowledge.getKnowledgeId()));// Knowledgeへのリンク
return messageResult;
}
return null;
Expand Down Expand Up @@ -253,13 +282,15 @@ public MessageResult getSaveCommentMessage(LoginedUser loginuser, Locale locale,
// 自分で投稿したナレッジにコメントがついたので通知
MessageResult messageResult = new MessageResult();
messageResult.setMessage(Resources.getInstance(locale).getResource("knowledge.notify.msg.desktop.myitem.comment", String.valueOf(knowledge.getKnowledgeId())));
messageResult.setResult(makeURL(knowledge.getKnowledgeId()));// Knowledgeへのリンク
return messageResult;
}

if (flagCheck(entity.getToItemComment()) && isToKnowledge(loginuser, knowledge, entity)) {
// 自分宛てのナレッジにコメントがついたので通知
MessageResult messageResult = new MessageResult();
messageResult.setMessage(Resources.getInstance(locale).getResource("knowledge.notify.msg.desktop.to.comment", String.valueOf(knowledge.getKnowledgeId())));
messageResult.setResult(makeURL(knowledge.getKnowledgeId()));// Knowledgeへのリンク
return messageResult;
}
return null;
Expand All @@ -285,6 +316,7 @@ public MessageResult getSaveLikeMessage(LoginedUser loginuser, Locale locale, Li
// 自分で投稿したナレッジにイイネが押されたので通知
MessageResult messageResult = new MessageResult();
messageResult.setMessage(Resources.getInstance(locale).getResource("knowledge.notify.msg.desktop.myitem.like", String.valueOf(knowledge.getKnowledgeId())));
messageResult.setResult(makeURL(knowledge.getKnowledgeId()));// Knowledgeへのリンク
return messageResult;
}

Expand Down
12 changes: 9 additions & 3 deletions src/main/webapp/WEB-INF/views/commons/layout/commonScripts.jsp
Original file line number Diff line number Diff line change
Expand Up @@ -116,14 +116,20 @@ function onNotifyShow() {
console.log('notification was shown!');
}
function notifyDesktop(msg) {
function notifyDesktop(msg, link) {
$.notify(msg, 'info');
if (Notify.isSupported) {
Notify.requestPermission(
function() {
var myNotification = new Notify('Notify from Knowledge', {
body: msg,
notifyShow: onNotifyShow
notifyShow: onNotifyShow,
timeout: 3,
notifyClick: function() {
if (link) {
window.location.href=link;
}
}
});
myNotification.show();
},
Expand Down Expand Up @@ -157,7 +163,7 @@ window.onload = function() {
console.log('[RECEIVE] ');
var result = JSON.parse(message.data);
console.log(result);
notifyDesktop(result.message);
notifyDesktop(result.message, result.result);
}
webSocket.onerror = function(message) {
}
Expand Down

0 comments on commit 78a8983

Please sign in to comment.