<%# Helper methods %> <% def status_badge(status) %> <% case status %> <% when 'pending' %> <%= status.capitalize %> <% when 'processing' %> <%= status.capitalize %> <% when 'completed' %> <%= status.capitalize %> <% when 'failed' %> <%= status.capitalize %> <% else %> <%= status.capitalize %> <% end %> <% end %>

Import Details

<%= @data_import.filename %>

<%= link_to "← Back to Imports", data_imports_path, class: "inline-flex items-center px-3 py-2 border border-gray-300 shadow-sm text-sm leading-4 font-medium rounded-md text-gray-700 bg-white hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500" %> <% unless @data_import.processing? %> <%= link_to "Delete", @data_import, data: { turbo_method: :delete, turbo_confirm: "Are you sure you want to delete this import record?" }, class: "inline-flex items-center px-3 py-2 border border-red-300 shadow-sm text-sm leading-4 font-medium rounded-md text-red-700 bg-white hover:bg-red-50 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-red-500" %> <% end %>

Import Progress

<%= status_badge(@data_import.status) %>
<% if @data_import.total_records > 0 && @data_import.processed_records >= @data_import.total_records %> <%= number_with_delimiter(@data_import.processed_records) %> total records <% elsif @data_import.total_records > 0 %> <%= number_with_delimiter(@data_import.processed_records) %> records processed <% else %> Initializing... <% end %> <%= @data_import.progress_percentage %>%
<%= number_with_delimiter(@data_import.total_records) %>
Total Records
<%= number_with_delimiter(@data_import.processed_records) %>
Processed
<%= number_with_delimiter(@data_import.failed_records) %>
Failed
<%= number_with_delimiter(@data_import.records_per_second) %>
Records/Sec

Import Information

Import Type
<%= @data_import.import_type %>
Filename
<%= @data_import.filename %>
Started
<% if @data_import.processing? && @data_import.started_at %> <%= time_ago_in_words(@data_import.started_at) %> ago (<%= @data_import.started_at.strftime('%Y-%m-%d %H:%M:%S') %>) <% elsif @data_import.processing? %> Initializing... <% elsif @data_import.started_at %> <%= time_ago_in_words(@data_import.started_at) %> ago (<%= @data_import.started_at.strftime('%Y-%m-%d %H:%M:%S') %>) <% else %> Not started <% end %>
Duration
<% if @data_import.duration > 0 %> <%= distance_of_time_in_words(@data_import.duration) %> <% else %> N/A <% end %>
Completed
<% if @data_import.completed? && @data_import.completed_at %> <%= time_ago_in_words(@data_import.completed_at) %> ago (<%= @data_import.completed_at.strftime('%Y-%m-%d %H:%M:%S') %>) <% elsif @data_import.completed? %> Just now <% elsif @data_import.processing? %> In progress... <% else %> Not completed <% end %>
<% if @data_import.error_message.present? || @data_import.import_stats['errors']&.any? %>

Error Details

<% if @data_import.error_message.present? %>

General Error

<%= @data_import.error_message %>

<% end %> <% if @data_import.import_stats['errors']&.any? %>

Recent Errors (<%= @data_import.import_stats['errors'].size %>)

    <% @data_import.import_stats['errors'].each do |error| %>
  • <%= error %>
  • <% end %>
<% end %>
<% end %> <% if @data_import.import_stats&.any? && (@data_import.import_stats.except('errors', 'completed_at')).any? %>

Additional Statistics

<% @data_import.import_stats.except('errors', 'completed_at').each do |key, value| %>
<%= key.to_s.humanize %>
<%= value.is_a?(Hash) ? value.inspect : value %>
<% end %>
<% end %>