はじめに
Pleasanterのサポートをしているとお客様からいろいろな希望を聞くことが有ります。その中で今回あったのが「Pleasanterにメンションが有りませんよね~」この一言で何かいい方法が無いかと考えてみました。
今回はコメントにメンションのような機能を付けてみました。
メンションは「送信する相手を明確にしてメッセージができる機能」という点を実装しています。
コメントはPleasanterの通知機能(メール)を使用して送信しています。
テーブルの準備
コメントを入力した際に、新しいコメントのみ送信するように数値Aを追加し、コメントIDを保存するようにしました。
サーバスクリプト
model.NumA = 0;
let Comments = model.Comments;
Comments = JSON.parse(Comments.toString());
if( Comments.length != 0 ){
if( Comments[0].CommentId > model.NumA ){
let result = String(Comments[0].Body).match(/(^\/\/.*)/gm);
let result1 = String(String(result).substr(2)).split(/\s/gm);
for(let c=0; c<result1.length; c++){
let notification = notifications.New();
notification.Address = result1[c];
notification.Title = '【通知】' + model.Title;
notification.Body = Comments[0].Body + '\n' + Comments[0].CreatedTime;
notification.Send();
}
}
model.NumA = Comments[0].CommentId;
}
メンションの付け方
メンションは行の先頭に//を付けた行になります。
送信先の指定方法はPleasanterの通知のアドレスと同じです。
https://pleasanter.org/manual/table-management-notification
コメント部に下記の通り入力するとmail@hogehoge.comに送信されます。
コメントです。
//mail@hogehoge.com
他の方法として
[User1]...ユーザーID1に送信します。
[Group1]...グループID1に送信します。
[Dept1]...組織ID1に送信します。
グループIDの1と10に送信する場合は下記の通りです。
//[Group1] [Group10]
送信先の間にスペースを入れてください。
問題点
現在の方法はIDやアドレス指定なので相手が明確に判りません。また、アクセス権の無いユーザーや使用できない人にも送信できます。
最後に
とりあえずメンションらしき機能はできましたが、使い勝手はいまいちです。改善方法があればご指導お願いします。