Update mod internal backend to be safer and more intuitive (#3869)
This commit is contained in:
parent
c9e1f1fcf3
commit
917bc14eae
4 changed files with 49 additions and 9 deletions
|
|
@ -3,11 +3,11 @@ class Internal::ModsController < Internal::ApplicationController
|
|||
|
||||
def index
|
||||
@mods = if params[:state] == "tag"
|
||||
User.with_role(:tag_moderator, :any).page(params[:page]).per(50)
|
||||
User.with_role(:tag_moderator, :any).page(params[:page]).per(50).includes(:notes)
|
||||
elsif params[:state] == "potential"
|
||||
User.order("comments_count DESC").page(params[:page]).per(100)
|
||||
User.order("comments_count DESC").page(params[:page]).per(100).includes(:notes)
|
||||
else
|
||||
User.with_role(:trusted).page(params[:page]).per(50)
|
||||
User.with_role(:trusted).page(params[:page]).per(50).includes(:notes)
|
||||
end
|
||||
@mods = @mods.where("users.username ILIKE :search OR users.name ILIKE :search", search: "%#{params[:search]}%") if params[:search].present?
|
||||
end
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
module AssignTagModerator
|
||||
def self.add_trusted_role(user)
|
||||
return if user.has_role?(:trusted)
|
||||
return if user.has_role?(:banned)
|
||||
|
||||
user.add_role :trusted
|
||||
user.update(email_community_mod_newsletter: true)
|
||||
|
|
|
|||
|
|
@ -23,23 +23,25 @@
|
|||
</h3>
|
||||
|
||||
<%= paginate @mods %>
|
||||
<div class="wrapper" style="font-weight: 600; border-bottom: 2px solid black; grid-template-columns: 15% 30% 15% 15% 22%;">
|
||||
<div class="wrapper" style="font-weight: 600; border-bottom: 2px solid black; grid-template-columns: 15% 25% 13% 13% 20% 14%;">
|
||||
<div>ID</div>
|
||||
<div>Username</div>
|
||||
<div>Profile</div>
|
||||
<div>Comments</div>
|
||||
<div>Badges</div>
|
||||
<div>Last Comment</div>
|
||||
<% if params[:state] == "potential" %>
|
||||
<div>Action</div>
|
||||
<% end %>
|
||||
</div>
|
||||
<% @mods.each do |user| %>
|
||||
<div class="wrapper" style="border-bottom: 1px solid grey; padding: 10px; grid-template-columns: 15% 30% 15% 15% 22%;">
|
||||
<div><%= user.id %></div>
|
||||
<div><a href="/internal/users/<%= user.id %>">@<%= user.username %></a></div>
|
||||
<div class="wrapper" style="border-top: 1px solid grey; padding: 10px; grid-template-columns: 15% 25% 13% 13% 20% 14%; font-size: 0.9em">
|
||||
<div><a href="/internal/users/<%= user.id %>"><%= user.id %></a></div>
|
||||
<div><a href="<%= user.path %>">@<%= user.username %></a></div>
|
||||
<div><%= user.comments_count %></div>
|
||||
<div><%= user.badge_achievements_count %></div>
|
||||
<div><%= time_ago_in_words user.last_comment_at %> ago</div>
|
||||
<% if params[:state] == "potential" && !user.trusted %>
|
||||
<div>
|
||||
<div style="font-size: 0.8em;">
|
||||
<%= form_for([:internal, user], url: "/internal/mods/#{user.id}", method: :patch) do |f| %>
|
||||
<%#= f.hidden_field :id, value: user.id %>
|
||||
<%= f.submit "Make Trusted Mod" %>
|
||||
|
|
@ -47,5 +49,38 @@
|
|||
</div>
|
||||
<% end %>
|
||||
</div>
|
||||
<% if user.notes.any? %>
|
||||
<details closed>
|
||||
<summary style="cursor: pointer; font-weight: bold; padding: 7px 12px; background: #f0f3f7"><%= pluralize user.notes.size, "Note" %></summary>
|
||||
<ul>
|
||||
<% user.notes.each do |note| %>
|
||||
<li>
|
||||
<b><%= note.reason %>:</b> <%= note.content %> <em>—<%= note.created_at.strftime("%B %e, %Y") %></em>
|
||||
</li>
|
||||
<% end %>
|
||||
</ul>
|
||||
</details>
|
||||
<% end %>
|
||||
<% end %>
|
||||
<%= paginate @mods %>
|
||||
<br /><br />
|
||||
|
||||
<script>
|
||||
function submitForms() {
|
||||
var form = $(this);
|
||||
var valuesToSubmit = $(this).serialize();
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: $(this).attr('action'), //sumbits it to the given url of the form
|
||||
data: valuesToSubmit,
|
||||
// dataType: "JSON" // you want a difference between normal and ajax-calls, and json is standard
|
||||
}).success(function (json) {
|
||||
console.log("success")
|
||||
form.parents(".wrapper").addClass("highlighted-no-border")
|
||||
});
|
||||
return false; // prevents normal behaviour
|
||||
}
|
||||
|
||||
$('.wrapper').on("submit", "form", submitForms)
|
||||
|
||||
</script>
|
||||
|
|
|
|||
|
|
@ -119,6 +119,10 @@
|
|||
border: 20px solid black;
|
||||
}
|
||||
|
||||
.highlighted-no-border {
|
||||
background: #2effa8 !important;
|
||||
}
|
||||
|
||||
.highlighted-border {
|
||||
border: 20px solid black;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue