From 24be74a5a225053d2dcdb3963b843454369b5dcd Mon Sep 17 00:00:00 2001 From: Andreas Nedbal Date: Sun, 21 Aug 2022 15:04:54 +0200 Subject: [PATCH] Split and reuse question actions in partial --- app/views/actions/_question.haml | 24 ++++++++++++++++++++++++ app/views/answerbox/_header.haml | 21 +-------------------- app/views/inbox/_entry.haml | 17 +---------------- app/views/question/_question.haml | 18 +----------------- app/views/shared/_question.haml | 14 +------------- 5 files changed, 28 insertions(+), 66 deletions(-) create mode 100644 app/views/actions/_question.haml diff --git a/app/views/actions/_question.haml b/app/views/actions/_question.haml new file mode 100644 index 00000000..d01396f8 --- /dev/null +++ b/app/views/actions/_question.haml @@ -0,0 +1,24 @@ +.dropdown-menu.dropdown-menu-right{ role: :menu } + - if current_user.mod? || question.user == current_user + %a.dropdown-item.text-danger{ href: "#", tabindex: -1, data: { action: "ab-question-destroy", q_id: question.id } } + %i.fa.fa-fw.fa-trash-o + = t("voc.delete") + - unless question.user == current_user + %a.dropdown-item{ href: "#", tabindex: -1, data: { action: "ab-question-report", q_id: question.id } } + %i.fa.fa-fw.fa-exclamation-triangle + = t("voc.report") + - if question.anonymous? && !question.generated? + %a.dropdown-item{ name: "ib-block-anon", data: { q_id: question.id } } + %i.fa.fa-fw.fa-minus-circle + = t("voc.block") + - if current_user.mod? + %a.dropdown-item{ href: "#", name: "mod-block-anon", data: { q_id: question.id } } + %i.fa.fa-fw.fa-volume-off + = t("voc.block_site_wide") + %a.dropdown-item{ href: moderation_questions_path(author_identifier: question.author_identifier) } + %i.fa.fa-fw.fa-user-secret + = t("voc.show_anonymous_questions") + - if current_user.admin? + %a.dropdown-item{ href: rails_admin_path_for_resource(question), target: "_blank" } + %i.fa.fa-fw.fa-gears + = t("voc.view_in_rails_admin") \ No newline at end of file diff --git a/app/views/answerbox/_header.haml b/app/views/answerbox/_header.haml index 891dfe9c..f1198128 100644 --- a/app/views/answerbox/_header.haml +++ b/app/views/answerbox/_header.haml @@ -9,26 +9,7 @@ .btn-group %button.btn.btn-link.btn-sm.dropdown-toggle{ data: { toggle: :dropdown }, aria: { expanded: false } } %span.caret - .dropdown-menu.dropdown-menu-right{ role: :menu } - - if current_user.mod? || a.question.user == current_user - %a.dropdown-item.text-danger{ href: "#", tabindex: -1, data: { action: "ab-question-destroy", q_id: a.question.id } } - %i.fa.fa-trash-o - = t("voc.delete") - - unless a.question.user == current_user - %a.dropdown-item{ href: "#", tabindex: -1, data: { action: "ab-question-report", q_id: a.question.id } } - %i.fa.fa-exclamation-triangle - = t("voc.report") - - if current_user.mod? && a.question.anonymous? && !a.question.generated? - %a.dropdown-item{ href: moderation_questions_path(author_identifier: a.question.author_identifier) } - %i.fa.fa-user-secret - = t("voc.show_anonymous_questions") - %a.dropdown-item{ href: "#", name: "mod-block-anon", data: { q_id: a.question.id } } - %i.fa.fa-volume-off - = t("voc.block_site_wide") - - if current_user.has_role? :administrator - %a.dropdown-item{ href: rails_admin_path_for_resource(a.question), target: "_blank" } - %i.fa.fa-gears - = t("voc.view_in_rails_admin") + = render "actions/question", question: a.question %h6.text-muted.media-heading.answerbox__question-user - if a.question.author_is_anonymous %i.fa.fa-user-secret{ title: t(".anon_hint") } diff --git a/app/views/inbox/_entry.haml b/app/views/inbox/_entry.haml index dc1931e5..421f3532 100644 --- a/app/views/inbox/_entry.haml +++ b/app/views/inbox/_entry.haml @@ -19,22 +19,7 @@ .btn-group %button.btn.btn-default.btn-sm.dropdown-toggle{ data: { toggle: :dropdown }, aria: { expanded: false } } %span.caret - .dropdown-menu.dropdown-menu-right{ role: :menu } - - if i.question.user_id != current_user.id - %a.dropdown-item{ name: "ib-report", data: { q_id: i.question.id } } - %i.fa.fa-fw.fa-warning - = t("voc.report") - - if current_user.mod? && i.question.anonymous? && !i.question.generated? - %a.dropdown-item{ name: "mod-block-anon", data: { q_id: i.question.id } } - %i.fa.fa-fw.fa-volume-off - = t("voc.block_site_wide") - %a.dropdown-item{ name: "ib-block-anon", data: { q_id: i.question.id } } - %i.fa.fa-fw.fa-minus-circle - = t("voc.block") - - if current_user.has_role? :administrator - %a.dropdown-item{ href: rails_admin_path_for_resource(i) } - %i.fa.fa-fw.fa-gears - = t("voc.view_in_rails_admin") + = render "actions/question", question: i.question - if current_user == i.user .card-body %textarea.form-control{ name: "ib-answer", placeholder: t(".placeholder"), data: { id: i.id } } diff --git a/app/views/question/_question.haml b/app/views/question/_question.haml index 10c834a6..7892d881 100644 --- a/app/views/question/_question.haml +++ b/app/views/question/_question.haml @@ -12,23 +12,7 @@ %button.btn.btn-link.btn-sm.dropdown-toggle{ data: { toggle: :dropdown }, aria: { expanded: false } } %span.caret - unless hidden - .dropdown-menu.dropdown-menu-right{ role: :menu } - - if current_user.mod? || question.user == current_user - %a.dropdown-item.text-danger{ href: '#', - tabindex: -1, - data: { action: 'ab-question-destroy', - q_id: question.id, - redirect: question.author_is_anonymous? ? '/' : show_user_questions_path(question.user.screen_name) } } - %i.fa.fa-trash-o - = t("voc.delete") - - unless question.user == current_user - %a.dropdown-item{ href: '#', tabindex: -1, data: { action: 'ab-question-report', q_id: question.id } } - %i.fa.fa-exclamation-triangle - = t("voc.report") - - if current_user.has_role? :administrator - %a.dropdown-item{ href: rails_admin_path_for_resource(question) } - %i.fa.fa-gears - = t("voc.view_in_rails_admin") + = render "actions/question", question: question %h6.text-muted.media-heading.answerbox__question-user - identifier = question.author_is_anonymous ? question.author_identifier : nil - if hidden diff --git a/app/views/shared/_question.haml b/app/views/shared/_question.haml index c0e4db24..dbf6b9a3 100644 --- a/app/views/shared/_question.haml +++ b/app/views/shared/_question.haml @@ -12,19 +12,7 @@ .btn-group %button.btn.btn-link.btn-sm.dropdown-toggle{ data: { toggle: :dropdown }, aria: { expanded: false } } %span.caret - .dropdown-menu.dropdown-menu-right{ role: :menu } - - if current_user.mod? || q.user == current_user - %a.dropdown-item.text-danger{ href: '#', tabindex: -1, data: { action: 'ab-question-destroy', q_id: q.id } } - %i.fa.fa-trash-o - = t("voc.delete") - - unless q.user == current_user - %a.dropdown-item{ href: '#', tabindex: -1, data: { action: 'ab-question-report', q_id: q.id } } - %i.fa.fa-exclamation-triangle - = t("voc.report") - - if current_user.has_role? :administrator - %a.dropdown-item{ href: rails_admin_path_for_resource(q) } - %i.fa.fa-gears - = t("voc.view_in_rails_admin") + = render "actions/question", question: q %h6.media-heading.text-muted.answerbox__question-user = t("answerbox.header.asked_html", user: user_screen_name(q.user), time: time_tooltip(q)) - if q.answer_count > 1