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 %>
-
-
+
+
+ <% 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 %>