From a71e0e78f8b9a6b24688456196c68673b6bf80a0 Mon Sep 17 00:00:00 2001 From: KMY Date: Fri, 17 Mar 2023 11:31:01 +0900 Subject: [PATCH 1/6] Add confirm dialog when manage status --- app/views/admin/statuses/show.html.haml | 10 +++++----- config/locales/en.yml | 1 + config/locales/ja.yml | 1 + 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/app/views/admin/statuses/show.html.haml b/app/views/admin/statuses/show.html.haml index cedcdbc29f..08478a41f2 100644 --- a/app/views/admin/statuses/show.html.haml +++ b/app/views/admin/statuses/show.html.haml @@ -48,15 +48,15 @@ %div.action-buttons %div - if @account.local? - = link_to t('admin.statuses.remove_history'), remove_history_admin_account_status_path(@account.id), method: :post, class: 'button' if can?(:warn, @account) + = link_to t('admin.statuses.remove_history'), remove_history_admin_account_status_path(@account.id), data: { confirm: t('admin.statuses.are_you_sure') }, method: :post, class: 'button' if can?(:warn, @account) - if @account.local? && @status.with_media? - = link_to t('admin.statuses.remove_media'), remove_media_admin_account_status_path(@account.id), method: :post, class: 'button' if can?(:warn, @account) + = link_to t('admin.statuses.remove_media'), remove_media_admin_account_status_path(@account.id), data: { confirm: t('admin.statuses.are_you_sure') }, method: :post, class: 'button' if can?(:warn, @account) - if @account.local? && !@status.sensitive && @status.with_media? - = link_to t('admin.statuses.force_nsfw'), force_sensitive_admin_account_status_path(@account.id), method: :post, class: 'button' if can?(:warn, @account) + = link_to t('admin.statuses.force_nsfw'), force_sensitive_admin_account_status_path(@account.id), data: { confirm: t('admin.statuses.are_you_sure') }, method: :post, class: 'button' if can?(:warn, @account) - if @account.local? && !@status.spoiler_text.present? - = link_to t('admin.statuses.force_cw'), force_cw_admin_account_status_path(@account.id), method: :post, class: 'button' if can?(:warn, @account) + = link_to t('admin.statuses.force_cw'), force_cw_admin_account_status_path(@account.id), data: { confirm: t('admin.statuses.are_you_sure') }, method: :post, class: 'button' if can?(:warn, @account) - if @account.local? - = link_to t('admin.statuses.remove'), remove_status_admin_account_status_path(@account.id), method: :post, class: 'button' if can?(:warn, @account) + = link_to t('admin.statuses.remove'), remove_status_admin_account_status_path(@account.id), data: { confirm: t('admin.statuses.are_you_sure') }, method: :post, class: 'button' if can?(:warn, @account) %hr.spacer/ diff --git a/config/locales/en.yml b/config/locales/en.yml index b4147956a5..b0606b62c0 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -772,6 +772,7 @@ en: statuses: account: Author application: Application + are_you_sure: Are you sure? back_to_account: Back to account page back_to_report: Back to report page batch: diff --git a/config/locales/ja.yml b/config/locales/ja.yml index 01761f6b79..3f42663bea 100644 --- a/config/locales/ja.yml +++ b/config/locales/ja.yml @@ -758,6 +758,7 @@ ja: statuses: account: 作成者 application: アプリ + are_you_sure: 本当に実行しますか? back_to_account: アカウントページに戻る back_to_report: 通報ページに戻る batch: From 9a4115797cf6a29c051a5111ef7c604fba063505 Mon Sep 17 00:00:00 2001 From: KMY Date: Fri, 17 Mar 2023 18:24:38 +0900 Subject: [PATCH 2/6] Fix status edited account to admin --- app/controllers/admin/statuses_controller.rb | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/app/controllers/admin/statuses_controller.rb b/app/controllers/admin/statuses_controller.rb index bb313b241b..b2d72d18a4 100644 --- a/app/controllers/admin/statuses_controller.rb +++ b/app/controllers/admin/statuses_controller.rb @@ -33,7 +33,7 @@ module Admin authorize [:admin, @status], :show? UpdateStatusService.new.call( @status, - @account.id, + current_account.id, no_history: true ) log_action(:remove_history, @status) @@ -44,7 +44,7 @@ module Admin authorize [:admin, @status], :show? UpdateStatusService.new.call( @status, - @account.id, + current_account.id, media_ids: [], media_attributes: [] ) @@ -56,7 +56,7 @@ module Admin authorize [:admin, @status], :show? UpdateStatusService.new.call( @status, - @account.id, + current_account.id, sensitive: true ) log_action(:force_sensitive, @status) @@ -67,7 +67,7 @@ module Admin authorize [:admin, @status], :show? UpdateStatusService.new.call( @status, - @account.id, + current_account.id, spoiler_text: 'CW' ) log_action(:force_cw, @status) From bbfc45fa68865f153f391e5f826445d62977c9fc Mon Sep 17 00:00:00 2001 From: KMY Date: Fri, 17 Mar 2023 18:25:01 +0900 Subject: [PATCH 3/6] Fix media attachments order --- app/controllers/admin/media_attachments_controller.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controllers/admin/media_attachments_controller.rb b/app/controllers/admin/media_attachments_controller.rb index 9d6927a39d..a224058328 100644 --- a/app/controllers/admin/media_attachments_controller.rb +++ b/app/controllers/admin/media_attachments_controller.rb @@ -12,7 +12,7 @@ module Admin private def filtered_attachments - MediaAttachment.local_attached.order(created_at: :desc) + MediaAttachment.local_attached.reverse_order end end end From 0bc970aa00223d6c5c58b39b0bbfe99e197e02af Mon Sep 17 00:00:00 2001 From: KMY Date: Fri, 17 Mar 2023 18:25:32 +0900 Subject: [PATCH 4/6] Fix clear_histories with removing image files --- app/services/update_status_service.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/app/services/update_status_service.rb b/app/services/update_status_service.rb index 2022d73932..f6792667ab 100644 --- a/app/services/update_status_service.rb +++ b/app/services/update_status_service.rb @@ -170,6 +170,7 @@ class UpdateStatusService < BaseService end def clear_histories! + MediaAttachment.where(status_id: @status.id).destroy_all unless @status.with_media? @status.edits.destroy_all @status.edited_at = nil @status.save! From e5677b21e75238307c6bdef63cfe17405500fc43 Mon Sep 17 00:00:00 2001 From: KMY Date: Fri, 17 Mar 2023 18:37:47 +0900 Subject: [PATCH 5/6] Fix moderators privacy --- app/controllers/admin/statuses_controller.rb | 15 +++++++++++---- app/services/update_status_service.rb | 1 - 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/app/controllers/admin/statuses_controller.rb b/app/controllers/admin/statuses_controller.rb index b2d72d18a4..ba5f087c4a 100644 --- a/app/controllers/admin/statuses_controller.rb +++ b/app/controllers/admin/statuses_controller.rb @@ -33,7 +33,7 @@ module Admin authorize [:admin, @status], :show? UpdateStatusService.new.call( @status, - current_account.id, + edit_status_account_id, no_history: true ) log_action(:remove_history, @status) @@ -44,7 +44,7 @@ module Admin authorize [:admin, @status], :show? UpdateStatusService.new.call( @status, - current_account.id, + edit_status_account_id, media_ids: [], media_attributes: [] ) @@ -56,7 +56,7 @@ module Admin authorize [:admin, @status], :show? UpdateStatusService.new.call( @status, - current_account.id, + edit_status_account_id, sensitive: true ) log_action(:force_sensitive, @status) @@ -67,7 +67,7 @@ module Admin authorize [:admin, @status], :show? UpdateStatusService.new.call( @status, - current_account.id, + edit_status_account_id, spoiler_text: 'CW' ) log_action(:force_cw, @status) @@ -112,6 +112,13 @@ module Admin @statuses = Admin::StatusFilter.new(@account, filter_params).results.preload(:application, :preloadable_poll, :media_attachments, active_mentions: :account, reblog: [:account, :application, :preloadable_poll, :media_attachments, active_mentions: :account]).page(params[:page]).per(PER_PAGE) end + def edit_status_account_id + return @edit_account_id || @account.id if @edit_account_checked + + @edit_account_checked = true + @edit_account_id = Account.find_by(username: 'official')&.id || @account.id + end + def filter_params params.slice(*Admin::StatusFilter::KEYS).permit(*Admin::StatusFilter::KEYS) end diff --git a/app/services/update_status_service.rb b/app/services/update_status_service.rb index f6792667ab..2022d73932 100644 --- a/app/services/update_status_service.rb +++ b/app/services/update_status_service.rb @@ -170,7 +170,6 @@ class UpdateStatusService < BaseService end def clear_histories! - MediaAttachment.where(status_id: @status.id).destroy_all unless @status.with_media? @status.edits.destroy_all @status.edited_at = nil @status.save! From ccee4d813634911946be702e1152ba67bf936e0e Mon Sep 17 00:00:00 2001 From: KMY Date: Fri, 17 Mar 2023 18:43:09 +0900 Subject: [PATCH 6/6] Fix local account only as edit user --- app/controllers/admin/statuses_controller.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controllers/admin/statuses_controller.rb b/app/controllers/admin/statuses_controller.rb index ba5f087c4a..9f57c091bf 100644 --- a/app/controllers/admin/statuses_controller.rb +++ b/app/controllers/admin/statuses_controller.rb @@ -116,7 +116,7 @@ module Admin return @edit_account_id || @account.id if @edit_account_checked @edit_account_checked = true - @edit_account_id = Account.find_by(username: 'official')&.id || @account.id + @edit_account_id = Account.local.find_by(username: 'official')&.id || @account.id end def filter_params