workarea-blog 3.4.9 → 3.5.0
Sign up to get free protection for your applications and to get access to all the features.
- 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) } }
|