AEM 6.5 Предварительно заполнить поле fileUpload изображения в диалоге cq - PullRequest
0 голосов
/ 26 марта 2020

Новичок в AEM, я пытаюсь программно заполнить зону сброса изображения fileUpload и беззвучно запускает событие удаления, как если бы пользователь вручную перетаскивал на него актив изображения. Есть ли способ сделать это?

Скажем, у меня есть cq_dialog с двумя полями изображения fileUpload (установлен без загрузки, допускается только сброс из ресурса), одно уже было заполнено ранее, другое пусто. При загрузке диалога я хочу заполнить пустой ресурс изображения из заполненного по умолчанию.

Фрагменты cq_dialog выглядят так:

            <imageontopWrap
                jcr:primaryType="nt:unstructured"
                sling:resourceType="granite/ui/components/foundation/container"
                class="layout-showhide-targets"
                showhidetargetvalue="imageontop">
                <items jcr:primaryType="nt:unstructured">
                    <image1
                        jcr:primaryType="nt:unstructured"
                        sling:resourceType="cq/gui/components/authoring/dialog/fileupload"
                        autoStart="{Boolean}false"
                        allowUpload="{Boolean}false"
                        class="cq-droptarget"
                        fieldLabel="Image Asset"
                        fileReferenceParameter="./myImageTopPath"
                        mimeTypes="[image]"
                        multiple="{Boolean}false"
                        name="./myImageTop"
                        title="Upload Image Asset"
                        useHTML5="{Boolean}true"/>
                    <altText1
                        jcr:primaryType="nt:unstructured"
                        sling:resourceType="granite/ui/components/foundation/form/textfield"
                        fieldLabel="Alt Text"
                        name="./myImageTopAltText"/>
                </items>
            </imageontopWrap>
            <imageonleftWrap
                jcr:primaryType="nt:unstructured"
                sling:resourceType="granite/ui/components/foundation/container"
                class="layout-showhide-targets"
                showhidetargetvalue="imageonleft">
                <items jcr:primaryType="nt:unstructured">
                    <image2
                        jcr:primaryType="nt:unstructured"
                        sling:resourceType="cq/gui/components/authoring/dialog/fileupload"
                        autoStart="{Boolean}false"
                        allowUpload="{Boolean}false"
                        class="cq-droptarget"
                        fieldLabel="Image Asset"
                        fileReferenceParameter="./myImageLeftPath"
                        mimeTypes="[image]"
                        multiple="{Boolean}false"
                        name="./myImageLeft"
                        title="Upload Image Asset"
                        useHTML5="{Boolean}true"/>
                    <altText2
                        jcr:primaryType="nt:unstructured"
                        sling:resourceType="granite/ui/components/foundation/form/textfield"
                        fieldLabel="Alt Text"
                        name="./myImageLeftAltText"/>
                </items>
            </imageonleftWrap>

Я создал clientLib для этого cq_dialog, просто не был уверен, что коды js копируют ссылку на изображение и запускают сброс, используя скрипт. Любая помощь очень ценится.

1 Ответ

0 голосов
/ 26 марта 2020

Вот механизм, через который вы можете достичь того, что вам нужно, я надеюсь. Я не уверен насчет точного кода js, хотя для этого вам нужно поискать в гугл-листах.

  1. При загрузке диалога сохраните ссылку на первый контейнер отбрасывания изображений в js переменная.
  2. Затем найдите путь к изображению, которое сохраняется / создается в первом контейнере изображения.
  3. Заполните тот же путь во втором пути удаления изображения.

Как я уже сказал, выше - просто механизм, помогающий вам в достижении ваших требований.

...