diff --git a/app/views/answer/show.html.haml b/app/views/answer/show.html.haml
deleted file mode 100644
index 9c1b3f1d..00000000
--- a/app/views/answer/show.html.haml
+++ /dev/null
@@ -1,3 +0,0 @@
-- provide(:title, answer_title(@answer))
-.container.j2-page
- = render 'shared/answerbox', a: @answer
diff --git a/app/views/shared/_answerbox_buttons.html.haml b/app/views/answerbox/_actions.haml
similarity index 98%
rename from app/views/shared/_answerbox_buttons.html.haml
rename to app/views/answerbox/_actions.haml
index d6aacc01..a41345cb 100644
--- a/app/views/shared/_answerbox_buttons.html.haml
+++ b/app/views/answerbox/_actions.haml
@@ -38,4 +38,4 @@
- unless a.user == current_user
%a.dropdown-item{href: '#', data: { a_id: a.id, action: 'ab-report' }}
%i.fa.fa-exclamation-triangle
- = t 'views.actions.report'
+ = t 'views.actions.report'
\ No newline at end of file
diff --git a/app/views/shared/_comments.html.haml b/app/views/answerbox/_comments.haml
similarity index 100%
rename from app/views/shared/_comments.html.haml
rename to app/views/answerbox/_comments.haml
diff --git a/app/views/answerbox/_header.haml b/app/views/answerbox/_header.haml
new file mode 100644
index 00000000..282116c1
--- /dev/null
+++ b/app/views/answerbox/_header.haml
@@ -0,0 +1,29 @@
+.card-header
+ .media.question-media
+ - unless a.question.author_is_anonymous
+ %a.pull-left{href: show_user_profile_path(a.question.user.screen_name)}
+ %img.img-rounded.answerbox--img{src: gravatar_url(a.question.user)}
+ .media-body.question-body
+ - if user_signed_in?
+ .pull-right
+ .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? or 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 'views.actions.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 'views.actions.report'
+ %h6.text-muted.media-heading.answerbox--question-user
+ = raw t('views.answerbox.asked', user: user_screen_name(a.question.user, anonymous: a.question.author_is_anonymous), time: time_tooltip(a.question))
+ - unless a.question.author_is_anonymous
+ - if a.question.answer_count > 1
+ ·
+ %a{href: show_user_question_path(a.question.user.screen_name, a.question.id)}
+ = pluralize(a.question.answer_count, t('views.general.answer'))
+ .answerbox--question-text
+ = a.question.content
\ No newline at end of file
diff --git a/app/views/shared/_smiles.html.haml b/app/views/answerbox/_smiles.haml
similarity index 100%
rename from app/views/shared/_smiles.html.haml
rename to app/views/answerbox/_smiles.haml
diff --git a/app/views/application/_answerbox.haml b/app/views/application/_answerbox.haml
new file mode 100644
index 00000000..1c1566b9
--- /dev/null
+++ b/app/views/application/_answerbox.haml
@@ -0,0 +1,39 @@
+.card.answerbox{data: { id: a.id, q_id: a.question.id }}
+ - if @question.nil?
+ = render "answerbox/header", a: a
+ .card-body
+ - if @display_all.nil?
+ .answerbox--answer-text
+ = markdown a.content[0..255]
+ - if a.content.length > 255
+ [...]
+ %p
+ %a.btn.btn-primary{href: show_user_answer_path(a.user.screen_name, a.id)}
+ = t 'views.answerbox.read'
+ - else
+ .answerbox--answer-text
+ = markdown a.content
+ - if @user.nil?
+ .row
+ .col-md-6.col-sm-4.col-xs-6.text-left.text-muted
+ .media
+ .pull-left
+ %a{href: show_user_profile_path(a.user.screen_name)}
+ %img.img-rounded.answerbox--img{src: gravatar_url(a.user)}
+ .media-body
+ %h6.media-heading.answerbox--answer-user
+ = raw t('views.answerbox.answered', hide: hidespan(t('views.answerbox.hide'), "xs"), user: user_screen_name(a.user))
+ .answerbox--answer-date
+ = link_to(raw(t('views.answerbox.time', time: time_tooltip(a))), show_user_answer_path(a.user.screen_name, a.id))
+ .col-md-6.col-sm-8.col-xs-6.text-right
+ = render 'answerbox/actions', a: a
+ - else
+ .row
+ .col-md-6.col-sm-4.col-xs-6.text-left.text-muted
+ %i.fa.fa-clock-o
+ = link_to(raw(t('views.answerbox.time', time: time_tooltip(a))), show_user_answer_path(a.user.screen_name, a.id))
+ .col-md-6.col-sm-8.col-xs-6.text-right
+ = render 'answerbox/actions', a: a
+ .card-footer{id: "ab-comments-section-#{a.id}", style: @display_all.nil? ? 'display: none' : nil }
+ %div{id: "ab-smiles-#{a.id}"}= render 'answerbox/smiles', a: a
+ %div{id: "ab-comments-#{a.id}"}= render 'answerbox/comments', a: a
\ No newline at end of file
diff --git a/app/views/discover/_tab_answers.html.haml b/app/views/discover/_tab_answers.html.haml
index 35438dd3..0738798d 100644
--- a/app/views/discover/_tab_answers.html.haml
+++ b/app/views/discover/_tab_answers.html.haml
@@ -1,3 +1,3 @@
.tab-pane.active.fade.show{role: "tabpanel", id: "answers"}
- answers.each do |a|
- = render 'shared/answerbox', a: a
+ = render 'answerbox', a: a
diff --git a/app/views/discover/_tab_discussed.html.haml b/app/views/discover/_tab_discussed.html.haml
index a6b73b4f..1dafe7ce 100644
--- a/app/views/discover/_tab_discussed.html.haml
+++ b/app/views/discover/_tab_discussed.html.haml
@@ -1,3 +1,3 @@
.tab-pane.fade{role: "tabpanel", id: "comments"}
- comments.each do |a|
- = render 'shared/answerbox', a: a
+ = render 'answerbox', a: a
diff --git a/app/views/group/index.haml b/app/views/group/index.haml
index 878d73fc..61e139a3 100644
--- a/app/views/group/index.haml
+++ b/app/views/group/index.haml
@@ -1,6 +1,6 @@
#timeline
- @timeline.each do |answer|
- = render 'shared/answerbox', a: answer
+ = render 'answerbox', a: answer
= render 'shared/cursored_pagination_dummy', more_data_available: @more_data_available, last_id: @timeline_last_id
diff --git a/app/views/group/index.js.erb b/app/views/group/index.js.erb
index fd1ddb36..59591f8d 100644
--- a/app/views/group/index.js.erb
+++ b/app/views/group/index.js.erb
@@ -1,5 +1,5 @@
$('#timeline').append('<% @timeline.each do |answer|
- %><%= j render 'shared/answerbox', a: answer
+ %><%= j render 'answerbox', a: answer
%><% end %>');
<% if @more_data_available %>
$('#pagination').html('<%= j render 'shared/cursored_pagination_dummy', more_data_available: @more_data_available, last_id: @timeline_last_id %>');
diff --git a/app/views/public/index.haml b/app/views/public/index.haml
index 50f62dd9..18a8e660 100644
--- a/app/views/public/index.haml
+++ b/app/views/public/index.haml
@@ -1,6 +1,6 @@
#timeline
- @timeline.each do |answer|
- = render 'shared/answerbox', a: answer
+ = render 'answerbox', a: answer
= render 'shared/cursored_pagination_dummy', more_data_available: @more_data_available, last_id: @timeline_last_id
diff --git a/app/views/public/index.js.erb b/app/views/public/index.js.erb
index fd1ddb36..59591f8d 100644
--- a/app/views/public/index.js.erb
+++ b/app/views/public/index.js.erb
@@ -1,5 +1,5 @@
$('#timeline').append('<% @timeline.each do |answer|
- %><%= j render 'shared/answerbox', a: answer
+ %><%= j render 'answerbox', a: answer
%><% end %>');
<% if @more_data_available %>
$('#pagination').html('<%= j render 'shared/cursored_pagination_dummy', more_data_available: @more_data_available, last_id: @timeline_last_id %>');
diff --git a/app/views/question/show.html.haml b/app/views/question/show.html.haml
index 72b7991f..224bb758 100644
--- a/app/views/question/show.html.haml
+++ b/app/views/question/show.html.haml
@@ -6,7 +6,7 @@
#answers
- @answers.each do |a|
- = render 'shared/answerbox', a: a, show_question: false
+ = render 'answerbox', a: a, show_question: false
= render 'shared/cursored_pagination_dummy', more_data_available: @more_data_available, last_id: @answers_last_id
diff --git a/app/views/question/show.js.erb b/app/views/question/show.js.erb
index 10610656..fbbf582f 100644
--- a/app/views/question/show.js.erb
+++ b/app/views/question/show.js.erb
@@ -1,5 +1,5 @@
$('#answers').append('<% @answers.each do |answer|
- %><%= j render 'shared/answerbox', a: answer, show_question: false
+ %><%= j render 'answerbox', a: answer, show_question: false
%><% end %>');
<% if @more_data_available %>
$('#pagination').html('<%= j render 'shared/cursored_pagination_dummy', more_data_available: @more_data_available, last_id: @answers_last_id %>');
diff --git a/app/views/shared/_answerbox.html.haml b/app/views/shared/_answerbox.html.haml
deleted file mode 100644
index 2bf170e4..00000000
--- a/app/views/shared/_answerbox.html.haml
+++ /dev/null
@@ -1,67 +0,0 @@
-.card.answerbox{data: { id: a.id, q_id: a.question.id }}
- - if @question.nil?
- .card-header
- .media.question-media
- - unless a.question.author_is_anonymous
- %a.pull-left{href: show_user_profile_path(a.question.user.screen_name)}
- %img.img-rounded.answerbox--img{src: gravatar_url(a.question.user)}
- .media-body.question-body
- - if user_signed_in?
- .pull-right
- .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? or 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 'views.actions.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 'views.actions.report'
- %h6.text-muted.media-heading.answerbox--question-user
- = raw t('views.answerbox.asked', user: user_screen_name(a.question.user, anonymous: a.question.author_is_anonymous), time: time_tooltip(a.question))
- - unless a.question.author_is_anonymous
- - if a.question.answer_count > 1
- ·
- %a{href: show_user_question_path(a.question.user.screen_name, a.question.id)}
- = pluralize(a.question.answer_count, t('views.general.answer'))
- .answerbox--question-text
- = a.question.content
- .card-body
- - if @display_all.nil?
- .answerbox--answer-text
- = markdown a.content[0..255]
- - if a.content.length > 255
- [...]
- %p
- %a.btn.btn-primary{href: show_user_answer_path(a.user.screen_name, a.id)}
- = t 'views.answerbox.read'
- - else
- .answerbox--answer-text
- = markdown a.content
- - if @user.nil?
- .row
- .col-md-6.col-sm-4.col-xs-6.text-left.text-muted
- .media
- .pull-left
- %a{href: show_user_profile_path(a.user.screen_name)}
- %img.img-rounded.answerbox--img{src: gravatar_url(a.user)}
- .media-body
- %h6.media-heading.answerbox--answer-user
- = raw t('views.answerbox.answered', hide: hidespan(t('views.answerbox.hide'), "xs"), user: user_screen_name(a.user))
- .answerbox--answer-date
- = link_to(raw(t('views.answerbox.time', time: time_tooltip(a))), show_user_answer_path(a.user.screen_name, a.id))
- .col-md-6.col-sm-8.col-xs-6.text-right
- = render 'shared/answerbox_buttons', a: a
- - else
- .row
- .col-md-6.col-sm-4.col-xs-6.text-left.text-muted
- %i.fa.fa-clock-o
- = link_to(raw(t('views.answerbox.time', time: time_tooltip(a))), show_user_answer_path(a.user.screen_name, a.id))
- .col-md-6.col-sm-8.col-xs-6.text-right
- = render 'shared/answerbox_buttons', a: a
- .card-footer{id: "ab-comments-section-#{a.id}", style: @display_all.nil? ? 'display: none' : nil }
- %div{id: "ab-smiles-#{a.id}"}= render 'shared/smiles', a: a
- %div{id: "ab-comments-#{a.id}"}= render 'shared/comments', a: a
diff --git a/app/views/static/index.haml b/app/views/static/index.haml
index 12355001..5b4eda6d 100644
--- a/app/views/static/index.haml
+++ b/app/views/static/index.haml
@@ -1,6 +1,6 @@
#timeline
- @timeline.each do |answer|
- = render 'shared/answerbox', a: answer
+ = render 'answerbox', a: answer
= render 'shared/cursored_pagination_dummy', more_data_available: @more_data_available, last_id: @timeline_last_id
diff --git a/app/views/static/index.js.erb b/app/views/static/index.js.erb
index fd1ddb36..59591f8d 100644
--- a/app/views/static/index.js.erb
+++ b/app/views/static/index.js.erb
@@ -1,5 +1,5 @@
$('#timeline').append('<% @timeline.each do |answer|
- %><%= j render 'shared/answerbox', a: answer
+ %><%= j render 'answerbox', a: answer
%><% end %>');
<% if @more_data_available %>
$('#pagination').html('<%= j render 'shared/cursored_pagination_dummy', more_data_available: @more_data_available, last_id: @timeline_last_id %>');
diff --git a/app/views/user/show.haml b/app/views/user/show.haml
index e1734f5d..a7e81008 100644
--- a/app/views/user/show.haml
+++ b/app/views/user/show.haml
@@ -4,7 +4,7 @@
- unless @user.banned?
#answers
- @answers.each do |a|
- = render 'shared/answerbox', a: a
+ = render 'answerbox', a: a
= render 'shared/cursored_pagination_dummy', more_data_available: @more_data_available, last_id: @answers_last_id
diff --git a/app/views/user/show.js.erb b/app/views/user/show.js.erb
index 443b9d7b..be445de6 100644
--- a/app/views/user/show.js.erb
+++ b/app/views/user/show.js.erb
@@ -1,5 +1,5 @@
$('#answers').append('<% @answers.each do |a|
- %><%= j render 'shared/answerbox', a: a
+ %><%= j render 'answerbox', a: a
%><% end %>');
<% if @more_data_available %>
$('#pagination').html('<%= j render 'shared/cursored_pagination_dummy', more_data_available: @more_data_available, last_id: @answers_last_id %>');