お知らせアプリでレコードの既読チェックカスタマイズをしてみよう
概要
メールの既読チェックと同じく、kintoneでもたとえばお知らせアプリなどで、通知先のユーザーが確認してくれたかチェックしたいと思うことはありませんか?
本記事では、ボタンを生成してお知らせアプリで既読チェックをするカスタマイズを解説します。
完成イメージ
できあがりはこのようになります。
ユーザーが確認/Notedボタンをクリックすると、そのユーザー名が別フィールドに記録され、既読チェックができます。
今回はおまけ要素として、日英両方のユーザーに対応します。
主なカスタマイズ内容は以下です。
- お知らせが公開されたら、確認ボタンを表示する。
- ユーザーが確認ボタンをクリックすると、そのユーザー名を別フィールドに記録する。
- ユーザーが確認ボタンをクリックすると、既読済みのユーザー数を別フィールドに記録する。
- 日本語/英語に対応する。
まずkintoneアプリを作成して、そこにJavaScriptカスタマイズを加えていきます。
では、開発していきましょう!
kintoneのアプリ作成
今回は既読チェックカスタマイズということで、お知らせアプリを作成します。
-
以下のフィールドを配置したお知らせアプリを作成してください。(大文字/小文字にご注意ください)
詳細なアプリの作成方法は こちらのヘルプ(アプリをはじめから作成する)を参照してください。
フィールドの種類 フィールド名 フィールドコード ユーザー選択 確認済みユーザー Noted_Users 数値 確認済み数 Count スペース ー Button (要素IDを指します) 上記以外のフィールドは、こちらのアプリ構成を参考にして設定してください。
(赤枠内は、必須項目です) -
次に、以下のとおりプロセス管理を設定します。
詳細な設定方法は こちらのヘルプ(プロセス管理を設定する)を参照してください。
-
今回英語ユーザーにも対応したいので、設定します。英語の箇所を以下のとおりに設定してください。
詳細な設定方法は こちらのヘルプ(言語ごとの名称を設定する)を参照してください。
これでいったんkintone側の下準備は完了です。
JavaScriptカスタマイズ
アプリ作成が完了したら、JavaScriptカスタマイズを加えていきます。
下のJavaScriptファイルをkintoneのお知らせアプリに適用します。
サンプルコード
既読チェック用のJavaScriptファイルです。
アプリ作成者の言語設定が英語の場合は、ステータスのフィールドコードが違うので、次のとおり12行目のコードを修正してください。
言語設定が日本語の場合
|
|
言語設定が英語の場合
|
|
notedButton.js
|
|
また、FontAwesomeと51-modern-default.cssをkintoneに適用します。
notedButton.jsと併せて、PC用のJavaScript/CSSファイルに追加してください。
- FontAwesome
- https://js.cybozu.com/font-awesome/v5.5.0/css/fontawesome-all.min.css
- 51-modern-default.css(
こちらのGithub URL
よりCSSファイルを作成してアップロード)
すべてアップロードすると、以下のようになります。
アプリへのJavaScript/CSSファイルのアップロードの方法は
こちらのヘルプ(JavaScriptやCSSでアプリをカスタマイズする)
を参照してください。
動作確認
設定が完了したら、最後に動作確認をしましょう。
今回は、日本語と英語に対応できていることを確認するため、画面表示がそれぞれの言語設定になっているユーザーでログインして動作を確認します。
言語設定を変更したい場合は、
画面の言語を切り替える
や、
タイムゾーンを切り替える
を参照してください。
-
サンプルデータを登録して、日本語利用ユーザーで、「公開する」ボタンをクリックしてプロセスを進めます。
-
「確認」ボタンをクリックします。
確認ボタンを押したユーザー名とカウントが記録されます。
また、「確認」ボタンも消えるようになっています。
-
次は英語ユーザーでkintoneにログインし直して、英語表記のチェックを行います。
注意書きやボタンの言語が変わっていることを確認しましょう。
「Noted」ボタンをクリックします。
そうすると、またユーザー名とカウントが変更されることを確認します。
これで動作確認も完了です!お疲れさまでした。
サンプルコードの解説
簡単にサンプルコードのポイント解説をします。
可変なものはcommon変数にまとめる
フィールドコードなど可変なものはcommon変数にまとめて、メンテしやすいようにしておきます。
|
|
ちなみにES6からは、オブジェクトのキーに変数の値を使用したい場合、変数名を[]で囲んで指定できます。
|
|
ユーザーの言語設定による日英の出し分け
cybozu.com上のユーザーの言語設定によって、注釈やボタン文言の日英出し分けを行っている部分です。この書き方は覚えておきましょう。
条件(三項)演算子
を使っています。
|
|
ボタンの表示/非表示判定
プロセスが「公開」/「Published」のもの、かつログインユーザーが未読の場合のみ「確認」/「Noted」ボタンを表示するように制御しています。
|
|
おわりに
いかがでしたでしょうか?既読チェックのカスタマイズ、応用すればいろんな場面で使えると思うので、ぜひ工夫してみてください。
レコード追加後にプロセスを進め忘れることが多い場合、「レコードを追加したら次のステータスに進めるかを尋ねるダイアログを出す」というアレンジもいいかもしれません。
注意事項
- 上記のカスタマイズは、PCのみで動作します。
- 日本語と英語ユーザー両方に対応しています。
- 同時リクエストが過多になることにより、kintoneへの負荷は高まる可能性があります。
- 同レコードの同時編集により、レコードを更新できない場合があります。
- ユーザーフィールドに多くのユーザー情報が登録されることにより、画面描写は遅延する場合があります。
このTipsは、2025年6月版kintoneとGoogle Chromeで動作を確認しています。
