datacite/volpino

View on GitHub
app/views/admin/claims/_index.html.erb

Summary

Maintainability
Test Coverage
<div class="row">
  <div class='col-md-9 col-md-offset-3 panel-list'>
    <%= form_tag(admin_claims_path, :method => "get", :class => "form-horizontal", :role => "form") do %>
      <div id="search" class="input-group">
        <%= search_field_tag :query, params[:query], :placeholder => "Search claim", :class => "form-control" %>
        <div class="input-group-btn">
          <button type="submit" class="btn btn-primary hidden-xs">Search</button>
        </div>
      </div>
      <% if params[:query] || params[:created] || params[:user_id] || params[:source_id] || params[:claim_action] || params[:state] %>
        <span class="help-block"> <%= link_to 'Reset All', admin_claims_path %></span>
      <% end %>
    <% end %>
  </div>
</div>

<div class="row">
  <div class='col-md-3'>
    <div class="panel facets">
      <% if @created.present? %>
        <div class="panel-body">
          <h4>Year Created</h4>
          <ul>
            <% @created.each do |created| %>
              <li>
                <% if params[:created] %>
                  <%= link_to "<i class='far fa-check-square'></i>".html_safe, admin_claims_path(query: params[:query], source_id: params[:source_id], user_id: params[:user_id], claim_action: params[:claim_action], state: params[:state]) %>
                <% else %>
                  <%= link_to "<i class='far fa-square'></i>".html_safe, admin_claims_path(query: params[:query], source_id: params[:source_id], created: created["id"], user_id: params[:user_id], claim_action: params[:claim_action], state: params[:state]) %>
                <% end %>
  
                <div class="facet-title"><%= created["title"] %></div>
                <span class="number pull-right"><%= number_with_delimiter(created["count"]) %></span>
                <div class="clearfix"/>
              </li>
            <% end %>
          </ul>
        </div>
      <% end %>
      <% if @users.present? %>
        <div class="panel-body">
          <h4>User</h4>
          <ul>
            <% @users.each do |user| %>
              <li>
                <% if params[:user_id] %>
                  <%= link_to "<i class='far fa-check-square'></i>".html_safe, admin_claims_path(query: params[:query], source_id: params[:source_id], created: params[:created], claim_action: params[:claim_action], state: params[:state]) %>
                <% else %>
                  <%= link_to "<i class='far fa-square'></i>".html_safe, admin_claims_path(query: params[:query], source_id: params[:source_id], created: params[:created], user_id: user["id"], claim_action: params[:claim_action], state: params[:state]) %>
                <% end %>
  
                <div class="facet-title"><%= user["title"] %></div>
                <span class="number pull-right"><%= number_with_delimiter(user["count"]) %></span>
                <div class="clearfix"/>
              </li>
            <% end %>
          </ul>
        </div>
      <% end %>
      <% if @sources.present? %>
        <div class="panel-body">
          <h4>Source</h4>
          <ul>
            <% @sources.each do |source| %>
              <li>
                <% if params[:source_id] %>
                  <%= link_to "<i class='far fa-check-square'></i>".html_safe, admin_claims_path(query: params[:query], user_id: params[:user_id], claim_action: params[:claim_action], state: params[:state]) %>
                <% else %>
                  <%= link_to "<i class='far fa-square'></i>".html_safe, admin_claims_path(query: params[:query], source_id: source["id"], user_id: params[:user_id], claim_action: params[:claim_action], state: params[:state]) %>
                <% end %>
  
                <div class="facet-title"><%= source["title"] %></div>
                <span class="number pull-right"><%= number_with_delimiter(source["count"]) %></span>
                <div class="clearfix"/>
              </li>
            <% end %>
          </ul>
        </div>
      <% end %>
      <% if @claim_actions.present? %>
        <div class="panel-body">
          <h4>Action</h4>
          <ul>
            <% @claim_actions.each do |claim_action| %>
              <li>
                <% if params[:claim_action] %>
                  <%= link_to "<i class='far fa-check-square'></i>".html_safe, admin_claims_path(query: params[:query], user_id: params[:user_id], source_id: params[:source_id], state: params[:state]) %>
                <% else %>
                  <%= link_to "<i class='far fa-square'></i>".html_safe, admin_claims_path(query: params[:query], source_id: params[:source_id], user_id: params[:user_id], claim_action: claim_action["id"], state: params[:state]) %>
                <% end %>

                <div class="facet-title"><%= claim_action["title"] %></div>
                <span class="number pull-right"><%= number_with_delimiter(claim_action["count"]) %></span>
                <div class="clearfix"/>
              </li>
            <% end %>
          </ul>
        </div>
      <% end %>
      <% if @states.present? %>
        <div class="panel-body">
          <h4>Status</h4>
          <ul>
            <% @states.each do |state| %>
              <li>
                <% if params[:state] %>
                  <%= link_to "<i class='far fa-check-square'></i>".html_safe, admin_claims_path(query: params[:query], user_id: params[:user_id], source_id: params[:source_id], claim_action: params[:claim_action]) %>
                <% else %>
                  <%= link_to "<i class='far fa-square'></i>".html_safe, admin_claims_path(query: params[:query], source_id: params[:source_id], user_id: params[:user_id], claim_action: params[:claim_action], state: state["id"]) %>
                <% end %>

                <div class="facet-title"><%= state["title"] %></div>
                <span class="number pull-right"><%= number_with_delimiter(state["count"]) %></span>
                <div class="clearfix"/>
              </li>
            <% end %>
          </ul>
        </div>
      <% end %>
    </div>
  </div>

  <div class='col-md-9 panel-list'>
    <% if @claims.size > 0 %>
      <% @claims.each do |claim| %>
        <div class="panel panel-default">
          <% if can?(:manage, @claim) && @claim && @claim.uuid == claim.uuid && (controller.action_name == "edit" or (controller.action_name == "update" and @claim.errors.present?)) %>
            <div class="panel-heading">
              <h3 class="panel-title">
                <% if claim.user %>
                  <%= claim.user.name %> – <%= claim.doi %>
                <% else %>
                  <%= claim.user_id %> – <%= claim.doi %>
                <% end %>
              </h3>
            </div>
            
            <%= simple_form_for @claim, url: admin_claim_path(@claim), html: { role: "form", remote: true } do |f| %>
              <div class="panel-body">
                <%= f.input :aasm_state, collection: aasm_states, include_blank: false, label: "State", input_html: { class: "form-user" } %>
                <%= f.input :put_code, label: "Put Code", input_html: { class: "form-user" } %>
              </div>
              <div class="panel-footer">
                <div class="form-group pull-right">
                  <%= link_to 'Cancel', admin_claims_path(query: params[:query], source_id: params[:source_id], claim_action: params[:claim_action], state: params[:state]), { :remote => true, :class => 'btn btn-sm' } %>
                  <%= f.submit "Save ", class: "btn btn-sm btn-fill" %>
                </div>
                <div class="clearfix"/>
              </div>
            <% end %>
          <% else %>
            <div class="panel-heading">
              <h3 class="panel-title">
                <span class="label <%= state_label(claim.aasm_state) %> pull-right"><%= claim.aasm_state %></span>
                <% if claim.user %>
                  <%= claim.user.name %> – <%= claim.doi %>
                <% else %>
                  <%= claim.user_id %> – <%= claim.doi %>
                <% end %>
              </h3>
            </div>

            <div class="panel-body">
              <h5>ORCID</h5>
              <%= link_to h(claim.user_id), admin_users_path(query: "#{claim.user_id}") %>
              
              <h5>DOI</h5>
              <%= link_to h(claim.doi), "#{ENV['COMMONS_URL']}/doi.org/#{claim.doi}" %>
              
              <h5>Put Code</h5>
              <% if claim.put_code.present? %>
                <%= claim.put_code %>
              <% else %>
                none
              <% end %>

              <% if claim.done? && claim.claimed_at %>
                <h5>Claimed</h5>
                <%= l DateTime.parse(claim.claimed), format: :medium %>
              <% else %>
                <h5>Updated</h5>
                <%= l DateTime.parse(claim.updated), format: :medium %>
              <% end %>
              <% if claim.error_messages && claim.error_messages.length > 0 && claim.error_messages.first["status"].present? %>
                <h5>Error Status</h5>
                <%= h(claim.error_messages.first["status"]) %>
              <% end %>
              <% if claim.error_messages && claim.error_messages.length > 0 && claim.error_messages.first["title"].present?  %>
                <h5>Error Message</h5>
                <%= h(claim.error_messages.first["title"]) %>
              <% end %>
            </div>
            <% if can?(:manage, claim) %>
              <div class="panel-footer">
                <span class="title pull-left"><%= sources[claim.source_id] %></span>
                <div class="btn-toolbar">
                  <div class="btn-group btn-group-sm pull-right">
                    <%= link_to "Delete".html_safe, admin_claim_path(claim.uuid, query: params[:query], source_id: params[:source_id], claim_action: params[:claim_action], state: params[:state], page: params[:page]), method: :delete, data: { confirm: 'Are you sure?' }, remote: true, class: 'btn btn-fill btn-sm', id: "#{claim.id}-delete" %>
                  </div>
                  <div class="btn-group btn-group-sm pull-right">
                    <%= link_to "Update".html_safe, edit_admin_claim_path(claim.uuid, query: params[:query], source_id: params[:source_id], claim_action: params[:claim_action], state: params[:state], page: params[:page]), remote: true, class: 'btn btn-sm', id: "#{claim.id}-edit" %>
                  </div>
                </div>
              </div>
            <% end %>
          <% end %>
        </div>
      <% end %>
      <div class="text-center">
        <%= paginate @claims %>
      </div>
    <% else %>
      <div class="alert alert-warning">
        There are no claims
          <% unless params[:query].blank? %>
            with query string <strong><%= params[:query] %></strong>.
          <% end %>
      </div>
    <% end %>
  </div>
</div>