{% load admin_urls i18n %}

{% if result_hidden_fields %}
    <div class="hiddenfields">
        {% for item in result_hidden_fields %}{{ item }}{% endfor %}
    </div>
{% endif %}

{% if results %}
    <div class="-mx-1 px-1 overflow-x-auto lg:border lg:border-base-200 lg:mx-0 lg:px-0 lg:rounded lg:shadow-sm lg:dark:border-base-800 lg:bg-white lg:dark:bg-base-900 {% if cl.model_admin.list_horizontal_scrollbar_top %}simplebar-horizontal-scrollbar-top{% endif %}" data-simplebar data-simplebar-auto-hide="false">
        <table id="result_list" class="block border-base-200 border-spacing-none border-separate w-full lg:table">
            <thead>
                <tr>
                    {% for header in result_headers %}
                        <th class="align-middle font-semibold py-2 text-left text-font-important-light dark:text-font-important-dark whitespace-nowrap {{ header.class_attrib }} {% if "action-toggle" in header.text and forloop.counter == 1 %}lg:px-3 lg:w-10{% else %}hidden px-3 lg:table-cell{% endif %}" scope="col">
                            <div class="flex items-center">
                                <div class="text">
                                    {% if header.sortable %}
                                        <a href="{{ header.url_primary }}">
                                            {{ header.text|capfirst }}
                                        </a>
                                    {% else %}
                                        {% if "action-toggle" in header.text and forloop.counter == 1 %}
                                            <label class="flex flex-row items-center gap-2">
                                                {{ header.text|capfirst }}

                                                <span class="block font-normal lg:hidden">
                                                    {% trans "Select all rows"%}
                                                </span>
                                            </label>
                                        {% else %}
                                            <span>
                                                {{ header.text|capfirst }}
                                            </span>
                                        {% endif %}
                                    {% endif %}
                                </div>

                                {% if header.sortable %}
                                    {% if header.sort_priority > 0 %}
                                        <div class="sortoptions flex items-center ml-2">
                                            <a href="{{ header.url_toggle }}" class="flex items-center leading-none text-base-400 hover:text-base-500 dark:text-base-500 dark:hover:text-base-400 toggle {% if header.ascending %}ascending{% else %}descending{% endif %}" title="{% translate "Toggle sorting" %}">
                                                {% if header.ascending %}
                                                    <span class="block material-symbols-outlined">arrow_circle_down</span>
                                                {% else %}
                                                    <span class="block material-symbols-outlined">arrow_circle_up</span>
                                                {% endif %}
                                            </a>

                                            <a class="sortremove flex items-center leading-none ml-1 text-base-400 dark:text-base-500 transition-all hover:text-red-700 dark:hover:text-red-500" href="{{ header.url_remove }}" title="{% translate "Remove from sorting" %}">
                                                <span class="block material-symbols-outlined">cancel</span>
                                            </a>
                                        </div>

                                        {% if num_sorted_fields > 1 %}
                                            <span class="sortpriority font-medium ml-2 text-xs" title="{% blocktranslate with priority_number=header.sort_priority %}Sorting priority: {{ priority_number }}{% endblocktranslate %}">
                                                {{ header.sort_priority }}
                                            </span>
                                        {% endif %}
                                    {% endif %}
                                {% endif %}
                            </div>
                        </th>
                    {% endfor %}
                </tr>
            </thead>

            <tbody class="block lg:table-row-group">
                {% for result in results %}
                    {% if result.form and result.form.non_field_errors %}
                        <tr>
                            <td class="text-left" colspan="{{ result|length }}">
                                {{ result.form.non_field_errors }}
                            </td>
                        </tr>
                    {% endif %}

                    <tr class="{% cycle '' 'bg-base-50 dark:bg-white/[.02]' %} block border mb-3 rounded shadow-sm lg:table-row lg:border-none lg:mb-0 lg:shadow-none dark:border-base-800">
                        {% for item in result %}
                            {{ item }}
                        {% endfor %}
                        {% include 'unfold/helpers/actions_row.html' with actions=actions_row instance_pk=result.instance_pk %}
                    </tr>
                {% endfor %}
            </tbody>
        </table>
    </div>
{% else %}
    {% include 'unfold/helpers/empty_results.html' %}
{% endif %}

<script>
    document.addEventListener('DOMContentLoaded', function() {
        // Select all table rows with a class of block
        const rows = document.querySelectorAll('#result_list > tbody > tr');
    
        // Add click event listener to each row
        rows.forEach(row => {
            row.querySelectorAll('td').forEach(td => {
                if (!td.querySelector('a')) {
                    td.addEventListener('click', function(event) {
                        // Check if the clicked element is already input of type checkbox
                        if (event.target.type !== 'checkbox') {
                            // Get the checkbox within this row
                            const checkbox = row.querySelector('input[type="checkbox"]');
            
                            // Toggle the checkbox state
                            if (checkbox) {
                                checkbox.checked = !checkbox.checked;
                            }
                            // Add the highlight class to the row
                            row.classList.add('highlight');
            
                            // Remove the highlight class after a short delay
                            setTimeout(() => {
                                row.classList.remove('highlight');
                            }, 300); // Duration the highlight stays
                        }
                    });
                }
            });
        });
    });
</script>