app/views/admin/users/_index.html.erb
<div class="row">
<div class='col-md-9 col-md-offset-3 panel-list'>
<%= form_tag(admin_users_path, :method => "get", :class => "form-horizontal", :role => "form") do %>
<div id="search" class="input-group">
<%= search_field_tag :query, params[:query], :placeholder => "Search user", :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[:role_id] %>
<span class="help-block"> <%= link_to 'Reset All', admin_users_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_users_path(query: params[:query], role_id: params[:role_id]) %>
<% else %>
<%= link_to "<i class='far fa-square'></i>".html_safe, admin_users_path(query: params[:query], created: created["id"], role_id: params[:role_id]) %>
<% 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 @roles.present? %>
<div class="panel-body">
<h4>Role</h4>
<ul>
<% @roles.each do |role| %>
<li>
<% if params[:role_id] %>
<%= link_to "<i class='far fa-check-square'></i>".html_safe, admin_users_path(query: params[:query], created: params[:created]) %>
<% else %>
<%= link_to "<i class='far fa-square'></i>".html_safe, admin_users_path(query: params[:query], role_id: role["id"], created: params[:created]) %>
<% end %>
<div class="facet-title"><%= role["title"] %></div>
<span class="number pull-right"><%= number_with_delimiter(role["count"]) %></span>
<div class="clearfix"/>
</li>
<% end %>
</ul>
</div>
<% end %>
</div>
</div>
<div class='col-md-9 panel-list'>
<% if @users.size > 0 %>
<% @users.each do |user| %>
<div class="panel panel-default">
<div class="panel-heading">
<h3 class="panel-title">
<span class='pull-right'><%= user.role_name %></span>
<% if user.name.present? %>
<%= user.name %>
<% else %>
<%= user.uid %>
<% end %>
</h3>
</div>
<% if can?(:manage, @user) && @user && @user.uid == user.uid && (controller.action_name == "edit" or (controller.action_name == "update" and @user.errors.present?)) %>
<%= simple_form_for @user, url: admin_user_path(@user), html: { role: "form", remote: true } do |f| %>
<div class="panel-body">
<% if user.uid != current_user.uid %>
<%= f.input :role_id, collection: Role.all[:data], include_blank: false, input_html: { class: "form-user" } %>
<% end %>
<div class="form-group">
<label for="other">Other</label>
<%= f.input :is_public, label: "Record is public", input_html: { class: "form-user" } %>
<%= f.input :auto_update, label: "Auto-Update is enabled", input_html: { class: "form-user" } %>
<%= f.input :beta_tester, label: "Beta Tester", input_html: { class: "form-user" } %>
</div>
</div>
<div class="panel-footer">
<div class="form-group pull-right">
<%= link_to 'Cancel', admin_users_path(query: params[:query], role_id: params[:role_id]), { :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-body user-list">
<% if user.email.present? %>
<h5>Email</h5>
<%= link_to h(user.email), "mailto:#{user.email}" %>
<% end %>
<h5>ORCID</h5>
<%= link_to "https://orcid.org/#{user.uid}".html_safe, "https://orcid.org/" + user.uid %>
<h5>Record</h5>
<% if user.is_public %>
is public
<% else %>
<span class="text-info">is private</span>
<% end %>
<h5>Auto-Update</h5>
<% if user.auto_update %>
is enabled
<% else %>
<span class="text-info">is disabled</span>
<% end %>
<% if user.beta_tester %>
<h5>Beta Tester</h5>
<%= user.beta_tester %>
<% end %>
<h5>Account created</h5>
<%= l DateTime.parse(user.created), format: :medium %>
<h5>ORCID Token</h5>
<% if user.orcid_token.blank? %>
Missing
<% elsif DateTime.parse(user.orcid_expires_at) < Time.zone.now %>
Expired
<% else %>
Expires <%= l DateTime.parse(user.orcid_expires_at), format: :medium %>
<% end %>
</div>
<% if can?(:manage, user) %>
<div class="panel-footer">
<span class="title pull-left"><%= link_to_if user.claims_count > 0, pluralize(user.claims_count, "Claim"), admin_claims_path(source: params[:source], state: params[:state], user_id: user.uid) %></span>
<div class="btn-toolbar">
<% if can?(:manage, user) && Time.zone.now < user.orcid_expires_at %>
<div class="btn-group btn-group-sm pull-right">
<%= link_to 'delete token', admin_user_path(user.uid, user: { orcid_token: nil, orcid_expires_at: Time.zone.now }), { method: :put, remote: true, class: 'btn btn-sm btn-warning btn-fill' } %>
</div>
<% end %>
<% if user.uid != current_user.uid && can?(:manage, Phrase) %>
<div class="btn-group btn-group-sm pull-right">
<%= link_to "Delete".html_safe, admin_user_path(user.uid, query: params[:query], role_id: params[:role_id], page: params[:page]), method: :delete, data: { confirm: 'Are you sure?' }, remote: true, class: 'btn btn-fill btn-sm', id: "#{user.uid}-delete" %>
</div>
<% end %>
<div class="btn-group btn-group-sm pull-right">
<%= link_to "Update".html_safe, edit_admin_user_path(user.uid, query: params[:query], role_id: params[:role_id], page: params[:page]), remote: true, class: 'btn btn-sm', id: "#{user.uid}-edit" %>
</div>
</div>
</div>
<% end %>
<% end %>
</div>
<% end %>
<div class="text-center">
<%= paginate @users %>
</div>
<% else %>
<div class="alert alert-warning">
There are no users
<% unless params[:role_id].blank? %>
with role "<%= params[:role_id].titleize %>"
<% end %>
<% unless params[:query].blank? %>
with query string <strong><%= params[:query] %></strong>.
<% end %>
</div>
<% end %>
</div>
</div>