chore: Add formatting for the view count (#6447)

This commit is contained in:
Pranav Raj S
2023-02-13 14:29:14 -08:00
committed by GitHub
parent caca99a823
commit 98ff185d42
5 changed files with 20 additions and 6 deletions

View File

@@ -16,8 +16,7 @@ class Public::Api::V1::Portals::ArticlesController < PublicController
def set_article
@article = @category.articles.find(params[:id])
@article.views = @article.views ? @article.views + 1 : 1
@article.save
@article.increment_view_count
@parsed_content = render_article_content(@article.content)
end

View File

@@ -29,8 +29,8 @@
</router-link>
</td>
<td>
<span class="fs-small">
{{ views || 0 }}
<span class="fs-small" :title="formattedViewCount">
{{ readableViewCount }}
</span>
</td>
<td>
@@ -95,6 +95,15 @@ export default {
lastUpdatedAt() {
return this.dynamicTime(this.updatedAt);
},
formattedViewCount() {
return Number(this.views || 0).toLocaleString('en');
},
readableViewCount() {
return new Intl.NumberFormat('en-US', {
notation: 'compact',
compactDisplay: 'short',
}).format(this.views || 0);
},
articleAuthorName() {
return this.author.name;
},

View File

@@ -106,6 +106,12 @@ class Article < ApplicationRecord
update(status: :draft)
end
def increment_view_count
# rubocop:disable Rails/SkipsModelValidations
update_column(:views, views? ? views + 1 : 1)
# rubocop:enable Rails/SkipsModelValidations
end
private
def ensure_account_id