2016-07-05 20 views
0

Ich habe versucht, einige Felder zu folder settings hinzuzufügen.AEM 6.2 Hinzufügen neuer Felder zu Ordnereinstellungen, aber Daten werden nicht gespeichert

Dazu habe ich die Datei "/ libs/dam/gui/content/assets/foldersharewizard" in meinen Apps überlagert. Eine neue Registerkarte und zwei neue Kontrollkästchen wurden hinzugefügt. Die neue Registerkarte und die neuen Felder werden angezeigt. Ihre Werte werden jedoch weder im Ordner node noch in jcr gespeichert. Ich habe versucht, Standardfelder zu ändern und wenn ich Namen ändere, höre ich einfach auf zu arbeiten.

Hier meine zusätzlichen Code in foldersharewizard ist:

<tab5 
    jcr:primaryType="nt:unstructured" 
    jcr:title="Tab title" 
    sling:resourceType="granite/ui/components/foundation/container"> 
<items jcr:primaryType="nt:unstructured"> 
    <editDeny 
      jcr:primaryType="nt:unstructured" 
      sling:resourceType="granite/ui/components/foundation/form/checkbox" 
      id="editDeny" 
      name="custom:deniedEdit" 
      text="Hide edit" 
      value="{Boolean}true"/> 
    <delAllow 
      jcr:primaryType="nt:unstructured" 
      sling:resourceType="granite/ui/components/foundation/form/checkbox" 
      id="delAllow" 
      name="custom:allowedDel" 
      text="Show delete" 
      value="{Boolean}true"/> 
</items> 

Als Dokumentation AEM ist meistens Mist und nicht viele Entwickler Kommentare im Internet ... Ich bin Ideen aus, und wenn Jeder von euch hat mit dem gleichen Problem gekämpft oder weiß, was ich vermisse, es wäre großartig.

Alles andere, was Sie gerne einfügen würden ... aber das ist nur mein addierter Code.

Vielen Dank.

Antwort

0
<operation jcr:primaryType="nt:unstructured" 
sling:resourceType="granite/ui/components/foundation/form/hidden" 
name=":operation" 
value="custom.dam.share.folder"/> 

hatte diesen Knoten zu überlagern eine benutzerdefinierte Nachbetriebszeit

@Component(metatype = false) 
@Service 
@Properties({@Property(name = "sling.post.operation", value = {"custom.dam.share.folder"}), @Property(name = "sling.servlet.methods", value = {"POST"})}) 
public class CustomFolderShareHandler implements PostOperation { 

    @Reference(target = "(sling.post.operation=dam.share.folder)") 
    PostOperation folderShareHandler; 

    @Override 
    public void run(SlingHttpServletRequest request, PostResponse response, SlingPostProcessor[] processors) { 
     folderShareHandler.run(request, response, processors); 
     // DO CUSTOM STUFF 
    } 
} 
0

Ich denke, das liegt daran, dass Wert ein String-Datentyp ist - wenn Sie den Wert als boolean speichern möchten, verwenden Sie ein typehint Feld:

<editDeny 
 
    jcr:primaryType="nt:unstructured" 
 
    sling:resourceType="granite/ui/components/foundation/form/checkbox" 
 
    id="editDeny" 
 
    name="custom:deniedEdit" 
 
    text="Hide edit" 
 
    value="{Boolean}true"/> 
 
<editDenyType 
 
    jcr:primaryType="nt:unstructured" 
 
    sling:resourceType="granite/ui/components/foundation/form/hidden" 
 
    name="custom:[email protected]" 
 
    value="Boolean"/>

+0

ich viele Kombinationen versucht zu nennen, von denen nur eine zufällige Zeichenfolge im Wert und es hat weder nicht. – ch0ke

0

Vergewissern Sie sich, den richtigen Knoten gemäß folgenden Struktur überschichtet: /apps/dam/gui/content/assets/foldersharewizard/jcr: content/Körper/content/Artikel/foldersettings/Artikel/Einstellungen/Artikel/rechts/Artikel/tab5