私は簡単化したいAEMプロジェクトの構成を持っています。カスタムウィジェットを使用せずに、1つのダイアログフィールドを複数のJCRプロパティにマップできますか?
設定は2人のユーザーグループによって変更できます。 1つはパラメータのセットを細かく制御する必要があり、もう1つは単一のパラメータだけを気にする。
フィールドを表示/非表示にするカスタムのExt JSプラグインを作成するのではなく、通常モードと簡易モードを切り替えるための追加フィールドを追加する代わりに、詳細設定にあまり関心がないユーザーのために別のコンポーネントを作成することにしました。私dialog.xml
で
は、フル機能のコンポーネントで、私は次のフィールド持っている:
-
:単純化されたコンポーネントのダイアログで
<field1
jcr:primaryType="cq:Widget"
allowBlank="false"
fieldLabel="Field 1"
name="./field1"
xtype="selection"
type="select"
options="/bin/myapp/fancyOptions.json" />
<field2
jcr:primaryType="cq:Widget"
allowBlank="false"
fieldLabel="Field 2"
name="./field2"
xtype="selection"
type="select"
options="/bin/myapp/fancyOptions.json" />
<field3
jcr:primaryType="cq:Widget"
allowBlank="false"
fieldLabel="Field 3"
name="./field3"
xtype="selection"
type="select"
options="/bin/myapp/fancyOptions.json" />
を、私は単一のフィールドを必要とします
一方フィールドの値が1、フィールド2とフィールド3はフィールドの値から推測する必要があります(この場合は、すべての3つのフィールドが同じ値を持つ必要があります)
私は別のスリングモデルを導入する必要はありませんまたは他のどのAdaptableであっても、コンテンツ構造を一貫して維持して、バックエンドでの消費を容易にしたいと考えています。
- myComponent
- field1
- field2
- field3
別途それらを投稿するカスタムのExt JSウィジェットを作成することなく、コンテンツリポジトリで複数のプロパティにクラシックUIダイアログで一つのフィールドをマップするために離れていますか?私は1つ書くことができましたが、可能ならば避けたいと思います。
他のプロパティ値をコピーするだけですか?リンクは「再使用」という言葉を使用しているように見えるので、「関連する」値を解析したり取得したりすることはできません。 –
@ITGum私がそれを理解する方法では、_properties_を読んだりコピーしたりしません。 JSコードは、Slingドキュメントに記載されている形式に準拠したHTML形式をレンダリングします。そのフォームは、Sling POST Servletにポストされます。このサーブレットは、フィールドを解釈し、提供された値に基づいてプロパティを保存します。私の理解は、指定されたフォームパラメータの値をコピーし、それらをコンテンツリポジトリに格納することです。 – toniedzwiedz