Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

オートコンプリート機能の追加 #7

Open
edogawa-itpro opened this issue Aug 19, 2022 · 1 comment
Open

オートコンプリート機能の追加 #7

edogawa-itpro opened this issue Aug 19, 2022 · 1 comment

Comments

@edogawa-itpro
Copy link
Owner

改善内容

フォルダの数が多くなるとドロップダウンで選択する事が煩わしくなる。
補完的な方法としてオートコンプリート機能を追加できないか。

期待する動作

直接入力していくと選択する候補が自動で絞られて表示される。

@edogawa-itpro
Copy link
Owner Author

edogawa-itpro commented Aug 19, 2022

jQuery-UI の autocomplete を使えば良い事は分かるが、
実装していくと幾つかの問題に突き当たる。

  • kintone の編集画面でフィールドのエレメントが取得できない。
  • ドロップダウンの選択との同期を取る必要がある。
  • kintone のフィールドイベントは内部で非同期処理を実行できない。

kintone.app.record.getFieldElement() は編集画面では使えない。(null が返る)
ラベル名を頼りに強引にエレメントを取得する方法があるのでこれを使ってみる。
ただし、ラベルを非表示にされると取得できない。という制限がある。

直接入力で選択肢に存在する場合は、選択状態にする必要がある。
また、その場合は、下位のフォルダ情報も検索する必要がある。
ドロップダウンの選択でも下位フォルダの検索は行っているので二重にならないようにする。

非同期関数を呼び、Promise を返さずイベントを終わらせ事で回避できる。
一時的にメインスレッドとは並列の処理になる。
非同期関数内で kintone.app.record.get/set を使う為には、
await の関数内で必ず非同期処理が実行される事が要件。

結論としては、ラベルを表示した時だけオートコンプリートは機能する。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant