Merge pull request #635 from Retrospring/feature/actions-partials
This commit is contained in:
commit
f06c07bb47
|
@ -29,7 +29,7 @@ export function answerboxSubscribeHandler(event: Event): void {
|
|||
success: (data) => {
|
||||
if (data.success) {
|
||||
button.dataset.torpedo = ["yes", "no"][torpedo];
|
||||
button.children[0].nextSibling.textContent = ' ' + (torpedo ? I18n.translate('views.actions.unsubscribe') : I18n.translate('views.actions.subscribe'));
|
||||
button.children[0].nextSibling.textContent = ' ' + (torpedo ? I18n.translate('voc.unsubscribe') : I18n.translate('voc.subscribe'));
|
||||
showNotification(I18n.translate(`frontend.subscription.${torpedo ? 'subscribe' : 'unsubscribe'}`));
|
||||
} else {
|
||||
showErrorNotification(I18n.translate(`frontend.subscription.fail.${torpedo ? 'subscribe' : 'unsubscribe'}`));
|
||||
|
|
|
@ -141,6 +141,10 @@ class User < ApplicationRecord
|
|||
has_role?(:moderator) || has_role?(:administrator)
|
||||
end
|
||||
|
||||
def admin?
|
||||
has_role?(:administrator)
|
||||
end
|
||||
|
||||
# region stuff used for reporting/moderation
|
||||
def report(object, reason = nil)
|
||||
existing = Report.find_by(type: "Reports::#{object.class}", target_id: object.id, user_id: self.id, deleted: false)
|
||||
|
|
|
@ -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("voc.unsubscribe")
|
||||
- else
|
||||
%a.dropdown-item{ href: "#", data: { a_id: answer.id, action: "ab-submarine", torpedo: "yes" } }
|
||||
%i.fa.fa-fw.fa-anchor
|
||||
= t("voc.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.admin?
|
||||
%a.dropdown-item{ href: rails_admin_path_for_resource(answer), target: "_blank" }
|
||||
%i.fa.fa-fw.fa-gears
|
||||
= t("voc.view_in_rails_admin")
|
|
@ -0,0 +1,12 @@
|
|||
.dropdown-menu.dropdown-menu-right{ role: :menu }
|
||||
%a.dropdown-item{ href: "#", data: { target: "#modal-view-comment#{comment.id}-smiles", toggle: :modal } }
|
||||
%i.fa.fa-fw.fa-smile-o
|
||||
= t(".view_smiles")
|
||||
- if privileged?(comment.user) || privileged?(answer.user)
|
||||
%a.dropdown-item.text-danger{ href: "#", data: { action: "ab-comment-destroy", c_id: comment.id } }
|
||||
%i.fa.fa-fw.fa-trash-o
|
||||
= t("voc.delete")
|
||||
- unless comment.user == current_user
|
||||
%a.dropdown-item{ href: "#", data: { action: "ab-comment-report", c_id: comment.id } }
|
||||
%i.fa.fa-fw.fa-exclamation-triangle
|
||||
= t("voc.report")
|
|
@ -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")
|
|
@ -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")
|
|
@ -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
|
||||
|
|
|
@ -34,18 +34,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 }
|
||||
%a.dropdown-item{ href: "#", data: { target: "#modal-view-comment#{comment.id}-smiles", toggle: :modal } }
|
||||
%i.fa.fa-fw.fa-smile-o
|
||||
= t(".actions.view_smiles")
|
||||
- if privileged?(comment.user) || privileged?(a.user)
|
||||
%a.dropdown-item.text-danger{ href: "#", data: { action: "ab-comment-destroy", c_id: comment.id } }
|
||||
%i.fa.fa-fw.fa-trash-o
|
||||
= t("voc.delete")
|
||||
- unless comment.user == current_user
|
||||
%a.dropdown-item{ href: "#", data: { action: "ab-comment-report", c_id: comment.id } }
|
||||
%i.fa.fa-fw.fa-exclamation-triangle
|
||||
= t("voc.report")
|
||||
= render "actions/comment", comment: comment, answer: a
|
||||
- if user_signed_in?
|
||||
.form-group.has-feedback.comment__input-group{ name: "ab-comment-new-group", data: { a_id: a.id } }
|
||||
%input.form-control.comment__input{ type: :text, placeholder: t(".placeholder"), name: "ab-comment-new", data: { a_id: a.id } }
|
||||
|
|
|
@ -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") }
|
||||
|
|
|
@ -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 } }
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -69,6 +69,15 @@ en:
|
|||
two_factor_authentication:
|
||||
heading: "Two-factor authentication"
|
||||
otp_attempt: "Please enter the code from your authenticator app"
|
||||
actions:
|
||||
answer:
|
||||
return: "Return to Inbox"
|
||||
comment:
|
||||
view_smiles: "View comment smiles"
|
||||
share:
|
||||
twitter: "Share on Twitter"
|
||||
tumblr: "Share on Tumblr"
|
||||
other: "Share on other apps..."
|
||||
announcement:
|
||||
index:
|
||||
title: :activerecord.models.announcement.other
|
||||
|
@ -89,17 +98,9 @@ en:
|
|||
actions:
|
||||
share:
|
||||
title: "Share"
|
||||
twitter: "Share on Twitter"
|
||||
tumblr: "Share on Tumblr"
|
||||
other: "Share on other apps..."
|
||||
subscribe: "Subscribe"
|
||||
unsubscribe: "Unsubscribe"
|
||||
return: "Return to Inbox"
|
||||
comments:
|
||||
none: "There are no comments yet."
|
||||
placeholder: "Comment..."
|
||||
actions:
|
||||
view_smiles: "View comment smiles"
|
||||
smiles:
|
||||
none: "No one smiled this yet."
|
||||
application:
|
||||
|
|
|
@ -14,6 +14,8 @@ en:
|
|||
logout: "Sign out"
|
||||
save: "Save changes"
|
||||
show_anonymous_questions: "Show all questions from this user"
|
||||
subscribe: "Subscribe"
|
||||
unsubscribe: "Unsubscribe"
|
||||
register: "Sign up"
|
||||
report: "Report"
|
||||
terms: "Terms of Service"
|
||||
|
|
Loading…
Reference in New Issue