はじめに
kintoneのスペーストップ画面は、「お知らせ」欄にスペースの説明を表示したり、アプリを貼り付けてレコードの一覧を表示するなど、使用用途に合わせて自由に設定できます。
さらにスペースをカスタマイズするAPIを使うと、ポータルカスタマイズのように文字を表示したり、ボタンを設置したりできます。
本記事では、kintone JavaScript APIのスペースAPIを使った簡単なkintoneカスタマイズを紹介します。
スペースAPIでできること
スペースAPIを使うことで、ボタンを設置したり、リンクを動的に設置するなどのカスタマイズができます。
スペース系API
スペースに関するJavaScript APIは2021年10月現在、以下のものがあります。
完成イメージ
スペースの上側部分に出勤・退勤ボタンを設置します。
それぞれのボタンを押すと、タイムカードアプリにレコードが追加・更新されます。
JavaScriptを利用したスペースのカスタマイズ方法
このTipsのカスタマイズは、kintone全体にカスタマイズを適用します。
そのため、kintoneシステム管理者の権限が必要です。
下準備
-
kintoneのポータル画面からスペースを作成します。
- 作成するスペースは、「スペースのポータルと複数にスレッドを使用する」を有効にしてください。
- JavaScriptカスタマイズで使用するため、作成したスペースIDを控えておきます。
スペースIDは、ブラウザーでスペースを表示した際のURLで確認できます。
以下のURLの場合、スペースIDは8です。
https://{subdomain}.cubozu.com/k/#/space/8
-
1. で作成したスペース内にタイムカードアプリを作成します。
- タイムカードアプリ は、kintoneアプリストアから追加してください。
- タイムカードアプリのフィールド「承認者」を次のように設定します。
- 「必須項目にする」のチェックを外す。
- JavaScriptカスタマイズで使用するため、作成したアプリIDを控えておきます。
アプリIDは、ブラウザーでアプリを表示した際のURLで確認できます。
以下のURLの場合、アプリIDは245です。
https://{subdomain}.cybozu.com/k/245/
ライブラリの入手
-
kintone UI Component v1.1.1
ファイルは https://github.com/kintone-labs/kintone-ui-component/releases/tag/v1.1.1 よりダウンロードしてください。- 「Assets」の「kintone-ui-component-1.1.1.tgz」をダウンロードします。
- アーカイブファイルを解凍し、「umd」ディレクトリ下のkuc.min.jsを利用します。
-
Luxon v2.0.2
Cybozu CDNで配信されている Luxon を使用します。
本記事では、2021年10月8日時点でのCybozu CDNで配信されている最新バージョンのURLで動作を確認しています。
Luxonを導入する際は、 Cybozu CDNのページで配信されているバージョン を確認し、必要に応じて変更してください。 -
SweetAlert2 v11.1.7
ファイルは https://github.com/sweetalert2/sweetalert2/releases/tag/v11.1.7 よりダウンロードしてください。
「Assets」の「sweetalert2.min.js」と「sweetalert2.min.css」を利用します。
カスタマイズ例:スペースの上部に出勤・退勤ボタンを設置する
それではさっそく、スペースの上側に出勤・退勤ボタンを設置し、タイムカードアプリに登録するカスタマイズをしていきましょう。
kintoneへのカスタマイズ適用
スペースのカスタマイズは、kintoneシステム管理画面から行います。
詳しい設定方法については、kintoneヘルプ「
JavaScript / CSSファイルを取り込む
」を確認してください。
設定は以下のようになります。
-
PC用のJavaScriptファイル
- https://js.cybozu.com/luxon/2.0.2/luxon.min.js
- sweetalert2.min.js
- kuc.min.js
- sample.js
-
PC用のCSSファイル
- sweetalert2.min.css
- sample.css
サンプルコード
sample.js
出勤・退勤ボタンを設置し、ボタンを押したときにタイムカードアプリへレコードを追加・更新するためのスクリプトファイルです。
ご自身の環境に応じてつぎのとおり内容を変更してください。
- 12行目
{YOUR_CUSTOM_SPACE_ID}
:「下準備1.」で控えたスペースIDに変更 - 13行目
{TIMECARD_APP_ID}
:「下準備2.」で控えたタイムカードアプリのIDに変更
|
|
sample.css
出勤・退勤ボタンの表示位置を調整するためのCSSです。
|
|
JavaScriptカスタマイズのポイント
11〜14行目
スペース表示イベントが実行されたときに、ボタンを表示したいスペースかどうかをスペースIDで判断します。
スペースカスタマイズではkintone全体にカスタマイズを適用しているため、if文を使ってボタンの表示/非表示を切り替えています。
30〜56行目
スペースの上側の空白要素を取得し、今日の日付と出勤・退勤ボタンをセットしています。
出勤・退勤ボタンは、kintone UI Component v1を利用してkintoneライクなボタンを設置しています。
61〜62行目
Luxonを使って、出勤ボタンを押したときの時間を時刻フィールドの書式にフォーマットしています。
135〜153行目
出勤ボタンを押し忘れて退勤ボタンだけを押した場合、退勤時刻のみ登録されます。
ユーザーに出勤時刻を登録してもらうようにメッセージを追加しています。
ボタンを押したあとに表示されるメッセージはSweetAlert2を使用して表示しています。
おわりに
スペースAPIを使って、出退勤のボタンを設置するカスタマイズを紹介しました。
部署やグループごとでスペースを使い分けて、出退勤を管理したいシーンにおすすめです。
cybozu developer networkでは
ポータルの上部に出勤・退勤ボタンを設置するカスタマイズ
も紹介しています。
スペースAPIを活用して、お好みのスペースカスタマイズをお試しください。
このTipsは、2021年10月版kintoneで動作を確認しています。