diff --git a/app/assets/stylesheets/moderators.scss b/app/assets/stylesheets/moderators.scss index 132dd6bdf..48f9a4c59 100644 --- a/app/assets/stylesheets/moderators.scss +++ b/app/assets/stylesheets/moderators.scss @@ -159,6 +159,12 @@ .mod-container { padding: 30px 0px; + h2 { + a { + @include themeable(color, theme-color, $black); + } + margin-bottom: -12px; + } p { width: 98%; max-width: 720px; @@ -332,6 +338,15 @@ border: solid 2px; margin: 5px auto 15px; } + .approval-button { + font-size: 20px; + border: 0px; + border-radius: 3px; + padding: 8px 16px; + &.approval-removal { + background: $red; + } + } } .mod-link { diff --git a/app/controllers/article_approvals_controller.rb b/app/controllers/article_approvals_controller.rb new file mode 100644 index 000000000..0fc61e931 --- /dev/null +++ b/app/controllers/article_approvals_controller.rb @@ -0,0 +1,13 @@ +class ArticleApprovalsController < ApplicationController + def create + @article = Article.find(params[:id]) + unless current_user.any_admin? + authorize(User, :moderation_routes?) + @article.decorate.cached_tag_list_array.each do |tag| + authorize(Tag.find_by(name: tag), :update?) + end + end + @article.update(approved: params[:approved]) + redirect_to "#{URI.parse(@article.path).path}/mod" + end +end diff --git a/app/views/moderations/mod.html.erb b/app/views/moderations/mod.html.erb index 289e2853c..968a77aac 100644 --- a/app/views/moderations/mod.html.erb +++ b/app/views/moderations/mod.html.erb @@ -7,8 +7,24 @@ <% end %>
-

Moderate: <%= @moderatable.title %>

-

Author: <%= @moderatable.user.username %>

+

<%= @moderatable.title %>

+

@<%= @moderatable.user.username %>

+ <% if @moderatable.class.name == "Article" && + (Tag.where(requires_approval: true).pluck(:name) & @moderatable.decorate.cached_tag_list_array).any? && + (current_user.any_admin? || @tag_moderator_tags.any? { |tag| @moderatable.tag_list.include?(tag.name) }) + %> + <%= form_tag "/article_approvals", method: "post" do %> + <%= hidden_field_tag(:id, @moderatable.id) %> + <% if @moderatable.approved %> + <%= hidden_field_tag(:approved, false) %> + + <% else %> + <%= hidden_field_tag(:approved, true) %> + + <% end %> + <% end %> +
+ <% end %>