Implement search functionality with pagination and enhance templates for improved user experience

This commit is contained in:
Yaro Kasear 2025-06-13 15:29:35 -05:00
parent 67c85a4569
commit eb7e446e56
7 changed files with 193 additions and 43 deletions

View file

@ -1,4 +1,4 @@
<!-- templates/user.html -->
<!-- templates/search.html -->
{% extends "layout.html" %}
{% block title %}{{ title }}{% endblock %}
@ -10,11 +10,64 @@ title=title,
) }}
<div class="container">
<h1 class="display-1 text-center">Search Categories</h1>
<div class="row text-center m-5">
{{ links.category_link(endpoint = 'search', label = 'Inventory', icon_html = icons.laptop, arguments = {'category': 'inventory'}) }}
{{ links.category_link(endpoint = 'search', label = 'Users', icon_html = icons.user, arguments = {'category': 'users'}) }}
{{ links.category_link(endpoint = 'search', label = 'Work Logs', icon_html = icons.log, arguments = {'category': 'logs'}) }}
<div>
{{ tables.render_table(
headers = results['inventory']['headers'],
rows = results['inventory']['rows'],
entry_route = 'inventory_item',
title='Inventory Results'
)}}
{{ tables.render_pagination(
endpoint = 'main.search',
page = results['inventory']['pagination']['page'],
has_prev = results['inventory']['pagination']['has_prev'],
has_next = results['inventory']['pagination']['has_next'],
total_pages = results['inventory']['pagination']['total_pages'],
page_variable = 'inventory_page',
extra_args = {
'q': query,
'user_page': results['users']['pagination']['page'],
'worklog_page': results['worklog']['pagination']['page']
})}}
</div>
<div>
{{ tables.render_table(
headers = results['users']['headers'],
rows = results['users']['rows'],
entry_route = 'user', title='User Results'
)}}
{{ tables.render_pagination(
endpoint = 'main.search',
page = results['users']['pagination']['page'],
has_prev = results['users']['pagination']['has_prev'],
has_next = results['users']['pagination']['has_next'],
total_pages = results['users']['pagination']['total_pages'],
page_variable = 'user_page',
extra_args = {
'q': query,
'inventory_page': results['inventory']['pagination']['page'],
'worklog_page': results['worklog']['pagination']['page']
})}}
</div>
<div>
{{ tables.render_table(
headers = results['worklog']['headers'],
rows = results['worklog']['rows'],
entry_route = 'worklog_entry',
title='Worklog Results'
)}}
{{ tables.render_pagination(
endpoint = 'main.search',
page = results['worklog']['pagination']['page'],
has_prev = results['worklog']['pagination']['has_prev'],
has_next = results['worklog']['pagination']['has_next'],
total_pages = results['worklog']['pagination']['total_pages'],
page_variable = 'worklog_page',
extra_args = {
'q': query,
'inventory_page': results['inventory']['pagination']['page'],
'user_page': results['users']['pagination']['page']
})}}
</div>
</div>
{% endblock %}