trilbymedia / grav-plugin-flex-objects

Powerful and supremely flexible object support for Grav
MIT License
38 stars 10 forks source link

Dropdown custom modal in admin not working when in edit page view. #181

Open n-vs-m opened 7 months ago

n-vs-m commented 7 months ago

See this discussion: https://github.com/getgrav/grav-plugin-admin/issues/2259

A custom modal button made like explained in the doc is not working when you are in edit page view. The button is displayed, but when you click on it a JS error prints.

admin.min.js?59588e338c:683 Uncaught TypeError: Cannot read properties of undefined (reading 'open')
    at HTMLAnchorElement.<anonymous> (admin.min.js?59588e338c:683:56)
    at HTMLDocument.dispatch (jquery-2.x.min.js?59588e338c:3:7537)
    at r.handle (jquery-2.x.min.js?59588e338c:3:5620)

It seems the file https://github.com/trilbymedia/grav-plugin-flex-objects/blob/develop/admin/templates/flex-objects/types/pages/edit.html.twig is missing some definition.

Adding a few lines before the closing if at the line 212 https://github.com/trilbymedia/grav-plugin-flex-objects/blob/f2a044ab813198108f677b3b4844d6696dda9161/admin/templates/flex-objects/types/pages/edit.html.twig#L210-L215

seems to work, here are the lines:

       {% for key, add_modal in config.plugins.admin.add_modals %}
          <div class="remodal {{ add_modal.modal_classes|defined('') }}" data-remodal-id="modal-add_modal-{{ key }}" data-remodal-options="hashTracking: false, closeOnOutsideClick: false">
            {% include add_modal.template|defined('partials/blueprints-new.html.twig') with {
              form: null,
              blueprints: admin.blueprints(add_modal.blueprint),
              data: null,
              form_id: 'add-modal'
            }|merge(add_modal.with|defined({})) %}
          </div>
        {% endfor %}

Sorry i can't make a proper PR as git is not configured on my grav.

hughbris commented 7 months ago

This worked a treat when I hacked the plugin, so thank you! I was trying to add it to my site repo as an override so I don't have to use a hacked plugin, but couldn't seem to find the right location. It works to override form plugin templates. I have tried:

but neither seemed to work. Any idea where I might put this modified template to get it working?

n-vs-m commented 7 months ago

I didn't find any suited user directory...

Xoriander commented 4 months ago

It is possible to override the edit.html.twig from a theme folder:

Thank you for the lines to make the custom modal working on edit page view.