Modal window for edit model in Sonata Admin
Manually you can do it yourself.
Add in your config service
calls: - [ setTemplate, [list, AcmeYourBundle:Your:base_list.html.twig]] - [ setTemplate, [edit, AcmeYourBundle:Your:base_edit.html.twig]]
In your admin bundle add custom templete in configureListFields
protected function configureListFields(ListMapper $listMapper) { $listMapper ->add('_action', 'actions', array( 'actions' => array( 'edit' => array('template' => 'AcmeYourBundle:Your:_action_edit.html.twig'), ) )); }
_action_edit.html.twig
{% if admin.hasRoute('edit') and admin.id(object) and admin.isGranted('EDIT', object)%} <a class="edit sonata-action-element" href="{{ admin.generateObjectUrl('edit', object) }}"> <i class="fa fa-edit"></i> {{ 'link_action_edit'|trans({}, 'SonataAdminBundle') }} </a> {% endif %}
Add javascript code in base_list.html.twig
<script type="text/javascript"> $(document).ready(function() { $('a.edit').click(function() { //bind handlers var url = $(this).attr('href'); showDialog(url); return false; }); $("#targetDiv").dialog({ autoOpen: false, height: 700, width: 950, modal: true }); function showDialog(url) { $("#targetDiv").load(url); $("#targetDiv").dialog("open"); } }); </script>
Done ! Enjoy it.