Przejdź do głównej treści

Przycisk menu na toolbarze utworzony poprzez mechanizm custom widget

Ready_™ Developer TeamMniej niż 1 minuta

Zadaniem tej funkcji jest umożliwić dodanie menu rozwijanego poprzez mechanizm custom widget.

Zdarza się czasami, że liczba opcji dla danego modułu jest na tyle duża (7+), że nie mieści się na pasku zadań.

Grupowanie przycisków w CustomModule

Bezpośrednio w pliku CustomModule.xml możemy grupować przyciski i jest to dobra opcja!

Przykład grupowania przycisków w pliku CustomModule.xml
<button>
    <id>pdf2</id>
    <label>Twój label</label>
    <dscrpt>PDF</dscrpt>
    <icon>pdf.png</icon>
    <buttons>
        <button>
            <id>new</id>
            <label>Nowy</label>
            <dscrpt>Nowy dokument zapotrzebowania</dscrpt>
            <onclick>
                App.openDialogByCls('DOCUMENT', null, ({afterSubmit:'{AFTER_SUBMIT}',dctptp:'Demand', mode:'new'}).toJSONString())
            </onclick>
            <icon>new.png</icon>
        </button>
        <button>
            <custom_widget>2</custom_widget>
        </button>
        <button>
            <id>refresh20</id>
            <label>Od&#x15B;wie&#x17C;</label>
            <dscrpt>Od&#x15B;wie&#x17C;</dscrpt>
            <onclick>
                {AFTER_SUBMIT}{REFRESH_FILTERS}
            </onclick>
            <icon>refresh.png</icon>
        </button>
        <button>
            <custom_widget>
                38
            </custom_widget>
        </button>
    </buttons>
</button>

Z pomocą przychodzi nowa opcje, która obejmuje oba te przypadki.

Aby z niej skorzystać należy zdefiniować custom widget poprzez panel sterowania.

JavaScript Menu As Custom Widget
:no-zoom

Pamiętaj aby jako typ wybrać "przycisk otwierający menu".

Jeśli Twój widget będzie obsługiwał customowy moduł to pamiętaj aby po zapisaniu widgeta ponownie go otworzyć i wpisać nadany identyfikator jako

custom/ID z listy w moim przypadku to 66

W definicji CustomModule.xml dodajemy wpis

<buttons>
    <button>
        <custom_widget>
            66
        </custom_widget>
    </button>
</buttons>

W załączeniu podano przykład menu z obsługą żądania asynchronicznego oraz przekazanego (zaznaczonego) wiersza z listy.

Załączniki

CustomJSMenu.inc