概要
編集画面にReferencePropertyEditorを表示タイプ UNIQUE で配置した場合の不具合。
表示タイプが LINK の場合は、この不具合は発生しない。
このPropertyEditorの選択ボタンを押してダイアログを表示し、その後ダイアログを閉じると、編集画面のスクロールバーが非表示となる。
その結果、画面のリロードまたは画面遷移が発生するまで、画面のスクロールができなくなる。
不具合の原因
design.jsにより、画面表示時に選択ボタンのclickイベントが2重に登録されていることが原因。
同じclickイベントが2回実行されることで、ダイアログ表示時の addOverlay() (function.js内)で配列 overlays に同じモーダルが2重に挿入される。
その結果、 removeOverlay() によるスクロール再表示処理が期待通り動作しなくなってしまう。
再現手順
- EntityのDetail Layoutに、ReferencePropertyEditorを表示タイプ
UNIQUE で配置する
- GEMモジュールでEntityの編集画面を開く
- ブラウザのサイズを調整し、編集画面にスクロールバーが表示された状態にする
- ReferencePropertyEditorの選択ボタンを押し、ダイアログを表示する
- ダイアログを閉じる
概要
編集画面にReferencePropertyEditorを表示タイプ
UNIQUEで配置した場合の不具合。表示タイプが
LINKの場合は、この不具合は発生しない。このPropertyEditorの選択ボタンを押してダイアログを表示し、その後ダイアログを閉じると、編集画面のスクロールバーが非表示となる。
その結果、画面のリロードまたは画面遷移が発生するまで、画面のスクロールができなくなる。
不具合の原因
design.jsにより、画面表示時に選択ボタンのclickイベントが2重に登録されていることが原因。
同じclickイベントが2回実行されることで、ダイアログ表示時の
addOverlay()(function.js内)で配列overlaysに同じモーダルが2重に挿入される。その結果、
removeOverlay()によるスクロール再表示処理が期待通り動作しなくなってしまう。再現手順
UNIQUEで配置する