mirror of
https://github.com/lingble/chatwoot.git
synced 2025-10-30 18:47:51 +00:00
chore: Add formatting for the view count (#6447)
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
@@ -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;
|
||||
},
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -41,8 +41,8 @@ RSpec.describe 'Public Articles API', type: :request do
|
||||
describe 'GET /public/api/v1/portals/:slug/articles/:id' do
|
||||
it 'Fetch article with the id' do
|
||||
get "/hc/#{portal.slug}/#{category.locale}/#{category.slug}/#{article.id}"
|
||||
|
||||
expect(response).to have_http_status(:success)
|
||||
expect(article.reload.views).to eq 1
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -7,6 +7,6 @@ FactoryBot.define do
|
||||
content { 'MyText' }
|
||||
description { 'MyDescrption' }
|
||||
status { 1 }
|
||||
views { 1 }
|
||||
views { 0 }
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user