{% extends "base.html" %} {% from "components/ui.html" import page_header, stat_card, empty_state %} {% from "components/client_select.html" import client_select %} {% block content %} {% set breadcrumbs = [ {'text': 'Issues'} ] %} {{ page_header( icon_class='fas fa-bug', title_text='Issues', subtitle_text='Manage client-reported issues and bugs', breadcrumbs=breadcrumbs, actions_html='' + _('Create Issue') + '' if (current_user.is_admin or has_permission('create_issues')) else None ) }}
{{ stat_card('Total Issues', total_issues, 'fas fa-bug', 'slate-500') }} {{ stat_card('Open Issues', open_issues, 'fas fa-exclamation-circle', 'blue-500') }} {{ stat_card('Resolved', resolved_issues, 'fas fa-check-circle', 'green-500') }} {{ stat_card('Closed', closed_issues, 'fas fa-times-circle', 'gray-500') }}

{{ _('Filter Issues') }}

{{ client_select('client_id', clients, selected_id=client_id, required=False, only_one_client=only_one_client|default(false), single_client=single_client) }}
{% if issues %}
{% for issue in issues %} {% endfor %}
{{ _('Title') }} {{ _('Client') }} {{ _('Project') }} {{ _('Status') }} {{ _('Priority') }} {{ _('Assigned To') }} {{ _('Created') }} {{ _('Actions') }}
{{ issue.title }} {{ issue.client.name }} {{ issue.project.name if issue.project else '-' }} {{ issue.status_display }} {{ issue.priority_display }} {{ issue.assigned_user.display_name if issue.assigned_user else '-' }} {{ issue.created_at|user_date }} {{ _('View') }}
{% if pagination.pages > 1 %}
{% if pagination.has_prev %} {{ _('Previous') }} {% endif %} {{ _('Page') }} {{ pagination.page }} {{ _('of') }} {{ pagination.pages }} {% if pagination.has_next %} {{ _('Next') }} {% endif %}
{% endif %} {% else %} {% set create_issue_action %}{% if current_user.is_admin or has_permission('create_issues') %}{{ _('Create Issue') }}{% endif %}{% endset %} {{ empty_state( 'fas fa-bug', _('No issues found'), _('No issues match your filters. Create an issue or adjust your filters.'), create_issue_action, type='no-results' ) }} {% endif %}
{% endblock %}