mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-05-31 11:30:28 -04:00
There were three problems with showing tables fullscreen: - it was over-optimised for very big spreadsheets, whereas most users will only have a few columns in their files - it was jarring to go from full screen and back to the normal layout - it was a bit change for existing users, where we prefer incremental changes that make things better without disrupting people’s work (where possible) So this commit changes the big table to scroll horizontally in the page, not take up the full width of the page. From the fullscreen table it keeps: - the shimming method to keep the horizontal scrollbar at the bottom of the screen at all times It introduces some more refinements to make it nicer to use: - fixing the first column, so you always know what row you’re on - adding shadows indicate where there is content that’s scrolled outside the edges of the container
105 lines
3.9 KiB
HTML
105 lines
3.9 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-1-2">
|
|
{% 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 {{ original_file_name }}
|
|
</h1>
|
|
<p>
|
|
You need to {{ row_errors[0] }}
|
|
</p>
|
|
{% else %}
|
|
<h1 class='banner-title' data-module="track-error" data-error-type="Bad rows" data-error-label="{{ upload_id }}">
|
|
There are some problems with {{ original_file_name }}
|
|
</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="js-stick-at-top-when-scrolling">
|
|
<div class="form-group">
|
|
{{ file_upload(form.file, button_text='Re-upload your file') }}
|
|
</div>
|
|
<a href="#content" class="back-to-top-link">Back to top</a>
|
|
</div>
|
|
|
|
<div class="fullscreen-content" data-module="fullscreen-table">
|
|
{% 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 %}
|
|
</div>
|
|
{% 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 %}
|
|
|
|
{% endblock %}
|