main reason: slippers cannot pass request via context inside its components, making it annoying to use template takes that take request. more reasons: not actively worked on, no named slots, having to define components in components.yaml + new components do not get registered without restarting server
		
			
				
	
	
		
			51 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			51 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
| {% load param_utils %}
 | |
| <div class="shadow-md sm:rounded-lg" hx-boost="false">
 | |
|     <div class="relative overflow-x-auto sm:rounded-lg">
 | |
|         <table class="w-full text-sm text-left rtl:text-right text-gray-500 dark:text-gray-400">
 | |
|             <thead class="text-xs text-gray-700 uppercase bg-gray-50 dark:bg-gray-700 dark:text-gray-400">
 | |
|                 <tr>
 | |
|                     {% for column in columns %}<th scope="col" class="px-6 py-3">{{ column }}</th>{% endfor %}
 | |
|                 </tr>
 | |
|             </thead>
 | |
|             <tbody>
 | |
|                 {% for row in rows %}<c-table-row :data=row />{% endfor %}
 | |
|             </tbody>
 | |
|         </table>
 | |
|     </div>
 | |
|     {% if page_obj and elided_page_range %}
 | |
|         <nav class="flex items-center flex-column md:flex-row justify-between px-6 py-4"
 | |
|              aria-label="Table navigation">
 | |
|             <span class="text-sm font-normal text-gray-500 dark:text-gray-400 mb-4 md:mb-0 block w-full md:inline md:w-auto">Showing <span class="font-semibold text-gray-900 dark:text-white">{{ page_obj.start_index }}</span>—<span class="font-semibold text-gray-900 dark:text-white">{{ page_obj.end_index }}</span> of <span class="font-semibold text-gray-900 dark:text-white">{{ page_obj.paginator.count }}</span></span>
 | |
|             <ul class="inline-flex -space-x-px rtl:space-x-reverse text-sm h-8">
 | |
|                 <li>
 | |
|                     {% if page_obj.has_previous %}
 | |
|                         <a href="?{% param_replace page=page_obj.previous_page_number %}"
 | |
|                            class="flex items-center justify-center px-3 h-8 ms-0 leading-tight text-gray-500 bg-white border border-gray-300 rounded-s-lg hover:bg-gray-100 hover:text-gray-700 dark:bg-gray-800 dark:border-gray-700 dark:text-gray-400 dark:hover:bg-gray-700 dark:hover:text-white">Previous</a>
 | |
|                     {% else %}
 | |
|                         <a aria-current="page"
 | |
|                            class="cursor-not-allowed flex items-center justify-center px-3 h-8 leading-tight text-gray-300 bg-white border border-gray-300 rounded-s-lg dark:bg-gray-800 dark:border-gray-700 dark:text-gray-600">Previous</a>
 | |
|                     {% endif %}
 | |
|                     {% for page in elided_page_range %}
 | |
|                         <li>
 | |
|                             {% if page != page_obj.number %}
 | |
|                                 <a href="?{% param_replace page=page %}"
 | |
|                                    class="flex items-center justify-center px-3 h-8 leading-tight text-gray-500 bg-white border border-gray-300 hover:bg-gray-100 hover:text-gray-700 dark:bg-gray-800 dark:border-gray-700 dark:text-gray-400 dark:hover:bg-gray-700 dark:hover:text-white">{{ page }}</a>
 | |
|                             {% else %}
 | |
|                                 <a aria-current="page"
 | |
|                                    class="cursor-not-allowed flex items-center justify-center px-3 h-8 leading-tight text-white border bg-gray-400 border-gray-300 dark:bg-gray-900 dark:border-gray-700 dark:text-gray-200">{{ page }}</a>
 | |
|                             {% endif %}
 | |
|                         </li>
 | |
|                     {% endfor %}
 | |
|                     {% if page_obj.has_next %}
 | |
|                         <a href="?{% param_replace page=page_obj.next_page_number %}"
 | |
|                            class="flex items-center justify-center px-3 h-8 leading-tight text-gray-500 bg-white border border-gray-300 rounded-e-lg hover:bg-gray-100 hover:text-gray-700 dark:bg-gray-800 dark:border-gray-700 dark:text-gray-400 dark:hover:bg-gray-700 dark:hover:text-white">Next</a>
 | |
|                     {% else %}
 | |
|                         <a aria-current="page"
 | |
|                            class="cursor-not-allowed flex items-center justify-center px-3 h-8 leading-tight text-gray-300 bg-white border border-gray-300 rounded-e-lg dark:bg-gray-800 dark:border-gray-700 dark:text-gray-600">Next</a>
 | |
|                     {% endif %}
 | |
|                 </li>
 | |
|             </ul>
 | |
|         </nav>
 | |
|     {% endif %}
 | |
| </div>
 |