davydovanton/sidekiq-history

View on GitHub
lib/sidekiq/statistic/views/statistic.erb

Summary

Maintainability
Test Coverage
<% add_to_head do %>
  <link href="<%= root_path %>common.css" media="screen" rel="stylesheet" type="text/css" />
  <link href="<%= root_path %>ui-datepicker.css" media="screen" rel="stylesheet" type="text/css" />
  <link href="<%= root_path %>sidekiq-statistic-light.css" media="screen and (prefers-color-scheme: light)" rel="stylesheet" type="text/css" />
  <link href="<%= root_path %>sidekiq-statistic-dark.css" media="screen and (prefers-color-scheme: dark)" rel="stylesheet" type="text/css" />
  <% if Sidekiq::VERSION >= '6.3' %>
    <!-- Jquery was removed in Sidekiq 6.3, so we need to explicitly add it. Several components (e.g. datepicker) require it -->
    <script src="https://code.jquery.com/jquery-3.6.0.min.js" integrity="sha256-/xUj+3OJU5yExlq6GSYGSHk7tPXikynS7ogEvDej/m4=" crossorigin="anonymous"></script>
  <% end %>
<% end %>

<script type="text/javascript" src="<%= root_path %>c3.js"></script>
<script type="text/javascript" src="<%= root_path %>statistic.js"></script>

<div class="statistic">
  <h2><%= t('Statistic') %></h2>

  <ul class="nav nav-tabs">
    <li class="active"><a href="<%= root_path %>statistic" class="statistic__tab"><%= t('Index') %></a></li>
    <li><a href="<%= root_path %>statistic/realtime" class="statistic__tab"><%= t('Realtime') %></a></li>
  </ul>

  <div class="statistic__container border-radius straight-top-left-radius">
    <div class="statistic__datepicker">
      <div>
        <label><%= t('Start') %></label>
        <input id="datepicker_from" class="statistic__datepicker__input left" autocomplete="off" />
      </div>
      <div>
        <label><%= t('End') %></label>
        <input id="datepicker_to" class="statistic__datepicker__input right" autocomplete="off" />
      </div>
    </div>

    <div class="statistic__charts">
      <h2><%= t('Failed') %></h2>
      <div id="js-failed-chart"></div>
      <h2><%= t('Passed') %></h2>
      <div id="js-passed-chart"></div>
    </div>

    <h2><%= t('WorkersTable') %></h2>
    <table class="statistic__table table table-hover table-bordered table-striped table-white live-reload">
      <thead>
        <th><%= t('Worker') %></th>
        <th><%= t('Date') %></th>
        <th><%= t('Queue') %></th>
        <th><%= t('Success') %></th>
        <th><%= t('Failure') %></th>
        <th><%= t('Total') %></th>
        <th><%= t('TimeSec') %></th>
        <th><%= t('AverageSec') %></th>
        <th><%= t('MinTimeSec') %></th>
        <th><%= t('MaxTimeSec') %></th>
        <th><%= t('LastJobStatus') %></th>
      </thead>
      <tbody>
      <% @all_workers.each do |worker| %>
        <tr>
          <td>
            <a href="<%= root_path %>statistic/<%= worker[:name] %>"><%= worker[:name] %></a>
          </td>
          <td><%= format_date worker[:runtime][:last], 'datetime' %></td>
          <td><%= worker[:queue] %></td>
          <td><%= worker[:number_of_calls][:success] %></td>
          <td><%= worker[:number_of_calls][:failure] %></td>
          <td><%= worker[:number_of_calls][:total] %></td>
          <td><%= worker[:runtime][:total] %></td>
          <td><%= worker[:runtime][:average] %></td>
          <td><%= worker[:runtime][:min] %></td>
          <td><%= worker[:runtime][:max] %></td>
          <td><%= worker[:last_job_status] %></td>
        </tr>
      <% end %>
      </tbody>
    </table>
  </div>
</div>