From 5562bd0de0f4435512ef3d33dd1af44157b1be4c Mon Sep 17 00:00:00 2001 From: Andreas Nedbal Date: Sun, 21 Aug 2022 15:03:42 +0200 Subject: [PATCH] Split actions from answerbox into separate partials --- app/views/actions/_answer.haml | 22 +++++++++++++++++++++ app/views/actions/_share.haml | 9 +++++++++ app/views/answerbox/_actions.haml | 33 ++----------------------------- 3 files changed, 33 insertions(+), 31 deletions(-) create mode 100644 app/views/actions/_answer.haml create mode 100644 app/views/actions/_share.haml diff --git a/app/views/actions/_answer.haml b/app/views/actions/_answer.haml new file mode 100644 index 00000000..172ec7b9 --- /dev/null +++ b/app/views/actions/_answer.haml @@ -0,0 +1,22 @@ +.dropdown-menu.dropdown-menu-right{ role: :menu } + - if Subscription.is_subscribed(current_user, answer) + -# fun joke should subscribe? + %a.dropdown-item{ href: "#", data: { a_id: answer.id, action: "ab-submarine", torpedo: "no" } } + %i.fa.fa-fw.fa-anchor + = t(".unsubscribe") + - else + %a.dropdown-item{ href: "#", data: { a_id: answer.id, action: "ab-submarine", torpedo: "yes" } } + %i.fa.fa-fw.fa-anchor + = t(".subscribe") + - if privileged? answer.user + %a.dropdown-item.text-danger{ href: "#", data: { a_id: answer.id, action: "ab-destroy" } } + %i.fa.fa-fw.fa-trash-o + = t(".return") + - unless answer.user == current_user + %a.dropdown-item{ href: "#", data: { a_id: answer.id, action: "ab-report" } } + %i.fa.fa-fw.fa-exclamation-triangle + = t("voc.report") + - if current_user.has_role? :administrator + %a.dropdown-item{ href: rails_admin_path_for_resource(answer), 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/actions/_share.haml b/app/views/actions/_share.haml new file mode 100644 index 00000000..489c5488 --- /dev/null +++ b/app/views/actions/_share.haml @@ -0,0 +1,9 @@ +.dropdown-menu.dropdown-menu-right{ role: :menu } + %a.dropdown-item{ href: twitter_share_url(answer), target: "_blank" } + %i.fa.fa-fw.fa-twitter + = t(".twitter") + %a.dropdown-item{ href: tumblr_share_url(answer), target: "_blank" } + %i.fa.fa-fw.fa-tumblr + = t(".tumblr") + %a.dropdown-item{ href: "#", name: "ab-share" } + = t(".other") \ No newline at end of file diff --git a/app/views/answerbox/_actions.haml b/app/views/answerbox/_actions.haml index b169aa3f..6d61b837 100644 --- a/app/views/answerbox/_actions.haml +++ b/app/views/answerbox/_actions.haml @@ -19,38 +19,9 @@ .btn-group %button.btn.btn-link.answerbox__action{ data: { toggle: :dropdown }, aria: { expanded: false } } %i.fa.fa-fw.fa-share-alt{ title: t(".share.title") } - .dropdown-menu.dropdown-menu-right{ role: :menu } - %a.dropdown-item{ href: twitter_share_url(a), target: "_blank" } - %i.fa.fa-fw.fa-twitter - = t(".share.twitter") - %a.dropdown-item{ href: tumblr_share_url(a), target: "_blank" } - %i.fa.fa-fw.fa-tumblr - = t(".share.tumblr") - %a.dropdown-item{ href: "#", name: "ab-share" } - = t(".share.other") + = render "actions/share", answer: a - if user_signed_in? .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 Subscription.is_subscribed(current_user, a) - -# fun joke should subscribe? - %a.dropdown-item{ href: "#", data: { a_id: a.id, action: "ab-submarine", torpedo: "no" } } - %i.fa.fa-anchor - = t(".unsubscribe") - - else - %a.dropdown-item{ href: "#", data: { a_id: a.id, action: "ab-submarine", torpedo: "yes" } } - %i.fa.fa-anchor - = t(".subscribe") - - if privileged? a.user - %a.dropdown-item.text-danger{ href: "#", data: { a_id: a.id, action: "ab-destroy" } } - %i.fa.fa-trash-o - = t(".return") - - unless a.user == current_user - %a.dropdown-item{ href: "#", data: { a_id: a.id, action: "ab-report" } } - %i.fa.fa-exclamation-triangle - = t("voc.report") - - if current_user.has_role? :administrator - %a.dropdown-item{ href: rails_admin_path_for_resource(a), target: "_blank" } - %i.fa.fa-gears - = t("voc.view_in_rails_admin") + = render "actions/answer", answer: a