votes: fixup various minor issues.

* Add a gap between thumbnails on mobile.
* Adjust CSS for scores and vote buttons.
* Include "Private favorites" as an incentive on the user upgrade page.
* Fix vote buttons not being visible beneath thumbnails on mobile.
* Fix the "Show scores" link not preserving the current page number.
* Fix vote buttons being unintentionally enabled for all thumbnails by default.
* Fix banned and restricted users being able to favorite posts by
  tagging them with `fav:self`.
* Fix search engines being able to crawl /posts?view=score pages.
* Fix broken tests.
This commit is contained in:
evazion
2021-11-19 22:40:34 -06:00
parent 3ae62d08eb
commit eda23c719a
20 changed files with 108 additions and 94 deletions

View File

@@ -6,8 +6,3 @@
max-width: 160px;
}
}
span.post-favcount a {
color: var(--text-color);
&:hover { text-decoration: underline; }
}

View File

@@ -9,7 +9,7 @@ class PostPreviewComponent < ApplicationComponent
delegate :image_width, :image_height, :file_ext, :file_size, :duration, :is_animated?, to: :media_asset
delegate :media_asset, to: :post
def initialize(post:, tags: "", show_deleted: false, show_cropped: true, show_votes: true, link_target: post, pool: nil, similarity: nil, recommended: nil, compact: nil, size: nil, current_user: CurrentUser.user, **options)
def initialize(post:, tags: "", show_deleted: false, show_cropped: true, show_votes: false, link_target: post, pool: nil, similarity: nil, recommended: nil, compact: nil, size: nil, current_user: CurrentUser.user, **options)
super
@post = post
@tags = tags.presence

View File

@@ -55,8 +55,8 @@
<% end %>
</p>
<% elsif show_votes -%>
<p class="desc">
<div class="post-preview-score text-sm mt-1">
<%= render_post_votes post, current_user: current_user %>
</p>
</div>
<% end -%>
<% end -%>

View File

@@ -1,12 +1,10 @@
@import "../../javascript/src/styles/base/000_vars.scss";
article.post-preview {
width: 154px;
margin: 0 10px 10px 0;
text-align: center;
display: inline-block;
position: relative;
vertical-align: top;
overflow: hidden;
a {
display: inline-block;
@@ -119,38 +117,16 @@ body[data-current-user-can-approve-posts="true"] .post-preview {
}
}
@media screen and (max-width: 660px) {
@media screen and (min-width: 660px) {
article.post-preview {
margin: 0;
text-align: center;
vertical-align: middle;
display: inline-block;
a {
margin: 0 auto;
}
img {
max-width: 33.3vw;
max-height: 33.3vw;
border: none !important;
}
}
.user-disable-cropped-false {
article.post-preview {
width: 33.3%;
height: 33.3vw;
overflow: hidden;
}
img {
width: 33.3vw;
height: 33.3vw;
&.has-cropped-false {
object-fit: cover;
}
}
width: 154px;
margin: 0 10px 10px 0;
vertical-align: top;
}
}
@media screen and (max-width: 660px) {
article.post-preview img {
border: none !important;
}
}

View File

@@ -1,3 +1,5 @@
@import "../../javascript/src/styles/base/000_vars.scss";
.post-votes {
// Fix it so that the vote buttons don't move when the score changes width.
// XXX duplicated from app/components/comment_component/comment_component.scss
@@ -7,10 +9,11 @@
min-width: 1.25em;
white-space: nowrap;
vertical-align: middle;
a {
color: var(--text-color);
&:hover { text-decoration: underline; }
}
}
}
.posts-container {
.post-score a {
@include inactive-link;
}
}

View File

@@ -1,6 +1,6 @@
<div class="post-votes-tooltip thin-scrollbar">
<div class="text-center text-muted">
+<%= post.up_score %> / <%= post.down_score %> <%= upvote_ratio %>
<div class="text-center text-muted whitespace-nowrap">
+<%= post.up_score %> / -<%= post.down_score.abs %> <%= upvote_ratio %>
</div>
<div class="post-voters">