📝
Pleasanter で既読管理
これは2023 個人アドベントカレンダーの 4 日目の記事です。
tl;dr
- スクリプト機能で既読をつけてみる試み
- 何らかの周知のために、このサイト見に来てね、といっても、すぐに全員が見てくれるわけではないので、どう管理していくか、の試案
- アドカレ 3 日目の全社的な勤務状況のチェックで、チャットツールに「ここ見て」とポストしたパターンで、見てくれたのかを追跡したいなと思った
- ボタンを押させる、も一つではあるが、見たけど押し忘れた、みたいなのをプログラム的に防ぎたい
- 退屈なことは Pleasanter にやらせよう[1]
実装
スクリプト機能で、画面が表示して一定時間たったら、既読の意味でチェック A 項目をオンにしてみます。
以下のコードを、テーブルの管理の「スクリプト」タブにて、「編集」にチェックをつけて保存してください。
const mark = () => {
$p.apiUpdate({
id: $p.id(),
data: {
ApiVersion: 1.1,
CheckHash: {
CheckA: true,
},
},
done: () => {
location.reload();
},
});
};
$p.events.on_editor_load = () => {
if (!$p.getControl('CheckA').prop('checked')) {
setTimeout(mark, 5000); //5 秒滞在したら既読にする
}
};
あわせて、一般ユーザにはチェック A 項目を非表示にしておき、催促の通知などの条件でだけ利用すれば、利用者に意識させずに運用することもできそうかなと思います。
まとめとしての残された課題
- この実装のポイントとして
done
のコールバックで画面をリロードをしている点があります。- こうすることで、チェック処理が走ったあとで、ユーザが更新をしようとしたときに、既に更新されたデータがあるとして、リロードを求められる事態になるのを避けられます。
- ただ、既読にするまでのラグでユーザが何かしら記入をはじめたりしていると、そのデータが失われるのでネックになります。
- また画面のリロードもあまりユーザ体験として好ましいものではないでしょう。
- また、ワークフロー的な担当者が見たかどうか、をチェックする目的であれば利用できますが、LINE のグループチャットでの「既読 5」のような使い方には適しません。
- このあたり、今後検討してみたいと思います。
Discussion