Как установить флажок по умолчанию в CQ5 - программирование
Подтвердить что ты не робот

Как установить флажок по умолчанию в CQ5

Я пытаюсь установить флажок по умолчанию в диалоговом окне компонента при редактировании. Вот свойства в поле:

jcr:primaryType: widget
checked: true (boolean) *Documentation says this determines default checked status
type: checkbox (string) *read this as a fix to making checkbox selections stick
xtype: selection (string)
name: ./foo (string)
fieldValue: true (string)
4b9b3361

Ответ 1

Да, похоже, что документация немного неудобна. Я экспериментировал, и эта комбинация свойств работает для меня:

defaultValue (String) true
fieldLabel (String) Foo Mode
inputValue (String) false
jcr:primaryType (Name) cq:Widget
name (String) ./foomode
type (String) checkbox
xtype (String) selection

По умолчанию свойство defaultValue является ключом.

У вас есть cq: виджет для вашего основного типа, а не виджет, не правда ли?

Ответ 2

Чтобы сохранить это как логическое...

jcr:primaryType="cq:Widget" fieldLabel="check this nodename" name="./nodeName" defaultValue="{Boolean}false" 
type="checkbox" xtype="selection"

<nodeNameHint
  jcr:primaryType="cq:Widget"
      ignoreData="{Boolean}true"
      name="./[email protected]"
      value="Boolean"
  xtype="hidden"/>

Ответ 3

Чтобы установить флажок с установленным по умолчанию значением checked и сохранить свойство как тип свойства Boolean в JCR (а не в String), используйте следующие классические настройки пользовательского интерфейса:

<myCheckbox
    jcr:primaryType="cq:Widget"
    fieldLabel="My Checkbox"
    name="./myCheckbox"
    value="true"
    defaultValue="true"
    checkboxBoolTypeHint="{Boolean}true"
    type="checkbox"
    xtype="selection"/>

Или используйте следующие настройки в интерфейсе интерфейса Granite Touch:

<myCheckbox
    jcr:primaryType="nt:unstructured"
    sling:resourceType="granite/ui/components/foundation/form/checkbox"
    text="My Checkbox"
    name="./myCheckbox"
    value="true"
    checked="true"/>
<myCheckboxType
    jcr:primaryType="nt:unstructured"
    sling:resourceType="granite/ui/components/foundation/form/hidden"
    name="./[email protected]"
    value="Boolean"/>

Там есть подробная запись и демонстрация на http://www.nateyolles.com/blog/2015/11/aem-checkboxes-using-sling-post-servlet.