プラグインの設定画面を作成してみよう
前回までに、kintoneプラグインの開発の基本を学びました。
今回はplugin initコマンドを使って、プラグインの設定画面を作成してみましょう。
作成する設定画面について
プラグインを作成してみよう では、入力値をチェックするフィールドをハードコードしていたため、プラグインのメリットを活かしきれていませんでした。
今回は、設定画面のあるプラグインを作成します。
設定画面を作成することで、アプリの管理者が入力値をチェックしたいフィールドを任意に選択できるようにします。
次のような設定画面を作ります。
設定画面の作成
設定画面を作成するために必要なファイルは、次の3種類です。
- 設定画面用HTML
- 設定画面用CSS
- 設定画面用JavaScript
今回はplugin initコマンドで作成したファイルを編集して、設定画面用のファイルを作成していきます。
plugin initコマンドで設定画面のファイルを作成する
plugin initコマンドを実行すると、設定画面用のファイルが自動で作成されます。
plugin initコマンドについては、
plugin init
を参考にしてください。
プラグイン名を「sample_plugin」、テンプレートを「javascript」として、次のコマンドを実行します。
|
|
コマンドを実行すると、質問が順番に表示されるので、次の例を参考に必要な情報を入力してください。
|
|
質問に答えると、次のようなファイル構成で、プラグインのファイルが作成されます。
|
|
設定画面用HTML
作成された設定画面用HTMLを編集して、設定画面を作成します。
「html」の下にある「config.html」の中身をすべて削除し、次のコードを張り付けて保存してください。
|
|
ここでは、「51-modern-default」というスタイルシートが適用されるようにクラス名を設定しています。
51-modern-default
は、UIパーツをkintoneのデザインと調和させるためのスタイルシートです。
ボタンやテキストボックスなどのデザインをkintoneに合わせることができます。
設定している、クラス名やid名の詳細は次のとおりです。
kintoneplugin-から始まるクラス名が、「51-modern-default」を適用しているCSSのクラス名です。settingのクラス名は 設定画面用CSS で使用します。checkvalue-field-から始まるid名は 設定画面用JavaScript で使用します。
設定画面用CSS
「css」ディレクトリの下に、次のcssファイルがあることを確認してください。
- 51-modern-default.css
- config.css
「config.css」の中身をすべて削除し、次のコードを張り付けて保存してください。
|
|
「config.css」ではdiv要素の余白を調整します。
設定画面用JavaScript
設定画面用JavaScriptで、設定画面の動作部分を作成します。
主な機能は次の4つです。
- プラグイン設定情報を取得し、値があればフォームに初期値として表示
- [キャンセル]をクリックすると、設定を取りやめてアプリのプラグイン一覧画面に遷移
- [保存する]をクリックすると、必須チェックと重複チェックを行い、エラーの場合はアラートを表示
- [保存する]をクリックし、必須チェックと重複チェックに問題がなければ、選択した設定を保存してアプリの設定画面に遷移
「js」ディレクトリの下の「config.js」の中身をすべて削除し、次のSTEP1からSTEP5を参考にして設定画面用のコードを作成してください。
STEP1 プラグイン設定情報を取得
保存済みのプラグインの設定情報を
kintone.plugin.app.getConfig(pluginId)
で取得します。
引数のpluginIdはプラグインIDです。
プラグインIDはkintone.$PLUGIN_IDという変数に格納されるため、即時実行関数の引数で受け取って利用します。
今回は、即時実行関数の引数名をPLUGIN_IDとし、作成した「config.js」に次のように記載します。
|
|
STEP2 取得した設定情報をフォームに表示
プラグインの設定情報に値があれば、設定画面のフォームに初期値として表示する処理を作成します。
checkvalue-field-から始まるid名で、フォーム情報を取得します。
プラグインの設定情報に値があれば、初期値としてフォームに値を代入します。
|
|
STEP3 キャンセルボタンの処理
[キャンセル]がクリックされたら、そのアプリのプラグインの一覧画面に遷移する処理を実装します。
アプリのプラグインの一覧画面のパスは/k/admin/app/APP_ID/plugin/です。
APP_IDはkintoneのアプリIDで、
kintone.app.getId()
で取得できます。
|
|
STEP4 保存ボタンの処理
保存ボタンがクリックされたら、フォームで入力された値に対して、次のチェックを行います。
- 必須チェック
未選択なフォームがあれば、入力を促すアラートメッセージを表示。 - 重複チェック
フォームに同じ値が入力された場合、入力の変更を促すアラートメッセージを表示。
また、クロスサイトスクリプティング(XSS)を防ぐためにescapeHtml()という関数を作成し、選択された値をエスケープします。
|
|
STEP5 プラグインの設定情報の保存
チェックに問題がなければ、プラグインの設定情報を保存します。
kintone.plugin.app.setConfig(config, successCallback)
で、入力された情報をプラグインの設定情報に保存できます。
configは保存するプラグインの設定情報で、今回はnewConfigというオブジェクトを指定します。
また、第2引数のsuccessCallbackに、設定の保存が完了したあとに実行したい処理を記載できます。
設定の保存が完了したあとに実行したい処理は、「アプリの設定画面に遷移する」処理です。
アプリの設定画面のパスは/k/admin/app/flow?app=APP_IDです。
|
|
これで、設定画面の動作部分の作成が完了です。
最終的なソースコードは次のとおりです。
|
|
カスタマイズファイルの編集
前回の章で作成した、
カスタマイズファイル
の「desktop.js」でも、入力値をチェックするフィールドコードを、プラグインの設定情報から使うように変更しましょう。
まずは、前回作成した「desktop.js」のコードで、「js」ディレクトリの下の「desktop.js」内のコードを上書きしてください。
プラグインの設定情報の取得には、設定画面で作成した時と同じkintone.plugin.app.getConfig()を使います。
プラグインのIDが格納されたkintone.$PLUGIN_IDを即時実行関数の引数で受け取って利用します。
取得したプラグインの設定情報をconfigに代入し、configの値を使ってフィールドコードを設定するように変更します。
これでフィールドコードをハードコードせずに、プラグインの設定で保存したフィールドコードを利用できるようになりました。
|
|
プラグインをバージョンアップ
設定画面を作成したので、再度パッケージを行い、プラグインをバージョンアップしてみましょう。
manifest.jsonの編集
設定画面のための設定を「manifest.json」に追加していきます。
設定画面を作るために必要なファイルのパスは、configというキーをもつプロパティに追記します。
config.required_paramsというキーには、必須入力にした設定情報のキー名を指定します。
指定しておくと、次のように必須の項目が保存されていない場合に、アプリのプラグイン一覧画面で「必須項目が設定されていません」というメッセージを表示できます。
今回はプラグインの設定情報のキー名をzip tel fax mailと指定します。
また、プラグインをアップデートしたことを示すため、versionを加算します。
|
|
最終的なディレクトリ構成
次のディレクトリ構成になっていることを確認してください。
その他のファイルについては省略しています。
|
|
再パッケージング / アップロード
前回の
プラグインファイルの生成
で入手した秘密鍵ファイルを使って、プラグインを再パッケージングします。
再パッケージする場合は--private-keyオプションに秘密鍵ファイルを指定します。
同じプラグインとして認識されるため、kintoneへ追加するときにプラグインを上書きできます。
|
|
アップロード方法も、前回の
kintoneにプラグインファイルを追加する
と同様にplugin uploadコマンドを使用します。
正常にアップロードされた場合は、kintoneシステム管理のプラグインの画面で、「manifest.json」で加算したバージョンに書き換わっていることを確認できます。
設定画面の動作確認
アプリのアプリ設定画面から、[プラグイン]をクリックします。
今回プラグインに設定画面を追加したので、プラグインには歯車の形をした設定ボタンが表示されています。
歯車の形をしたボタンをクリックすると、設定画面が表示されます。
アプリで設定されているフィールドコードを確認します。
今回利用している
顧客リスト
アプリの場合は、次のとおりです。
| フィールド名 | フィールドコード |
|---|---|
| 郵便番号(数字のみ) | 郵便番号 |
| TEL(数字のみ) | TEL |
| FAX(数字のみ) | FAX |
| メールアドレス | メールアドレス |
設定画面で入力をチェックしたいフィールドコードを入力し、次の動作に問題がないか確認してみましょう。
- [キャンセル]をクリックすると、アプリのプラグインの一覧画面に遷移する。
- 値を入力せずに[保存する]をクリックすると、アラートメッセージが表示される。
- 重複した値を設定して[保存する]をクリックすると、アラートメッセージが表示される。
- すべての値を入力して[保存する]をクリックすると、アプリの設定画面に遷移する。
- 保存後もう一度設定画面を開くと、先ほど設定した値が、フォームに初期値として設定されている。
アプリの動作確認
アプリを開き、設定画面で指定したフィールドに、前回と同様な入力チェック機能が動作しているか確認してみましょう。
補足
より洗練されたUIコンポーネントを使うには
今回作成した設定画面では51-modern-defaultスタイルシートを活用しましたが、さらに洗練されたUIコンポーネントを実装したい場合は、kintone UI Component v1の利用を検討してみてください。
kintone UI Component v1は、kintoneライクなUIパーツを簡単に作ることができるライブラリです。
ボタン、テキストボックス、ドロップダウンなど、kintone標準のUIを忠実に再現したコンポーネントが利用でき、今回作ったような設定画面をより使いやすく美しいものにできます。
詳しくは kintone UI Component v1のページ を確認してください。
まとめ
今回は、アプリの管理者が入力値をチェックしたいフィールドコードを設定画面から任意に入力する方法を学びました。
次回は、
フィールド情報を使った設定画面を作成してみよう
でアプリのフィールド情報を使った設定画面を実装する方法を学びます。
このTipsは、2026年3月版kintoneで動作を確認しています。