workarea-blog 3.4.9 → 3.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/{.eslintrc → .eslintrc.json} +12 -1
- data/.github/workflows/ci.yml +6 -0
- data/CHANGELOG.md +18 -36
- data/Gemfile +3 -3
- data/app/controllers/workarea/storefront/application_controller.decorator +5 -0
- data/app/helpers/workarea/storefront/blogs_helper.rb +44 -0
- data/app/view_models/workarea/admin/blog_entry_view_model.rb +1 -1
- data/app/view_models/workarea/storefront/blog_entry_view_model.rb +1 -1
- data/app/view_models/workarea/storefront/blog_view_model.rb +3 -3
- data/app/views/workarea/admin/content_blog_comments/_summary.html.haml +21 -9
- data/app/views/workarea/admin/content_blog_comments/index.html.haml +8 -7
- data/app/views/workarea/admin/content_blog_entries/_cards.html.haml +1 -1
- data/app/views/workarea/admin/content_blog_entries/edit.html.haml +2 -1
- data/app/views/workarea/admin/content_blogs/edit.html.haml +2 -1
- data/app/views/workarea/storefront/blog_entries/_summary.html.haml +12 -11
- data/app/views/workarea/storefront/blog_entries/show.html.haml +20 -20
- data/app/views/workarea/storefront/blog_metadata/_publisher.html.haml +3 -2
- data/app/views/workarea/storefront/blogs/index.html.haml +4 -4
- data/app/views/workarea/storefront/blogs/show.html.haml +2 -2
- data/config/initializers/content_block_types.rb +1 -1
- data/config/initializers/fields.rb +9 -0
- data/config/initializers/rack_attack.rb +11 -0
- data/config/initializers/workarea.rb +0 -3
- data/config/locales/en.yml +2 -0
- data/lib/workarea/blog/import/wordpress/content_cleaner.rb +1 -1
- data/lib/workarea/blog/version.rb +1 -1
- data/package.json +9 -0
- data/test/dummy/config/initializers/session_store.rb +1 -1
- data/test/factories/wordpress_import.rb +8 -10
- data/test/integration/workarea/blog/rack_attack_integration_test.rb +50 -0
- data/test/system/workarea/admin/blog_user_comments_system_test.rb +41 -1
- data/test/view_models/workarea/storefront/blog_view_model_test.rb +8 -7
- data/workarea-blog.gemspec +3 -3
- metadata +14 -9
- data/.scss-lint.yml +0 -188
- data/.tailor +0 -180
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1878d11681c83efaba7d10e166b5e023802ed47fc4d345557e20231d8162d976
|
4
|
+
data.tar.gz: 5cfe18cd84ae7856383d28260e3b2a365490bb7a312fe378ea14228298eabe84
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2305993048e16f2308caac39eafd6368afe79582ff461b461f9b597436c3ea50ca13fc5af19b0f014dc1d6fffc947195bf6f0bd50426c9461798adab544f3597
|
7
|
+
data.tar.gz: 89c04450a1f4798f27085014d36077b55647a72b99d8a332d4381673ab90b551552017a909f0d72a5ecf23ca4db1587b1fa4ed88a519ae45c1f1edfb7dc4218c
|
@@ -1,7 +1,8 @@
|
|
1
1
|
{
|
2
2
|
"extends": "eslint:recommended",
|
3
3
|
"rules": {
|
4
|
-
"semi": [
|
4
|
+
"semi": ["error", "always"],
|
5
|
+
"eqeqeq": ["error", "always"]
|
5
6
|
},
|
6
7
|
"globals": {
|
7
8
|
"window": true,
|
@@ -20,5 +21,15 @@
|
|
20
21
|
"Waypoint": true,
|
21
22
|
"wysihtml": true,
|
22
23
|
"LocalTime": true,
|
24
|
+
"describe": true,
|
25
|
+
"after": true,
|
26
|
+
"afterEach": true,
|
27
|
+
"before": true,
|
28
|
+
"beforeEach": true,
|
29
|
+
"it": true,
|
30
|
+
"expect": true,
|
31
|
+
"sinon": true,
|
32
|
+
"fixture": true,
|
33
|
+
"chai": true
|
23
34
|
}
|
24
35
|
}
|
data/.github/workflows/ci.yml
CHANGED
@@ -8,6 +8,12 @@ jobs:
|
|
8
8
|
- uses: actions/checkout@v1
|
9
9
|
- uses: workarea-commerce/ci/bundler-audit@v1
|
10
10
|
- uses: workarea-commerce/ci/rubocop@v1
|
11
|
+
- uses: workarea-commerce/ci/eslint@v1
|
12
|
+
with:
|
13
|
+
args: '**/*.js'
|
14
|
+
- uses: workarea-commerce/ci/stylelint@v1
|
15
|
+
with:
|
16
|
+
args: '**/*.scss'
|
11
17
|
|
12
18
|
admin_tests:
|
13
19
|
runs-on: ubuntu-latest
|
data/CHANGELOG.md
CHANGED
@@ -1,53 +1,35 @@
|
|
1
|
-
Workarea Blog 3.
|
1
|
+
Workarea Blog 3.5.0 (2019-11-26)
|
2
2
|
--------------------------------------------------------------------------------
|
3
3
|
|
4
|
-
* Fix
|
4
|
+
* Fix Deprecation Warnings When Querying Entries
|
5
5
|
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
exists, falling back to whatever the content-search gem uses to generate
|
11
|
-
its text. At the moment, this involves extracting text from content
|
12
|
-
blocks that have more than 5 words in them, but this may change in the
|
13
|
-
next major.
|
6
|
+
Use the `.select(&:active?)` format instead of the `.active` scope on
|
7
|
+
blog entries so that segmentation and releases are respected. Also fix
|
8
|
+
content block types syntax and add some test coverage when pulling
|
9
|
+
entries directly from the DB.
|
14
10
|
|
15
|
-
|
11
|
+
BLOG-11
|
16
12
|
Tom Scott
|
17
13
|
|
14
|
+
* Replace usage of deprecated Content.define_block_types
|
18
15
|
|
16
|
+
Matt Duffy
|
19
17
|
|
20
|
-
|
21
|
-
--------------------------------------------------------------------------------
|
22
|
-
|
23
|
-
* Fix Blog Entries Total Count
|
24
|
-
|
25
|
-
The `#total` method on `Storefront::BlogEntryViewModel` was not
|
26
|
-
returning the actual total amount of entries if they exceeded 25, due to
|
27
|
-
Kaminari's default pagination. Use `scoped_entries.total_count` here to
|
28
|
-
avoid the problem.
|
29
|
-
Tom Scott
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
Workarea Blog 3.4.7 (2019-08-21)
|
34
|
-
--------------------------------------------------------------------------------
|
35
|
-
|
36
|
-
* Open Source!
|
18
|
+
* Replace usage of Content::Asset#placeholder with #image_placeholder
|
37
19
|
|
20
|
+
Workarea v3.5 removes the #placeholder method in favor of the more
|
21
|
+
specific #image_placeholder
|
38
22
|
|
23
|
+
BLOG-10
|
24
|
+
Matt Duffy
|
39
25
|
|
40
|
-
|
41
|
-
--------------------------------------------------------------------------------
|
26
|
+
* Move blog_entries_on_index config to administrable fields (#1)
|
42
27
|
|
43
|
-
|
28
|
+
Matt Duffy
|
44
29
|
|
45
|
-
|
46
|
-
selector from the top of the page which assumes that you're previewing
|
47
|
-
content for a future release.
|
30
|
+
* Initial commit on master
|
48
31
|
|
49
|
-
|
50
|
-
Tom Scott
|
32
|
+
Curt Howard
|
51
33
|
|
52
34
|
|
53
35
|
|
data/Gemfile
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
source 'https://rubygems.org'
|
2
|
-
git_source(:github) { |repo| "
|
2
|
+
git_source(:github) { |repo| "https://github.com/#{repo}.git" }
|
3
3
|
|
4
4
|
gemspec
|
5
5
|
|
6
6
|
gem 'listen'
|
7
|
-
|
8
|
-
gem 'workarea-
|
7
|
+
|
8
|
+
gem 'workarea', github: 'workarea-commerce/workarea'
|
@@ -0,0 +1,44 @@
|
|
1
|
+
module Workarea
|
2
|
+
module Storefront
|
3
|
+
module BlogsHelper
|
4
|
+
def blog_posting_schema(entry)
|
5
|
+
{
|
6
|
+
'@context': 'http://schema.org',
|
7
|
+
'@type': 'BlogPosting',
|
8
|
+
'url': blog_entry_url(entry),
|
9
|
+
'image': entry.thumbnail_image_url.presence,
|
10
|
+
'mainEntityOfPage': true,
|
11
|
+
'headline': entry.name,
|
12
|
+
'dateCreated': entry.created_at.to_date,
|
13
|
+
'datePublished': entry.written_at.to_date,
|
14
|
+
'dateModified': entry.updated_at.to_date,
|
15
|
+
'commentCount': entry.comment_count,
|
16
|
+
'keywords': entry.tags,
|
17
|
+
'publisher': {
|
18
|
+
'@type': 'Organization',
|
19
|
+
'name': Workarea.config.site_name,
|
20
|
+
'url': root_url,
|
21
|
+
'logo': image_url('workarea/storefront/logo.png')
|
22
|
+
},
|
23
|
+
'author': {
|
24
|
+
'@type': 'Person',
|
25
|
+
'name': entry.author
|
26
|
+
},
|
27
|
+
'articleBody': strip_tags(
|
28
|
+
render_content_blocks(
|
29
|
+
entry.content_blocks_for('blog_content')
|
30
|
+
).html_safe
|
31
|
+
),
|
32
|
+
comment: entry.comments.map do |comment|
|
33
|
+
{
|
34
|
+
'@type': 'Comment',
|
35
|
+
'author': comment.user_info,
|
36
|
+
'dateCreated': comment.created_at.to_date,
|
37
|
+
'text': comment.body
|
38
|
+
}
|
39
|
+
end
|
40
|
+
}
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
@@ -48,7 +48,7 @@ module Workarea
|
|
48
48
|
end
|
49
49
|
|
50
50
|
def updated_at
|
51
|
-
@updated_at ||= model.entries.active.
|
51
|
+
@updated_at ||= model.entries.newest.select(&:active?).first.try(:updated_at)
|
52
52
|
end
|
53
53
|
|
54
54
|
private
|
@@ -58,7 +58,7 @@ module Workarea
|
|
58
58
|
end
|
59
59
|
|
60
60
|
def scoped_entries
|
61
|
-
return scoped_entries_from_database
|
61
|
+
return scoped_entries_from_database.page unless Release.current.present?
|
62
62
|
|
63
63
|
Kaminari.paginate_array(scoped_entries_filtered_by_current_release)
|
64
64
|
end
|
@@ -68,7 +68,7 @@ module Workarea
|
|
68
68
|
end
|
69
69
|
|
70
70
|
def scoped_entries_from_database
|
71
|
-
scope = ordered_entries.active
|
71
|
+
scope = ordered_entries.where(active: true)
|
72
72
|
scope = scope.tagged_with(options[:tag]) if options[:tag].present?
|
73
73
|
scope
|
74
74
|
end
|
@@ -7,18 +7,30 @@
|
|
7
7
|
%p.comments__comment-time
|
8
8
|
#{time_ago_in_words(model.created_at)} ago
|
9
9
|
- if model.pending
|
10
|
-
|
10
|
+
= t('workarea.admin.content_blogs_comments.summary.pending')
|
11
11
|
.comments__comment-actions
|
12
12
|
.grid.grid--auto
|
13
|
-
|
13
|
+
.grid__cell
|
14
14
|
= link_to edit_content_blog_user_comment_path(model), class: 'text-button' do
|
15
|
-
|
16
|
-
|
15
|
+
%span.grid.grid--auto.grid--middle
|
16
|
+
%span.grid__cell= t('workarea.admin.actions.edit')
|
17
|
+
%span.grid__cell= inline_svg('workarea/admin/icons/edit.svg', class: 'text-button__icon')
|
18
|
+
.grid__cell
|
19
|
+
= link_to content_blog_user_comment_path(model), class: 'text-button text-button--destroy', remote: true, data: { method: 'delete' } do
|
20
|
+
%span.grid.grid--auto.grid--middle
|
21
|
+
%span.grid__cell= t('workarea.admin.actions.delete')
|
22
|
+
%span.grid__cell= inline_svg('workarea/admin/icons/delete.svg', class: 'text-button__icon')
|
23
|
+
- if model.pending?
|
24
|
+
.grid__cell
|
25
|
+
= link_to content_blog_user_comment_path(model), class: 'text-button text-button--create', remote: true, data: { method: 'put', params: { 'blog_comment[approved]' => true } } do
|
26
|
+
%span.grid.grid--auto.grid--middle
|
27
|
+
%span.grid__cell= t('workarea.admin.content_blogs_comments.index.approve')
|
28
|
+
%span.grid__cell= inline_svg('workarea/admin/icons/recommendations.svg', class: 'text-button__icon')
|
29
|
+
.grid__cell
|
30
|
+
= link_to content_blog_user_comment_path(model), class: 'text-button text-button--destroy', remote: true, data: { method: 'put', params: { 'blog_comment[approved]' => false } } do
|
31
|
+
%span.grid.grid--auto.grid--middle
|
32
|
+
%span.grid__cell= t('workarea.admin.content_blogs_comments.index.deny')
|
33
|
+
%span.grid__cell= inline_svg('workarea/admin/icons/close.svg', class: 'text-button__icon')
|
17
34
|
|
18
|
-
= form_tag content_blog_user_comment_path(model), method: 'delete', class: 'grid__cell' do
|
19
|
-
%p
|
20
|
-
= button_tag t('workarea.admin.actions.delete'), value: 'delete_comment', class: 'text-button text-button--destroy' do
|
21
|
-
= t('workarea.admin.actions.delete')
|
22
|
-
= inline_svg('workarea/admin/icons/delete.svg', class: 'text-button__icon')
|
23
35
|
.comments__comment-body
|
24
36
|
%p= model.body
|
@@ -18,7 +18,10 @@
|
|
18
18
|
= render_aux_navigation_for(@blog_comments.blog_entry)
|
19
19
|
|
20
20
|
.view__container.view__container--narrow
|
21
|
-
- if @blog_comments.comments.
|
21
|
+
- if @blog_comments.comments.empty?
|
22
|
+
%p= t('workarea.admin.content_blogs_comments.index.no_comments_found')
|
23
|
+
|
24
|
+
- else
|
22
25
|
- form_path = @blog_comments.blog_entry.present? ? content_blog_user_comments_path(content_blog_entry_id: @blog_comments.blog_entry) : content_blog_user_comments_path
|
23
26
|
= form_tag form_path, method: 'get', id: 'blog_comments_sort_form' do
|
24
27
|
= hidden_field_tag 'content_blog_entry_id', params[:content_blog_entry_id] if params[:content_blog_entry_id].present?
|
@@ -31,9 +34,10 @@
|
|
31
34
|
%p.browsing-controls__count{ data: { browsing_controls_count: @blog_comments.comments.total_count } }
|
32
35
|
= t('workarea.admin.content_blogs_comments.index.comments', count: @blog_comments.comments.total_count)
|
33
36
|
|
34
|
-
.
|
35
|
-
-
|
36
|
-
|
37
|
+
.section
|
38
|
+
.comments__comment-group
|
39
|
+
- @blog_comments.comments.each do |blog_comment|
|
40
|
+
= render_summary_for(blog_comment)
|
37
41
|
|
38
42
|
- if @blog_comments.comments.total_pages > 1
|
39
43
|
= render 'workarea/admin/shared/pagination', collection: @blog_comments.comments
|
@@ -44,6 +48,3 @@
|
|
44
48
|
.grid.grid--auto
|
45
49
|
.grid__cell= link_to t('workarea.admin.shared.bulk_actions.import'), new_data_file_import_path(model_type: Workarea::Content::BlogComment, return_to: form_path), class: 'workflow-bar__button'
|
46
50
|
.grid__cell= link_to t('workarea.admin.shared.bulk_actions.export'), new_data_file_export_path(model_type: Workarea::Content::BlogComment, query_id: generic_admin_search_query_id(model_type: Workarea::Content::BlogComment, entry_id: @blog_comments&.blog_entry&.id), return_to: form_path), class: 'workflow-bar__button'
|
47
|
-
|
48
|
-
- else
|
49
|
-
%p= t('workarea.admin.content_blogs_comments.index.no_comments_found')
|
@@ -41,7 +41,7 @@
|
|
41
41
|
- if local_assigns[:active].blank?
|
42
42
|
.card__body
|
43
43
|
- if model.thumbnail_image.present?
|
44
|
-
= image_tag(model.thumbnail_image_url
|
44
|
+
= image_tag(model.thumbnail_image_url)
|
45
45
|
= link_to thumbnail_image_content_blog_entry_path(model), class: 'card__button' do
|
46
46
|
%span.button.button--small= t('workarea.admin.content_blog_entries.cards.thumbnail_image.button_edit')
|
47
47
|
- else
|
@@ -38,7 +38,8 @@
|
|
38
38
|
.property
|
39
39
|
= label_tag 'blog_entry[slug]', t('workarea.admin.content_blog_entries.edit.slug_label'), class: 'property__name'
|
40
40
|
%span= storefront.blog_entry_url('')
|
41
|
-
= text_field_tag 'blog_entry[slug]', @blog_entry.slug, class: 'text-box text-box--medium', placeholder: @blog_entry.slug || 'your-slug-here'
|
41
|
+
= text_field_tag 'blog_entry[slug]', @blog_entry.slug, class: 'text-box text-box--medium', placeholder: @blog_entry.slug || 'your-slug-here', disabled: current_release.present?
|
42
|
+
= render 'workarea/admin/shared/release_slug_tooltip'
|
42
43
|
|
43
44
|
.property
|
44
45
|
= label_tag 'blog_entry[author]', nil, class: 'property__name' do
|
@@ -32,8 +32,9 @@
|
|
32
32
|
%span.property__text= t('workarea.admin.content_blogs.edit.page_url')
|
33
33
|
|
34
34
|
%span= storefront.blog_url('')
|
35
|
-
= text_field_tag 'blog[slug]', @blog.slug, class: 'text-box text-box--medium', placeholder: @blog.slug || 'your-slug-here'
|
35
|
+
= text_field_tag 'blog[slug]', @blog.slug, class: 'text-box text-box--medium', placeholder: @blog.slug || 'your-slug-here', disabled: current_release.present?
|
36
36
|
%span.property__note= t('workarea.admin.content_blogs.edit.page_url_note')
|
37
|
+
= render 'workarea/admin/shared/release_slug_tooltip'
|
37
38
|
|
38
39
|
.grid
|
39
40
|
.grid__cell.grid__cell--50.grid__cell--25-at-medium
|
@@ -1,25 +1,26 @@
|
|
1
|
-
|
1
|
+
= render_schema_org(blog_posting_schema(entry))
|
2
|
+
|
3
|
+
%article.blog-entry-summary__entry{ class: entry.featured ? 'blog-entry-summary__entry--featured' : '', data: { pagination_item: '' } }
|
2
4
|
%heading
|
3
|
-
%h2.blog-entry-summary__entry-title
|
4
|
-
%span
|
5
|
+
%h2.blog-entry-summary__entry-title
|
6
|
+
%span= link_to entry.name, blog_entry_path(entry)
|
5
7
|
|
6
|
-
%p.blog-entry-summary__entry-author
|
7
|
-
%span
|
8
|
+
%p.blog-entry-summary__entry-author
|
9
|
+
%span= entry.author
|
8
10
|
%p.blog-entry-summary__entry-datetime
|
9
|
-
= local_time(entry.written_at, format: :long
|
10
|
-
%p.blog-entry-summary__entry-comment-count
|
11
|
-
= render 'workarea/storefront/blog_metadata/publisher'
|
11
|
+
= local_time(entry.written_at, format: :long)
|
12
|
+
%p.blog-entry-summary__entry-comment-count= link_to t('workarea.storefront.blogs.comments', count: entry.comment_count), blog_entry_path(entry, anchor: 'blog-entry-comments')
|
12
13
|
|
13
14
|
- if entry.has_thumbnail_image?
|
14
|
-
%p.blog-entry-summary__entry-thumbnail= image_tag(entry.thumbnail_image_url
|
15
|
+
%p.blog-entry-summary__entry-thumbnail= image_tag(entry.thumbnail_image_url)
|
15
16
|
|
16
17
|
- if entry.tags.present?
|
17
18
|
.blog-entry-summary__entry-tags
|
18
19
|
%p.blog-entry-summary__entry-label= t('workarea.storefront.blogs.tags')
|
19
|
-
%ul.blog-entry-summary__entry-tags-list
|
20
|
+
%ul.blog-entry-summary__entry-tags-list
|
20
21
|
- entry.tags.each do |tag|
|
21
22
|
%li.blog-entry-summary__entry-tags-list-item= link_to tag, blog_tagged_path(entry.blog, tag)
|
22
23
|
|
23
|
-
.blog-entry-summary__content
|
24
|
+
.blog-entry-summary__content
|
24
25
|
= entry.summary
|
25
26
|
= link_to t('workarea.storefront.blogs.read_more'), blog_entry_path(entry)
|
@@ -4,13 +4,16 @@
|
|
4
4
|
- add_css(@entry.css)
|
5
5
|
- add_javascript(@entry.javascript)
|
6
6
|
|
7
|
+
= render_schema_org(breadcrumb_list_schema([[t('workarea.storefront.layouts.home'), root_url], [@entry.blog.name, blog_url(@entry.blog)], [@entry.name, blog_entry_url(@entry)]]))
|
8
|
+
= render_schema_org(blog_posting_schema(@entry))
|
9
|
+
|
7
10
|
- content_for :breadcrumbs do
|
8
11
|
%p.breadcrumbs__node-group
|
9
|
-
%span.breadcrumbs__node
|
12
|
+
%span.breadcrumbs__node
|
10
13
|
= link_to t('workarea.storefront.layouts.home'), root_path, rel: 'home'
|
11
|
-
%span.breadcrumbs__node
|
14
|
+
%span.breadcrumbs__node
|
12
15
|
= link_to @entry.blog.name, blog_path(@entry.blog)
|
13
|
-
%span.breadcrumbs__node
|
16
|
+
%span.breadcrumbs__node= @entry.name
|
14
17
|
|
15
18
|
- content_for :head do
|
16
19
|
%link{ href: blog_entry_path(@entry), rel: 'canonical' }
|
@@ -26,32 +29,27 @@
|
|
26
29
|
- content_for :page_aside do
|
27
30
|
= render 'workarea/storefront/blogs/blog_navigation', blog: @entry.blog
|
28
31
|
|
29
|
-
%article.blog-entry.view
|
32
|
+
%article.blog-entry.view
|
30
33
|
|
31
34
|
%heading.blog-entry__header
|
32
35
|
- if @entry.content_blocks_for(:blog_header).present?
|
33
36
|
!= render_content_blocks(@entry.content_blocks_for('blog_header'))
|
34
37
|
|
35
|
-
-
|
36
|
-
%
|
37
|
-
|
38
|
-
%h1.blog-entry__title{ itemprop: 'mainEntityOfPage' }
|
39
|
-
%span{ itemprop: 'headline' }= @entry.name
|
40
|
-
%p.blog-entry__author{ itemprop: 'author' }= @entry.author
|
38
|
+
%h1.blog-entry__title
|
39
|
+
%span= @entry.name
|
40
|
+
%p.blog-entry__author= @entry.author
|
41
41
|
%p.blog-entry__datetime
|
42
|
-
|
43
|
-
|
44
|
-
%p.blog-entry__comment-count{ itemprop: 'commentCount' }= link_to t('workarea.storefront.blogs.comments', count: @entry.comment_count), blog_entry_path(@entry, anchor: 'blog-entry-comments')
|
45
|
-
= render 'workarea/storefront/blog_metadata/publisher'
|
42
|
+
= local_time(@entry.written_at, format: :long)
|
43
|
+
%p.blog-entry__comment-count= link_to t('workarea.storefront.blogs.comments', count: @entry.comment_count), blog_entry_path(@entry, anchor: 'blog-entry-comments')
|
46
44
|
|
47
45
|
- if @entry.tags.present?
|
48
46
|
.blog-entry__tags
|
49
47
|
%p.blog-entry__label= t('workarea.storefront.blogs.tags')
|
50
|
-
%ul.blog-entry__tags-list
|
48
|
+
%ul.blog-entry__tags-list
|
51
49
|
- @entry.tags.each do |tag|
|
52
50
|
%li.blog-entry__tags-list-item= link_to tag, blog_tagged_path(@entry.blog, tag)
|
53
51
|
|
54
|
-
.blog-entry__body
|
52
|
+
.blog-entry__body
|
55
53
|
- if @entry.content_blocks_for(:blog_content).present?
|
56
54
|
!= render_content_blocks(@entry.content_blocks_for('blog_content'))
|
57
55
|
|
@@ -60,8 +58,10 @@
|
|
60
58
|
%h2.blog-entry__products-heading= t('workarea.storefront.blogs.related_products')
|
61
59
|
%ul.grid.grid--auto
|
62
60
|
- @entry.products.each do |product|
|
61
|
+
= render_schema_org(product_schema(product))
|
62
|
+
|
63
63
|
%li.grid__cell>
|
64
|
-
.product-summary
|
64
|
+
.product-summary
|
65
65
|
= render 'workarea/storefront/products/summary', product: product
|
66
66
|
|
67
67
|
#blog-entry-comments.blog-entry__comments
|
@@ -73,13 +73,13 @@
|
|
73
73
|
%p.blog-entry__write-comment-link= link_to t('workarea.storefront.blogs.write_comment'), '#write-comment', class: 'button'
|
74
74
|
%ul.blog-entry__comment-group
|
75
75
|
- @entry.comments.each do |comment|
|
76
|
-
%li.blog-entry__comment
|
76
|
+
%li.blog-entry__comment
|
77
77
|
%p.blog-entry__comment-item.blog-entry__comment-item--author
|
78
78
|
= comment.user_info
|
79
79
|
%p.blog-entry__comment-item.blog-entry__comment-item--datetime
|
80
|
-
= local_time(comment.created_at, format: :long
|
80
|
+
= local_time(comment.created_at, format: :long);
|
81
81
|
|
82
|
-
%p.blog-entry__comment-item.blog-entry__comment-item--body
|
82
|
+
%p.blog-entry__comment-item.blog-entry__comment-item--body
|
83
83
|
= comment.body
|
84
84
|
|
85
85
|
#write-comment.blog-entry__section{ data: { blog_comment_placeholder: blog_entry_comments_path(@entry) } }
|