about summary refs log tree commit diff
path: root/app
diff options
context:
space:
mode:
authoralpaca-tc <alpaca-tc@alpaca.tc>2017-05-24 02:45:43 +0900
committerEugen Rochko <eugen@zeonfederated.com>2017-05-23 19:45:43 +0200
commit7ee5fc5d68df5d09262c2c29b7926fcbd2794c1d (patch)
treebf99e9eea805d034f35c6f0a738ff887cbb40a89 /app
parent4289ed1d13b9c3b91663581c44635105c4bc0412 (diff)
Toggle sensitive from admin page (#3261)
Diffstat (limited to 'app')
-rw-r--r--app/controllers/admin/reported_statuses_controller.rb26
-rw-r--r--app/javascript/styles/admin.scss15
-rw-r--r--app/views/admin/reports/show.html.haml5
3 files changed, 39 insertions, 7 deletions
diff --git a/app/controllers/admin/reported_statuses_controller.rb b/app/controllers/admin/reported_statuses_controller.rb
index 7ae420dfe..0e7a89437 100644
--- a/app/controllers/admin/reported_statuses_controller.rb
+++ b/app/controllers/admin/reported_statuses_controller.rb
@@ -2,17 +2,31 @@
 
 module Admin
   class ReportedStatusesController < BaseController
-    def destroy
-      status = Status.find params[:id]
+    before_action :set_report
+    before_action :set_status
+
+    def update
+      @status.update(status_params)
+      redirect_to admin_report_path(@report)
+    end
 
-      RemovalWorker.perform_async(status.id)
-      redirect_to admin_report_path(report)
+    def destroy
+      RemovalWorker.perform_async(@status.id)
+      redirect_to admin_report_path(@report)
     end
 
     private
 
-    def report
-      Report.find(params[:report_id])
+    def status_params
+      params.require(:status).permit(:sensitive)
+    end
+
+    def set_report
+      @report = Report.find(params[:report_id])
+    end
+
+    def set_status
+      @status = @report.statuses.find(params[:id])
     end
   end
 end
diff --git a/app/javascript/styles/admin.scss b/app/javascript/styles/admin.scss
index 3d3623154..d011548a7 100644
--- a/app/javascript/styles/admin.scss
+++ b/app/javascript/styles/admin.scss
@@ -245,4 +245,19 @@
 
 .report-status__actions {
   flex: 0 0 auto;
+  position: relative;
+
+  .nsfw-button {
+    color: $white;
+    font-size: 11px;
+    width: 11px;
+    display: block;
+  }
+
+  .trash-button {
+    position: absolute;
+    bottom: 10px;
+    font-size: 24px;
+    width: 24px;
+  }
 }
diff --git a/app/views/admin/reports/show.html.haml b/app/views/admin/reports/show.html.haml
index ce5fe6cb6..560031079 100644
--- a/app/views/admin/reports/show.html.haml
+++ b/app/views/admin/reports/show.html.haml
@@ -24,7 +24,10 @@
       .activity-stream.activity-stream-headless
         .entry= render partial: 'stream_entries/simple_status', locals: { status: status }
       .report-status__actions
-        = link_to admin_report_reported_status_path(@report, status), method: :delete, class: 'icon-button', style: 'font-size: 24px; width: 24px; height: 24px', title: t('admin.reports.delete') do
+        - unless status.media_attachments.empty?
+          = link_to admin_report_reported_status_path(@report, status, status: { sensitive: !status.sensitive }), method: :patch, class: 'nsfw-button', title: t("admin.reports.nsfw.#{!status.sensitive}") do
+            = t("admin.reports.nsfw.#{!status.sensitive}")
+        = link_to admin_report_reported_status_path(@report, status), method: :delete, class: 'icon-button trash-button', title: t('admin.reports.delete'), data: { confirm: t('admin.reports.are_you_sure') } do
           = fa_icon 'trash'
 
 - if !@report.action_taken?