{% macro configuration(dataTable) %} {{ _self.data_table_column_modal(dataTable.getTableName(), dataTable.getColumns()) }} {% endmacro %} {% macro header(dataTable) %} {{ _self.datatable_header(dataTable.getTableName(), dataTable.getColumns(), dataTable.getQuery(), dataTable.getOptions()) }} {% endmacro %} {% macro footer(dataTable) %} {{ _self.data_table_footer(dataTable.getPagination(), dataTable.getPaginationRoute(), dataTable.getBatchForm()) }} {% endmacro %} {% macro class(dataTable, column) %} {{- datatable_column_class(dataTable.getTableName(), column) -}} {% endmacro %} {# compare templates/page_setup.html.twig block table_actions #} {% macro actions(dataTable) %}
{% if dataTable.hasConfiguration() %} {{ icon('columns', true) }} {% endif %} {% set form = dataTable.getSearchForm() %} {% if form is not null %} {% form_theme form 'form/search.html.twig' %} {% form_theme form.order 'form/vertical.html.twig' %} {{ form_start(form, {'attr': {'class': 'searchform'}}) }} {% set searchTerm = form_widget(form.searchTerm) %} {% set orderHasError = form.orderBy.vars.errors|length > 0 or form.order.vars.errors|length > 0 %} {% set orderBy = form_widget(form.orderBy) %} {% set order = form_widget(form.order) %} {% set filterCount = dataTable.getQuery().countFilter() %} {{ form_end(form) }} {% endif %}
{% endmacro %} {% macro data_table_column_modal(name, columns) %} {% set visibility = initialize_datatable(app.user, app.session, name, columns) %} {% endmacro %} {% macro datatable_header(tableName, columns, query, options) %} {% set visibility = initialize_datatable(app.user, app.session, tableName, columns) %} {% if query is not null %} {% set orderBy = options.orderBy|default(query.orderBy) %} {% set order = query.order|lower %} {% else %} {% set orderBy = false %} {% set order = false %} {% endif %} {% set reloadEvent = options.reload|default('') %} {% set boxClass = options.boxClass ?? 'card data_table' %} {% set columnModal = options.columnConfig ?? true %} {% set responsive = options.responsive ?? false %} {% set sticky = options.sticky ?? true %} {% set contextMenuId = options.contextMenuId is defined ? options.contextMenuId : 'datatable_' ~ tableName ~ '_contextmenu' %}
{%- for title, headerOptions in columns -%} {% set isActions = title is not empty and title == 'actions' %} {% if not headerOptions is iterable %} {% set headerOptions = {'class': headerOptions} %} {% endif %} {% if not headerOptions.orderBy is defined %} {% if orderBy is same as(false) %} {% set headerOptions = headerOptions|merge({'orderBy': false}) %} {% else %} {% set headerOptions = headerOptions|merge({'orderBy': title}) %} {% endif %} {% endif %} {% set headerClass = _self.data_table_column_class(tableName, columns, title) %} {% if title != 'actions' and not headerOptions.orderBy is same as(false) %} {% if orderBy == headerOptions.orderBy %} {% set headerClass = headerClass ~ ' sortable sorting_' ~ (order) %} {% if order == 'asc' %} {% set ariaSort = 'ascending' %} {% else %} {% set ariaSort = 'descending' %} {% endif %} {% else %} {% set headerClass = headerClass ~ ' sortable sorting' %} {% endif %} {% endif %} {% set headerTitle = '' %} {% set translationDomain = headerOptions.translation_domain ?? 'messages' %} {% if headerOptions.title is defined %} {% set headerTitle = headerOptions.title|trans({}, translationDomain) %} {% elseif title is not empty and not isActions %} {% set headerTitle = title|trans({}, translationDomain) %} {% endif %} {% if isActions %} {% set headerClass = headerClass ~ ' text-center' %} {% endif %} {%- endfor -%} {% endmacro %} {% macro data_table_column_class(name, columns, column) %} {{- datatable_column_class(name, column) -}} {% endmacro %} {% macro data_table_footer(entries, route, multi_update_form) %}
{% if title is not empty and title == 'actions' and columnModal is not same as (false) %} {{ icon('columns', true) }} {% else %} {% if headerOptions.batchUpdate is defined %} {% endif %} {{ headerTitle }} {% if headerOptions.html_after is defined %} {{ headerOptions.html_after|raw }} {% endif %} {% endif %}
{% if (route is not empty and entries is not null) or multi_update_form is not null %} {% endif %}
{% endmacro %} {% macro datatable_meta_column(entry, field) %} {% from "macros/widgets.html.twig" import meta_field_value %} {{ meta_field_value(entry, field) }} {% endmacro %} {% macro datatable_multiupdate_row(id) %} {% endmacro %}