はじめに
本記事では、レコード一覧画面にボタンを配置する方法を説明します。
また、一覧画面のカスタマイズで発生しやすい増殖バグの防ぎ方も合わせて紹介します。
動作イメージ
このカスタマイズを適用すると、レコード一覧画面のメニューの右側部分にボタンが表示されます。
ボタンをクリックすると、ダイアログが表示されます。
カスタマイズを適用するアプリ
アプリストアの 顧客リスト を選択し、サンプルデータを含めるにチェックを入れ、アプリを作成します。
サンプルコード
次のJavaScriptのコードを「sample.js」という名前で保存し、「JavaScript/CSSでカスタマイズ」に追加します。
|
|
サンプルコードの解説
ボタンをレコード一覧画面に配置したい場合、次の流れで処理を実装します。
- ボタンのHTML要素を作成する。
- ボタンをクリックしたときの処理を実装する。
- kintone JavaScript APIを使って、レコード一覧画面のメニューの右側の要素を取得する。
- 取得した要素にボタンを配置する。
- ボタンの増殖バグを防ぐ。
このカスタマイズのポイントは次の3つです。
- ボタンのHTML要素を作成する。
- レコード一覧画面のメニューの右側の要素を取得し、ボタンを配置する。
- ボタンの増殖バグを防ぐ。
ボタンのHTML要素を作成する
まずはdocument.createElement()
メソッドを利用してボタン要素を作成します。
作成したボタン要素にmenu_button
という名前の、id属性を付与します。
id属性は
ボタンの増殖バグを防ぐ
で利用します。
また、onclick
イベントを設定し、クリックしたらダイアログが表示されるようにイベントを登録します。
|
|
レコード一覧画面のメニューの右側の要素を取得しボタンを配置する
レコード一覧画面のメニューの右側の要素を取得するには、kintone JavaScript APIの
kintone.app.getHeaderMenuSpaceElement()
を利用します。
続けて、appendChild()
メソッドを使って、取得した要素にボタンを配置します。
|
|
警告
kintoneで使われているidやclass属性は、予告なく変更されます。
kintone内の要素を取得する場合は、DOM操作をしないで、kintone.app.getHeaderMenuSpaceElement()
のようなkintone JavaScript APIを利用するようにしましょう。
詳細は
kintoneで使われているidやclass属性
を確認してください。
ボタンの増殖バグを防ぐ
カラムソートやページ送りをした場合、レコード一覧画面を表示した後のイベントapp.record.index.show
が実行されます。
そのため、カラムソートやページ送りをする度にボタン作成の処理も実行されてしまい、ボタンの増殖バグが発生してしまいます。
ボタンの増殖バグを防ぐためには、ボタン作成時に付与したmenu_button
のid属性を使い、ボタンの有無を判別します。
すでにボタンが存在している場合は、ボタン作成処理を終了させます。
|
|
まとめ
本記事では、レコード一覧画面にボタンを配置する方法を紹介しました。
今回紹介したカスタマイズは、利用する機会が多いため、ぜひお試しください。
このTipsは、2024年6月版kintoneで動作を確認しています。