base_list.html.twig 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  1. {#
  2. This file is part of the Sonata package.
  3. (c) Thomas Rabaix <thomas.rabaix@sonata-project.org>
  4. For the full copyright and license information, please view the LICENSE
  5. file that was distributed with this source code.
  6. #}
  7. {% extends base_template %}
  8. {% block actions %}
  9. <div class="sonata-actions">
  10. <ul>
  11. <li class="sonata-action-element"><a href="{{ admin.generateUrl('create') }}">{% trans "link_action_create" from admin.translationdomain %}</a></li>
  12. </ul>
  13. </div>
  14. {% endblock %}
  15. {% block side_menu %}{% if side_menu %}{{ side_menu.render|raw }}{% endif %}{% endblock %}
  16. {% block list_table %}
  17. <<<<<<< HEAD
  18. {% if datagrid.results|length > 0 %}
  19. <form action="{{ admin.generateUrl('batch') }}" method="POST" >
  20. <table>
  21. {% block table_header %}
  22. =======
  23. <form action="{{ admin.generateUrl('batch') }}" method="POST" >
  24. <table>
  25. {% block table_header %}
  26. <tr>
  27. {% for field_description in list.elements %}
  28. {% if field_description.getOption('code') == '_batch' %}
  29. <th class="sonata-ba-list-field-header sonata-ba-list-field-header-batch"><input type="checkbox" id="list_batch_checkbox" /></th>
  30. {% else %}
  31. {% spaceless %}<th class="sonata-ba-list-field-header sonata-ba-list-field-header-{{ field_description.type}}">
  32. {% if field_description.options.name is defined %}
  33. {% trans field_description.options.name from admin.translationdomain %}
  34. {% else %}
  35. {% trans field_description.name from admin.translationdomain %}
  36. {% endif %}
  37. </th>{% endspaceless %}
  38. {% endif %}
  39. {% endfor %}
  40. </tr>
  41. {% endblock %}
  42. {% block table_body %}
  43. {% for object in datagrid.results %}
  44. >>>>>>> first implementation for delete in view list
  45. <tr>
  46. {% for field_description in list.elements %}
  47. {% if field_description.getOption('code') == '_batch' %}
  48. <th class="sonata-ba-list-field-header sonata-ba-list-field-header-batch">
  49. <input type="checkbox" id="list_batch_checkbox" />
  50. </th>
  51. {% else %}
  52. {% spaceless %}<th class="sonata-ba-list-field-header sonata-ba-list-field-header-{{ field_description.type}}">
  53. {% if field_description.options.name is defined %}
  54. {% trans field_description.options.name from admin.translationdomain %}
  55. {% else %}
  56. {% trans field_description.name from admin.translationdomain %}
  57. {% endif %}
  58. </th>{% endspaceless %}
  59. {% endif %}
  60. {% endfor %}
  61. <td>
  62. <a href="{{ admin.generateUrl('delete', {'id': object.id}) }}" class="delete_link">
  63. <img src="{{ asset('bundles/sonataadmin/famfamfam/delete.png') }}" alt="{% trans 'list_delete' from 'AdminBundle' %}" title="{% trans 'list_delete' from 'AdminBundle' %}" />
  64. </a>
  65. </td>
  66. </tr>
  67. {% endblock %}
  68. {% block table_body %}
  69. {% for object in datagrid.results %}
  70. <tr>
  71. {% for field_description in list.elements %}
  72. {{ object|render_list_element(field_description) }}
  73. {% endfor %}
  74. </tr>
  75. {% endfor %}
  76. {% endblock %}
  77. {% block table_footer %}
  78. {% if datagrid.pager.haveToPaginate() %}
  79. <tr>
  80. <td colspan="{{ list.elements|length }}" class="pager">
  81. <ul>
  82. {% if datagrid.pager.page != datagrid.pager.previouspage %}
  83. <li><a href="{{ admin.generateUrl('list', datagrid.values|merge({'page': datagrid.pager.previouspage})) }}">{% trans 'link_previous_pager' from 'AdminBundle' %}</a></li>
  84. {% endif %}
  85. {# Set the number of pages to display in the pager #}
  86. {% for page in datagrid.pager.getLinks(5) %}
  87. {% if page == datagrid.pager.page %}
  88. <li>{{ page }}</li>
  89. {% else %}
  90. <li><a href="{{ admin.generateUrl('list', datagrid.values|merge({'page': page})) }}">{{ page }}</a></li>
  91. {% endif %}
  92. {% endfor %}
  93. {% if datagrid.pager.page != datagrid.pager.nextpage %}
  94. <li><a href="{{ admin.generateUrl('list', datagrid.values|merge({'page': datagrid.pager.nextpage})) }}">{% trans 'link_next_pager' from 'AdminBundle' %}</a></li>
  95. {% endif %}
  96. </ul>
  97. </td>
  98. </tr>
  99. {% endif %}
  100. {% endblock %}
  101. </table>
  102. <script type="text/javascript">
  103. jQuery(document).ready(function($){
  104. $('#list_batch_checkbox').click(function(){
  105. $(this).closest('table').find("td input[type='checkbox']").attr('checked', $(this).is(':checked'));
  106. });
  107. $('.delete_link').click(function(e){
  108. if (!confirm('{% trans 'confirm_msg' from 'AdminBundle' %}')) e.preventDefault();
  109. });
  110. });
  111. </script>
  112. <div class="sonata-ba-list-actions">
  113. <select name="action">
  114. {% for action, label in admin.batchactions %}
  115. <option value="{{ action }}">{{ label }}</option>
  116. {% endfor %}
  117. </select>
  118. <input type="submit" value="{% trans 'btn_batch' from 'AdminBundle' %}" />
  119. </div>
  120. </form>
  121. {% else %}
  122. <p class="notice">
  123. {% trans 'no_result' from 'AdminBundle' %}
  124. </p>
  125. {% endif %}
  126. {% endblock %}
  127. {% block list_filters %}
  128. {% if datagrid.filters %}
  129. <form action="{{ admin.generateUrl('list') }}" method="GET">
  130. {% for filter in datagrid.filters %}
  131. <div>
  132. {{ filter|render_filter_element }}</td>
  133. </div>
  134. {% endfor %}
  135. <input type="submit" value="{% trans 'btn_filter' from 'AdminBundle' %}" />
  136. <a href="{{ admin.generateUrl('list') }}">{% trans 'link_reset_filter' from 'AdminBundle' %}</a>
  137. </form>
  138. {% endif %}
  139. {% endblock %}