mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-04-18 08:11:47 -04:00
Uses the new javascript event tracking stuff so that we can see what errors people are getting when they upload spreadsheets.
114 lines
4.0 KiB
HTML
114 lines
4.0 KiB
HTML
{% extends "withnav_template.html" %}
|
|
{% from "components/banner.html" import banner_wrapper %}
|
|
{% from "components/radios.html" import radio_select %}
|
|
{% from "components/table.html" import list_table, field, text_field, index_field, hidden_field_heading %}
|
|
{% from "components/file-upload.html" import file_upload %}
|
|
{% from "components/page-footer.html" import page_footer %}
|
|
{% from "components/message-count-label.html" import message_count_label %}
|
|
|
|
{% set file_contents_header_id = 'file-preview' %}
|
|
{% macro skip_to_file_contents() %}
|
|
<p class="visually-hidden">
|
|
<a href="#{{ file_contents_header_id }}">Skip to file contents</a>
|
|
</p>
|
|
{% endmacro %}
|
|
|
|
{% block service_page_title %}
|
|
Error
|
|
{% endblock %}
|
|
|
|
{% block maincolumn_content %}
|
|
|
|
<div class="bottom-gutter">
|
|
{% call banner_wrapper(type='dangerous') %}
|
|
{% if row_errors|length == 1 %}
|
|
<h1 class='banner-title' data-module="track-error" data-error-type="Bad rows" data-error-label="{{ upload_id }}">
|
|
There is a problem with your data
|
|
</h1>
|
|
<p>
|
|
You need to {{ row_errors[0] }}
|
|
</p>
|
|
{% else %}
|
|
<h1 class='banner-title'>
|
|
There are some problems with your data
|
|
</h1>
|
|
<p>
|
|
You need to:
|
|
</p>
|
|
<ul class="list-bullet">
|
|
{% for error in row_errors %}
|
|
<li>{{ error }}</li>
|
|
{% endfor %}
|
|
</ul>
|
|
{% endif %}
|
|
{{ skip_to_file_contents() }}
|
|
{% endcall %}
|
|
</div>
|
|
|
|
<div class="bottom-gutter-3-2">
|
|
{% if request.args.from_test %}
|
|
<a href="{{ back_link }}" class="page-footer-back-link">Back</a>
|
|
{% else %}
|
|
{{file_upload(form.file, button_text='Re-upload your file')}}
|
|
{% endif %}
|
|
</div>
|
|
|
|
{% if not request.args.from_test %}
|
|
|
|
<h2 class="heading-medium" id="{{ file_contents_header_id }}">{{ original_file_name }}</h2>
|
|
|
|
{% call(item, row_number) list_table(
|
|
recipients.initial_annotated_rows_with_errors if row_errors and not recipients.missing_column_headers else recipients.initial_annotated_rows,
|
|
caption=original_file_name,
|
|
caption_visible=False,
|
|
field_headings=[
|
|
'<span class="visually-hidden">Row in file</span><span aria-hidden="true" class="table-field-invisible-error">1</span>'|safe
|
|
] + recipients.column_headers
|
|
) %}
|
|
{% call index_field() %}
|
|
<span class="{% if item.index in recipients.rows_with_errors %}table-field-error{% endif %}">
|
|
{{ item.index + 2 }}
|
|
</span>
|
|
{% endcall %}
|
|
{% for column in recipients.column_headers %}
|
|
{% if item['columns'][column].error and not recipients.missing_column_headers %}
|
|
{% call field() %}
|
|
<span>
|
|
<span class="table-field-error-label">{{ item['columns'][column].error }}</span>
|
|
{{ item['columns'][column].data if item['columns'][column].data != None }}
|
|
</span>
|
|
{% endcall %}
|
|
{% elif item['columns'][column].ignore %}
|
|
{{ text_field(item['columns'][column].data or '', status='default') }}
|
|
{% else %}
|
|
{{ text_field(item['columns'][column].data or '') }}
|
|
{% endif %}
|
|
{% endfor %}
|
|
{% if item['columns'].get(None) %}
|
|
{% for column in item['columns'][None].data %}
|
|
{{ text_field(column, status='default') }}
|
|
{% endfor %}
|
|
{% endif %}
|
|
{% endcall %}
|
|
|
|
{% endif %}
|
|
|
|
{% if count_of_displayed_recipients < count_of_recipients %}
|
|
<p class="table-show-more-link">
|
|
{% if row_errors and not recipients.missing_column_headers %}
|
|
Only showing the first {{ count_of_displayed_recipients }} rows with errors
|
|
{% else %}
|
|
Only showing the first {{ count_of_displayed_recipients }} rows
|
|
{% endif %}
|
|
</p>
|
|
{% elif row_errors and not recipients.missing_column_headers %}
|
|
<p class="table-show-more-link">
|
|
Only showing rows with errors
|
|
</p>
|
|
{% endif %}
|
|
|
|
<h2 class="heading-medium">Preview of {{ template.name }}</h2>
|
|
{{ template|string }}
|
|
|
|
{% endblock %}
|