前回までに、kintoneプラグインの開発の基本や、便利ツールの使い方を学びました。
今回からは、プラグインの設定画面を作成してみましょう。
作成する設定画面について
プラグインを作成してみよう では、入力値をチェックするフィールドをハードコードしていたため、プラグインのメリットを活かしきれていませんでした。
今回は、前回作成したプラグインに設定画面を作成します。
設定画面を作成することで、アプリの管理者が入力値をチェックしたいフィールドを任意に選択できるようにします。
次のような設定画面を作ります。
設定画面の作成
新たに設定画面を作成するために必要なファイルは、次の3種類です。
- 設定画面用HTML
- 設定画面用CSS
- 設定画面用JavaScript
ひとつずつファイルを作成しながら、プラグインの設定画面を作る際のポイントを確認していきましょう。
設定画面用HTML
設定画面のHTMLを配置するため、「sample-plugin」の下に、「html」ディレクトリを作成します。
|
|
次に、入力値をチェックしたいフィールドコードを、テキストボックスで入力できるようにHTMLファイルを作成します。
ファイル名は「config.html」とし、「html」ディレクトリの下に保存します。
設定画面用HTMLファイルにはbody内のHTML要素だけを記述します。
|
|
ここでは、「51-modern-default」というスタイルシートが適用されるようにクラス名を設定しています。
51-modern-default
は、UIパーツをkintoneのデザインと調和させるためのスタイルシートです。
ボタンやテキストボックスなどのデザインをkintoneに合わせることができます。
設定している、クラス名やid名の詳細は次のとおりです。
kintoneplugin-から始まるクラス名が、「51-modern-default」を適用しているCSSのクラス名です。settingのクラス名は 設定画面用CSS で使用します。checkvalue-field-から始まるid名は 設定画面用JavaScript で使用します。
設定画面用CSS
設定画面のCSSを配置するため、「sample-plugin」の下に「css」ディレクトリを作成します。
|
|
次に、設定画面を装飾するために2つのCSSを準備します。
-
51-modern-default.css
ファイルをダウンロードする方法は、 51-modern-default.cssのダウンロード を参照してください。 -
独自に実装するCSS
1 2 3.setting { padding: 0 0 20px 0; }ファイル名を「config.css」として保存します。
「config.css」ではdiv要素の余白を調整します。
「51-modern-default.css」と「config.css」を「css」ディレクトリの下に保存します。
設定画面用JavaScript
設定画面用JavaScriptで、設定画面の動作部分を作成します。
主な機能は次の4つです。
- プラグイン設定情報を取得し、値があればフォームに初期値として表示
- [キャンセル]をクリックすると、設定を取りやめてアプリのプラグイン一覧画面に遷移
- [保存する]をクリックすると、必須チェックと重複チェックを行い、エラーの場合はアラートを表示
- [保存する]をクリックし、必須チェックと重複チェックに問題がなければ、選択した設定を保存してアプリの設定画面に遷移
ファイル名を「config.js」とし、「js」ディレクトリの下に保存します。
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」でも、入力値をチェックするフィールドコードを、プラグインの設定情報から使うように変更しましょう。
プラグインの設定情報の取得には、設定画面で作成した時と同じkintone.plugin.app.getConfig()を使います。
プラグインのIDが格納されたkintone.$PLUGIN_IDを即時実行関数の引数で受け取って利用します。
取得したプラグインの設定情報をconfigに代入し、configの値を使ってフィールドコードを設定するように変更します。
これでフィールドコードをハードコードせずに、プラグインの設定で保存したフィールドコードを利用できるようになりました。
|
|
プラグインをバージョンアップ
設定画面を作成したので、再度パッケージを行い、プラグインをバージョンアップしてみましょう。
manifest.jsonの編集
設定画面のための設定を「manifest.json」に追加していきます。
設定画面を作るために必要なファイルのパスは、configというキーをもつプロパティに追記します。
config.required_paramsというキーには、必須入力にした設定情報のキー名を指定します。
指定しておくと、次のように必須の項目が保存されていない場合に、アプリのプラグイン一覧画面で「必須項目が設定されていません」というメッセージを表示できます。
今回はプラグインの設定情報のキー名をzip tel fax mailと指定します。
また、プラグインをアップデートしたことを示すため、versionを加算します。
|
|
最終的なディレクトリ構成
次のディレクトリ構成になっていることを確認してください。
|
|
再パッケージング / アップロード
前回の プラグインファイルの生成 で入手した秘密鍵ファイルを使って、プラグインを再パッケージングします。
今回も、plugin-packerを使ってパッケージします。
コマンドは
プラグインファイルの生成
と同じです。
再パッケージする場合は--ppkオプションに秘密鍵ファイルを指定します。
同じプラグインとして認識されるため、kintoneへ追加するときにプラグインを上書きできます。
|
|
アップロード方法も、前回と同様plugin-uploaderを使用します。
正常にアップロードされた場合は、kintoneシステム管理のプラグインの画面で、「manifest.json」で加算したバージョンに書き換わっていることを確認できます。
設定画面の動作確認
アプリのアプリ設定画面から、[プラグイン]をクリックします。
今回プラグインに設定画面を追加したので、プラグインには歯車の形をした設定ボタンが表示されています。
歯車の形をしたボタンをクリックすると、設定画面が表示されます。
アプリで設定されているフィールドコードを確認します。
今回利用している
顧客リスト
アプリの場合は、次のとおりです。
| フィールド名 | フィールドコード |
|---|---|
| 郵便番号(数字のみ) | 郵便番号 |
| TEL(数字のみ) | TEL |
| FAX(数字のみ) | FAX |
| メールアドレス | メールアドレス |
設定画面で入力をチェックしたいフィールドコードを入力し、次の動作に問題がないか確認してみましょう。
- [キャンセル]をクリックすると、アプリのプラグインの一覧画面に遷移する。
- 値を入力せずに[保存する]をクリックすると、アラートメッセージが表示される。
- 重複した値を設定して[保存する]をクリックすると、アラートメッセージが表示される。
- すべての値を入力して[保存する]をクリックすると、アプリの設定画面に遷移する。
- 保存後もう一度設定画面を開くと、先ほど設定した値が、フォームに初期値として設定されている。
アプリの動作確認
アプリを開き、設定画面で指定したフィールドに、前回と同様な入力チェック機能が動作しているか確認してみましょう。
まとめ
今回は、アプリの管理者が入力値をチェックしたいフィールドコードを設定画面から任意に入力する方法を学びました。
次回は、
フィールド情報を使った設定画面を作成してみよう
でアプリのフィールド情報を使った設定画面を実装する方法を学びます。
このTipsは、2024年4月版kintoneで動作を確認しています。