workarea-blog 3.4.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (213) hide show
  1. checksums.yaml +7 -0
  2. data/.editorconfig +20 -0
  3. data/.eslintignore +2 -0
  4. data/.eslintrc +24 -0
  5. data/.github/ISSUE_TEMPLATE/bug_report.md +37 -0
  6. data/.github/ISSUE_TEMPLATE/documentation-request.md +17 -0
  7. data/.github/ISSUE_TEMPLATE/feature_request.md +20 -0
  8. data/.gitignore +16 -0
  9. data/.rspec +2 -0
  10. data/.scss-lint.yml +188 -0
  11. data/.tailor +180 -0
  12. data/.yardopts +1 -0
  13. data/CHANGELOG.md +1123 -0
  14. data/CODE_OF_CONDUCT.md +3 -0
  15. data/CONTRIBUTING.md +3 -0
  16. data/Gemfile +7 -0
  17. data/LICENSE +52 -0
  18. data/README.md +140 -0
  19. data/Rakefile +42 -0
  20. data/app/assets/images/workarea/admin/blog/content_block_types/blog_entry.svg +1 -0
  21. data/app/assets/images/workarea/admin/blog/icons/blog.svg +1 -0
  22. data/app/assets/images/workarea/admin/blog/icons/blog_entry.svg +1 -0
  23. data/app/assets/images/workarea/admin/blog/icons/blog_post_comment.svg +1 -0
  24. data/app/assets/javascripts/workarea/storefront/blog/modules/blog_comment_placeholder.js +33 -0
  25. data/app/assets/stylesheets/workarea/admin/blog/components/_blog_entry_card.scss +14 -0
  26. data/app/assets/stylesheets/workarea/storefront/blog/components/_blog_entry.scss +91 -0
  27. data/app/assets/stylesheets/workarea/storefront/blog/components/_blog_entry_summary.scss +74 -0
  28. data/app/assets/stylesheets/workarea/storefront/blog/components/_featured_entry_content_block.scss +22 -0
  29. data/app/controllers/workarea/admin/application_controller.decorator +5 -0
  30. data/app/controllers/workarea/admin/content_blog_comments_controller.rb +54 -0
  31. data/app/controllers/workarea/admin/content_blog_entries_controller.rb +70 -0
  32. data/app/controllers/workarea/admin/content_blogs_controller.rb +56 -0
  33. data/app/controllers/workarea/admin/create_content_blog_entries_controller.rb +69 -0
  34. data/app/controllers/workarea/storefront/blog_comments_controller.rb +14 -0
  35. data/app/controllers/workarea/storefront/blog_entries_controller.rb +48 -0
  36. data/app/controllers/workarea/storefront/blogs_controller.rb +19 -0
  37. data/app/helpers/workarea/admin/blogs_helper.rb +61 -0
  38. data/app/models/workarea/content/blog.rb +26 -0
  39. data/app/models/workarea/content/blog_comment.rb +67 -0
  40. data/app/models/workarea/content/blog_entry.rb +35 -0
  41. data/app/models/workarea/content/fields/blog_entry_id.rb +11 -0
  42. data/app/models/workarea/content/fields/blog_id.rb +8 -0
  43. data/app/models/workarea/search/admin/content_blog.rb +27 -0
  44. data/app/models/workarea/search/admin/content_blog_entry.rb +37 -0
  45. data/app/queries/workarea/metadata/content_blog.rb +6 -0
  46. data/app/queries/workarea/metadata/content_blog_entry.rb +6 -0
  47. data/app/queries/workarea/search/admin_blog_entries.rb +24 -0
  48. data/app/queries/workarea/search/admin_blogs.rb +20 -0
  49. data/app/seeds/workarea/blog_comments_seeds.rb +26 -0
  50. data/app/seeds/workarea/blog_entry_seeds.rb +73 -0
  51. data/app/seeds/workarea/blog_seeds.rb +53 -0
  52. data/app/services/workarea/search/queries/blog_admin.rb +20 -0
  53. data/app/services/workarea/search/queries/blog_entry_admin.rb +13 -0
  54. data/app/services/workarea/set_navigable.decorator +10 -0
  55. data/app/view_models/workarea/admin/blog_comments_view_model.rb +45 -0
  56. data/app/view_models/workarea/admin/blog_entries_view_model.rb +31 -0
  57. data/app/view_models/workarea/admin/blog_entry_view_model.rb +29 -0
  58. data/app/view_models/workarea/admin/blog_search_view_model.rb +6 -0
  59. data/app/view_models/workarea/admin/blog_view_model.rb +13 -0
  60. data/app/view_models/workarea/storefront/blog_entry_view_model.rb +43 -0
  61. data/app/view_models/workarea/storefront/blog_index_view_model.rb +17 -0
  62. data/app/view_models/workarea/storefront/blog_view_model.rb +83 -0
  63. data/app/view_models/workarea/storefront/content_blocks/blog_entry_content_block_view_model.rb +63 -0
  64. data/app/views/workarea/admin/activities/_content_blog_comment_create.html.haml +12 -0
  65. data/app/views/workarea/admin/activities/_content_blog_comment_destroy.html.haml +9 -0
  66. data/app/views/workarea/admin/activities/_content_blog_comment_update.html.haml +10 -0
  67. data/app/views/workarea/admin/activities/_content_blog_create.html.haml +12 -0
  68. data/app/views/workarea/admin/activities/_content_blog_destroy.html.haml +10 -0
  69. data/app/views/workarea/admin/activities/_content_blog_entry_create.html.haml +12 -0
  70. data/app/views/workarea/admin/activities/_content_blog_entry_destroy.html.haml +10 -0
  71. data/app/views/workarea/admin/activities/_content_blog_entry_update.html.haml +10 -0
  72. data/app/views/workarea/admin/activities/_content_blog_update.html.haml +10 -0
  73. data/app/views/workarea/admin/blog/_dashboard_navigation.html.haml +1 -0
  74. data/app/views/workarea/admin/blog/_menu.html.haml +13 -0
  75. data/app/views/workarea/admin/content_blocks/_blog_entry_id.html.haml +4 -0
  76. data/app/views/workarea/admin/content_blocks/_blog_id.html.haml +3 -0
  77. data/app/views/workarea/admin/content_blog_comments/_summary.html.haml +24 -0
  78. data/app/views/workarea/admin/content_blog_comments/edit.html.haml +60 -0
  79. data/app/views/workarea/admin/content_blog_comments/index.html.haml +49 -0
  80. data/app/views/workarea/admin/content_blog_entries/_aux_navigation.html.haml +4 -0
  81. data/app/views/workarea/admin/content_blog_entries/_cards.html.haml +113 -0
  82. data/app/views/workarea/admin/content_blog_entries/_summary.html.haml +10 -0
  83. data/app/views/workarea/admin/content_blog_entries/edit.html.haml +75 -0
  84. data/app/views/workarea/admin/content_blog_entries/index.html.haml +80 -0
  85. data/app/views/workarea/admin/content_blog_entries/index.json.jbuilder +5 -0
  86. data/app/views/workarea/admin/content_blog_entries/show.html.haml +20 -0
  87. data/app/views/workarea/admin/content_blog_entries/thumbnail_image.html.haml +55 -0
  88. data/app/views/workarea/admin/content_blogs/_aux_navigation.html.haml +2 -0
  89. data/app/views/workarea/admin/content_blogs/_cards.html.haml +58 -0
  90. data/app/views/workarea/admin/content_blogs/_summary.html.haml +6 -0
  91. data/app/views/workarea/admin/content_blogs/edit.html.haml +51 -0
  92. data/app/views/workarea/admin/content_blogs/index.html.haml +76 -0
  93. data/app/views/workarea/admin/content_blogs/index.json.jbuilder +4 -0
  94. data/app/views/workarea/admin/content_blogs/new.html.haml +33 -0
  95. data/app/views/workarea/admin/content_blogs/show.html.haml +19 -0
  96. data/app/views/workarea/admin/create_content_blog_entries/content.html.haml +28 -0
  97. data/app/views/workarea/admin/create_content_blog_entries/featured_products.html.haml +71 -0
  98. data/app/views/workarea/admin/create_content_blog_entries/publish.html.haml +51 -0
  99. data/app/views/workarea/admin/create_content_blog_entries/setup.html.haml +61 -0
  100. data/app/views/workarea/admin/create_content_blog_entries/thumbnail_image.html.haml +48 -0
  101. data/app/views/workarea/storefront/blog_comments/index.html.haml +31 -0
  102. data/app/views/workarea/storefront/blog_entries/_summary.html.haml +25 -0
  103. data/app/views/workarea/storefront/blog_entries/show.html.haml +85 -0
  104. data/app/views/workarea/storefront/blog_metadata/_publisher.html.haml +7 -0
  105. data/app/views/workarea/storefront/blogs/_blog_navigation.html.haml +7 -0
  106. data/app/views/workarea/storefront/blogs/index.html.haml +25 -0
  107. data/app/views/workarea/storefront/blogs/show.atom.builder +26 -0
  108. data/app/views/workarea/storefront/blogs/show.html.haml +31 -0
  109. data/app/views/workarea/storefront/content_blocks/_blog_entry.html.haml +20 -0
  110. data/app/workers/workarea/generate_content_metadata.decorator +15 -0
  111. data/bin/rails +18 -0
  112. data/config/initializers/appends.rb +26 -0
  113. data/config/initializers/content_block_types.rb +13 -0
  114. data/config/initializers/jump_to_navigation.rb +3 -0
  115. data/config/initializers/seeds.rb +5 -0
  116. data/config/initializers/workarea.rb +15 -0
  117. data/config/locales/en.yml +244 -0
  118. data/config/routes.rb +49 -0
  119. data/data/blog_thumbnails/thumbnail_1.png +0 -0
  120. data/data/blog_thumbnails/thumbnail_2.png +0 -0
  121. data/data/blog_thumbnails/thumbnail_3.png +0 -0
  122. data/lib/tasks/import_wordpress.rake +13 -0
  123. data/lib/tasks/import_wordpress_attachments.rake +18 -0
  124. data/lib/tasks/import_wordpress_pages.rake +21 -0
  125. data/lib/tasks/import_wordpress_posts.rake +25 -0
  126. data/lib/workarea/blog/engine.rb +8 -0
  127. data/lib/workarea/blog/import/wordpress/attachment.rb +40 -0
  128. data/lib/workarea/blog/import/wordpress/content_cleaner.rb +64 -0
  129. data/lib/workarea/blog/import/wordpress/entry.rb +76 -0
  130. data/lib/workarea/blog/import/wordpress/entry_parser.rb +64 -0
  131. data/lib/workarea/blog/import/wordpress/page.rb +69 -0
  132. data/lib/workarea/blog/import/wordpress/page_parser.rb +50 -0
  133. data/lib/workarea/blog/version.rb +5 -0
  134. data/lib/workarea/blog.rb +11 -0
  135. data/test/dummy/Rakefile +6 -0
  136. data/test/dummy/app/assets/config/manifest.js +4 -0
  137. data/test/dummy/app/assets/images/.keep +0 -0
  138. data/test/dummy/app/assets/javascripts/application.js +13 -0
  139. data/test/dummy/app/assets/stylesheets/application.css +15 -0
  140. data/test/dummy/app/controllers/application_controller.rb +3 -0
  141. data/test/dummy/app/controllers/concerns/.keep +0 -0
  142. data/test/dummy/app/helpers/application_helper.rb +2 -0
  143. data/test/dummy/app/jobs/application_job.rb +2 -0
  144. data/test/dummy/app/mailers/application_mailer.rb +4 -0
  145. data/test/dummy/app/models/concerns/.keep +0 -0
  146. data/test/dummy/app/views/layouts/application.html.erb +14 -0
  147. data/test/dummy/app/views/layouts/mailer.html.erb +13 -0
  148. data/test/dummy/app/views/layouts/mailer.text.erb +1 -0
  149. data/test/dummy/bin/bundle +3 -0
  150. data/test/dummy/bin/rails +4 -0
  151. data/test/dummy/bin/rake +4 -0
  152. data/test/dummy/bin/setup +34 -0
  153. data/test/dummy/bin/update +29 -0
  154. data/test/dummy/config/application.rb +26 -0
  155. data/test/dummy/config/boot.rb +5 -0
  156. data/test/dummy/config/cable.yml +9 -0
  157. data/test/dummy/config/environment.rb +5 -0
  158. data/test/dummy/config/environments/development.rb +59 -0
  159. data/test/dummy/config/environments/production.rb +86 -0
  160. data/test/dummy/config/environments/test.rb +43 -0
  161. data/test/dummy/config/initializers/application_controller_renderer.rb +6 -0
  162. data/test/dummy/config/initializers/assets.rb +11 -0
  163. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  164. data/test/dummy/config/initializers/cookies_serializer.rb +5 -0
  165. data/test/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  166. data/test/dummy/config/initializers/inflections.rb +16 -0
  167. data/test/dummy/config/initializers/mime_types.rb +4 -0
  168. data/test/dummy/config/initializers/new_framework_defaults.rb +18 -0
  169. data/test/dummy/config/initializers/session_store.rb +3 -0
  170. data/test/dummy/config/initializers/workarea.rb +3 -0
  171. data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
  172. data/test/dummy/config/locales/en.yml +23 -0
  173. data/test/dummy/config/puma.rb +47 -0
  174. data/test/dummy/config/routes.rb +5 -0
  175. data/test/dummy/config/secrets.yml +22 -0
  176. data/test/dummy/config/spring.rb +6 -0
  177. data/test/dummy/config.ru +5 -0
  178. data/test/dummy/db/seeds.rb +2 -0
  179. data/test/dummy/lib/assets/.keep +0 -0
  180. data/test/dummy/log/.keep +0 -0
  181. data/test/factories/blog.rb +33 -0
  182. data/test/factories/wordpress_import.rb +17 -0
  183. data/test/fixtures/test_wordpress.xml +493 -0
  184. data/test/integration/workarea/blog/admin_integration_test.rb +55 -0
  185. data/test/integration/workarea/blog/create_blog_entries_integration_test.rb +106 -0
  186. data/test/integration/workarea/blog/storefront_integration_test.rb +112 -0
  187. data/test/integration/workarea/blog/wordpress_import_integration_test.rb +26 -0
  188. data/test/lib/workarea/blog/import/wordpress/attachment_test.rb +20 -0
  189. data/test/lib/workarea/blog/import/wordpress/content_cleaner_test.rb +65 -0
  190. data/test/lib/workarea/blog/import/wordpress/entry_parser_test.rb +42 -0
  191. data/test/lib/workarea/blog/import/wordpress/entry_test.rb +61 -0
  192. data/test/lib/workarea/blog/import/wordpress/page_parser_test.rb +35 -0
  193. data/test/lib/workarea/blog/import/wordpress/page_test.rb +52 -0
  194. data/test/models/workarea/content/blog_comment_test.rb +57 -0
  195. data/test/models/workarea/content/blog_entry_test.rb +17 -0
  196. data/test/queries/workarea/metadata/content_blog_entry_test.rb +36 -0
  197. data/test/queries/workarea/metadata/content_blog_test.rb +36 -0
  198. data/test/support/workarea/blog/stub_wordpress_assets.rb +19 -0
  199. data/test/system/workarea/admin/blog_entries_system_test.rb +103 -0
  200. data/test/system/workarea/admin/blog_system_test.rb +93 -0
  201. data/test/system/workarea/admin/blog_taxonomy_system_test.rb +21 -0
  202. data/test/system/workarea/admin/blog_user_comments_system_test.rb +138 -0
  203. data/test/system/workarea/storefront/blog_content_block_system_test.rb +36 -0
  204. data/test/system/workarea/storefront/blog_system_test.rb +256 -0
  205. data/test/test_helper.rb +9 -0
  206. data/test/view_models/workarea/admin/blog_comments_view_model_test.rb +77 -0
  207. data/test/view_models/workarea/admin/blog_entries_view_model_test.rb +36 -0
  208. data/test/view_models/workarea/storefront/blog_entry_content_block_view_model_test.rb +100 -0
  209. data/test/view_models/workarea/storefront/blog_entry_view_model_test.rb +47 -0
  210. data/test/view_models/workarea/storefront/blog_view_model_test.rb +149 -0
  211. data/test/workers/workarea/generate_content_blog_metadata_test.rb +18 -0
  212. data/workarea-blog.gemspec +19 -0
  213. metadata +274 -0
@@ -0,0 +1,49 @@
1
+ - @page_title = t('workarea.admin.content_blogs_comments.index.page_title')
2
+
3
+ .view.comments
4
+ .view__header
5
+ .grid.grid--right.grid--middle
6
+ .grid__cell.grid__cell--50
7
+ .view__heading
8
+ - if @blog_comments.blog_entry.present?
9
+ = link_to t('workarea.admin.content_blogs_comments.index.dashboard_link', blog_name: @blog_comments.blog_entry.blog.name), content_blog_blog_entries_path(@blog_comments.blog_entry.blog.slug)
10
+ - else
11
+ = link_to t('workarea.admin.content_blogs_comments.index.all_blogs'), content_blogs_path
12
+ - if @blog_comments.blog_entry.present?
13
+ %h1= link_to t('workarea.admin.content_blogs_comments.index.comments_for_entry', entry_name: @blog_comments.blog_entry.name), url_for(@blog_comments.blog_entry)
14
+ - else
15
+ %h1= t('workarea.admin.content_blogs_comments.index.blog_entry_comments')
16
+ .grid__cell.grid__cell--25
17
+ - if @blog_comments.blog_entry.present?
18
+ = render_aux_navigation_for(@blog_comments.blog_entry)
19
+
20
+ .view__container.view__container--narrow
21
+ - if @blog_comments.comments.any?
22
+ - 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
+ = form_tag form_path, method: 'get', id: 'blog_comments_sort_form' do
24
+ = hidden_field_tag 'content_blog_entry_id', params[:content_blog_entry_id] if params[:content_blog_entry_id].present?
25
+
26
+ .browsing-controls.browsing-controls--with-divider.browsing-controls--center
27
+ .property.property--inline
28
+ = label_tag 'sort', t('workarea.admin.search.sort_by'), class: 'property__name'
29
+ = select_tag 'sort', options_for_select(sort_options(@blog_comments), params[:sort]), data: { form_submitting_control: '' }
30
+
31
+ %p.browsing-controls__count{ data: { browsing_controls_count: @blog_comments.comments.total_count } }
32
+ = t('workarea.admin.content_blogs_comments.index.comments', count: @blog_comments.comments.total_count)
33
+
34
+ .comments__comment-group
35
+ - @blog_comments.comments.each do |blog_comment|
36
+ = render_summary_for(blog_comment)
37
+
38
+ - if @blog_comments.comments.total_pages > 1
39
+ = render 'workarea/admin/shared/pagination', collection: @blog_comments.comments
40
+
41
+ .workflow-bar
42
+ .grid
43
+ .grid__cell.grid__cell--50
44
+ .grid.grid--auto
45
+ .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
+ .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')
@@ -0,0 +1,4 @@
1
+ .grid.grid--auto.grid--right.grid--middle
2
+ - if @blog_entry.present?
3
+ .grid__cell= link_to t('workarea.admin.content_blog_entries.aux_navigation.view_blog'), content_blog_path(@blog_entry.blog)
4
+ .grid__cell= link_to t('workarea.admin.actions.view_on_storefront'), storefront.blog_entry_path(model)
@@ -0,0 +1,113 @@
1
+ .grid.grid--auto.grid--flush.grid--center
2
+ .grid__cell
3
+ .card{ class: card_classes(:attributes, local_assigns[:active]) }
4
+ = link_to edit_content_blog_entry_path(model), class: 'card__header' do
5
+ %span.card__header-text= t('workarea.admin.content_blog_entries.cards.attributes.title')
6
+ = inline_svg 'workarea/admin/icons/attributes.svg', class: 'card__icon'
7
+
8
+ - if local_assigns[:active].blank?
9
+ .card__body
10
+ %ul.list-reset
11
+ %li
12
+ %strong= t('workarea.admin.content_blog_entries.cards.attributes.author')
13
+ = model.author.titleize
14
+ %li
15
+ %strong= t('workarea.admin.content_blog_entries.cards.attributes.summary')
16
+ = model.summary.presence || t('workarea.admin.content_blog_entries.cards.attributes.none')
17
+ %li
18
+ %strong= t('workarea.admin.content_blog_entries.cards.attributes.tags')
19
+ = model.tags.join(', ').presence || t('workarea.admin.content_blog_entries.cards.attributes.none')
20
+ %li
21
+ %strong= t('workarea.admin.content_blog_entries.cards.attributes.featured')
22
+ = model.featured.to_s.titleize
23
+ %li
24
+ %strong= t('workarea.admin.content_blog_entries.cards.attributes.written_at')
25
+ = local_time(model.written_at)
26
+ %li
27
+ %strong= t('workarea.admin.fields.updated_at')
28
+ #{local_time_ago(model.updated_at)}
29
+ %li
30
+ %strong= t('workarea.admin.content_blog_entries.cards.attributes.created')
31
+ #{local_time_ago(model.created_at)}
32
+ = link_to edit_content_blog_entry_path(model), class: 'card__button' do
33
+ %span.button.button--small= t('workarea.admin.content_blog_entries.cards.attributes.button')
34
+
35
+ .grid__cell
36
+ .card{ class: card_classes(:thumbnail_image, local_assigns[:active]) }
37
+ = link_to thumbnail_image_content_blog_entry_path(model), class: 'card__header' do
38
+ %span.card__header-text= t('workarea.admin.content_blog_entries.cards.thumbnail_image.title')
39
+ = inline_svg 'workarea/admin/icons/images.svg', class: 'card__icon'
40
+
41
+ - if local_assigns[:active].blank?
42
+ .card__body
43
+ - if model.thumbnail_image.present?
44
+ = image_tag(model.thumbnail_image_url, itemprop: 'image' )
45
+ = link_to thumbnail_image_content_blog_entry_path(model), class: 'card__button' do
46
+ %span.button.button--small= t('workarea.admin.content_blog_entries.cards.thumbnail_image.button_edit')
47
+ - else
48
+ .card__empty-note
49
+ %p= t('workarea.admin.content_blog_entries.cards.thumbnail_image.no_thumbnail_image')
50
+ %p= t('workarea.admin.content_blog_entries.cards.thumbnail_image.description')
51
+ = link_to thumbnail_image_content_blog_entry_path(model), class: 'card__button' do
52
+ %span.button.button--small= t('workarea.admin.content_blog_entries.cards.thumbnail_image.button_add')
53
+
54
+ .grid__cell
55
+ = render 'workarea/admin/content/card', content: model.content, active: local_assigns[:active]
56
+
57
+ .grid__cell
58
+ .card{ class: card_classes(:featured_products, local_assigns[:active]) }
59
+ = link_to select_featured_product_path(model.to_global_id), class: 'card__header' do
60
+ %span.card__header-text= t('workarea.admin.content_blog_entries.cards.featured_products.title')
61
+ = inline_svg 'workarea/admin/icons/featured_products.svg', class: 'card__icon'
62
+
63
+ - if local_assigns[:active].blank?
64
+ .card__body
65
+ - if model.featured_products.empty?
66
+ .card__empty-note
67
+ %p= t('workarea.admin.content_blog_entries.cards.featured_products.empty')
68
+ %p= t('workarea.admin.content_blog_entries.cards.featured_products.description')
69
+ = link_to select_featured_product_path(model.to_global_id), class: 'card__button' do
70
+ %span.button.button--small= t('workarea.admin.content_blog_entries.cards.featured_products.empty_button')
71
+ - else
72
+ %ol.grid
73
+ - model.featured_products.take(4).each_with_index do |product, i|
74
+ %li.grid__cell.grid__cell--50
75
+ .card__photo-box
76
+ - if i == 3 && model.featured_products.size > 4
77
+ %span.card__photo +#{model.featured_products.size - i}
78
+ - else
79
+ = image_tag product_image_url(product.primary_image, :medium), alt: product.name, class: 'card__photo'
80
+ = link_to edit_featured_product_path(model.to_global_id), class: 'card__button' do
81
+ %span.button.button--small= t('workarea.admin.content_blog_entries.cards.featured_products.button')
82
+
83
+ .grid__cell
84
+ .card{ class: card_classes(:user_comments, local_assigns[:active]) }
85
+ = link_to content_blog_entry_comments_path(content_blog_entry_id: model.slug), class: 'card__header' do
86
+ %span.card__header-text= t('workarea.admin.content_blog_entries.cards.comments.title')
87
+ = inline_svg 'workarea/admin/icons/comments.svg', class: 'card__icon'
88
+
89
+ - if local_assigns[:active].blank?
90
+ .card__body
91
+ - if model.comments.present?
92
+ .comments
93
+ %ul.comments__comment-group
94
+ - model.comments.take(3).each do |comment|
95
+ %li.comments__comment
96
+ .comments__comment-avatar
97
+ = avatar_for comment.author
98
+ .comments__comment-body
99
+ %span.comments__comment-author= comment.author.name
100
+ %span= comment.body
101
+ %span.comments__comment-time #{time_ago_in_words(comment.created_at)} ago
102
+
103
+ = link_to content_blog_entry_comments_path(content_blog_entry_id: model.slug), class: 'card__button' do
104
+ %span.button.button--small= t('workarea.admin.content_blog_entries.cards.comments.button_edit')
105
+ - else
106
+ %p= t('workarea.admin.content_blog_entries.cards.comments.no_comments')
107
+
108
+ = link_to content_blog_user_comments_path(blog_entry_id: model.slug), class: 'card__button' do
109
+ %span.button.button--small= t('workarea.admin.content_blog_entries.cards.comments.button_add')
110
+
111
+ .grid__cell
112
+ = render 'workarea/admin/timeline/card', timeline: model.timeline, active: local_assigns[:active]
113
+
@@ -0,0 +1,10 @@
1
+ = link_to content_blog_entry_path(model), class: 'summary' do
2
+ %span.summary__type= t('workarea.admin.content_blog_entries.summary.blog_entry')
3
+ %span.summary__name= model.name
4
+ .summary__info-container
5
+ - if model.written_at.present?
6
+ %span.summary__info #{local_time(model.written_at)}
7
+ - else
8
+ %span.summary__info #{local_time(model.updated_at)}
9
+
10
+ %span.summary__info= t('workarea.admin.content_blog_entries.summary.comments', count: model.comment_count)
@@ -0,0 +1,75 @@
1
+ - @page_title = t('workarea.admin.content_blog_entries.edit.page_title', name: @blog_entry.name)
2
+
3
+ .view
4
+ .view__header
5
+ .grid.grid--middle
6
+ .grid__cell.grid__cell--25
7
+ = render 'workarea/admin/releases/select'
8
+ .grid__cell.grid__cell--50
9
+ .view__heading
10
+ = link_to "↑ #{t('workarea.admin.content_blog_entries.show.index_link', name: @blog_entry.blog.name)}", content_blog_blog_entries_path(content_blog_id: @blog_entry.blog.slug), class: 'view__dashboard-button'
11
+ %h1= link_to @blog_entry.name, url_for(@blog_entry)
12
+ .grid__cell.grid__cell--25
13
+ = render_aux_navigation_for(@blog_entry)
14
+
15
+ .view__container
16
+ = render_cards_for(@blog_entry, :attributes)
17
+
18
+ .view__container.view__container--narrow
19
+
20
+ - if @blog_entry.errors.present?
21
+ = render 'workarea/admin/shared/errors', errors: @blog_entry.errors
22
+
23
+ = form_tag content_blog_entry_path(@blog_entry), method: 'put', id: 'blog_entry_form', multipart: true do
24
+
25
+ .section
26
+
27
+ .property.property--required
28
+ = label_tag 'blog_entry[name]', nil, class: 'property__name' do
29
+ %span.property__text= t('workarea.admin.content_blog_entries.edit.name')
30
+ = text_field_tag 'blog_entry[name]', @blog_entry.name, class: 'text-box text-box--i18n', required: true
31
+
32
+ .property
33
+ = label_tag 'blog_entry[tag_list]', nil, class: 'property__name' do
34
+ %span.property__text= t('workarea.admin.fields.tags')
35
+ = text_field_tag 'blog_entry[tag_list]', @blog_entry.tag_list, class: 'text-box'
36
+ %span.property__note= t('workarea.admin.content_blog_entries.edit.tags_note')
37
+
38
+ .property
39
+ = label_tag 'blog_entry[slug]', t('workarea.admin.content_blog_entries.edit.slug_label'), class: 'property__name'
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'
42
+
43
+ .property
44
+ = label_tag 'blog_entry[author]', nil, class: 'property__name' do
45
+ %span.property__text= t('workarea.admin.content_blog_entries.edit.author')
46
+ %span.property__requirement *
47
+ = text_field_tag 'blog_entry[author]', @blog_entry.author, class: 'text-box', required: true
48
+
49
+ .property
50
+ = label_tag 'blog_entry[summary]', nil, class: 'property__name' do
51
+ %span.property__text= t('workarea.admin.content_blog_entries.edit.summary')
52
+ = text_area_tag 'blog_entry[summary]', @blog_entry.summary, class: 'text-box text-box--multi-line'
53
+
54
+ .grid
55
+ .grid__cell.grid__cell--50-at-medium
56
+ .property
57
+ = label_tag 'blog_entry[written_at]', nil, class: 'property__name' do
58
+ %span.property__text= t('workarea.admin.content_blog_entries.edit.date_written')
59
+ = hidden_field_tag 'blog_entry[written_at]', @blog_entry.written_at, class: 'text-box', data: { datetimepicker_field: { inline: true } }
60
+
61
+ .grid.grid--hug
62
+ .grid__cell.grid__cell--50.grid__cell--25-at-medium
63
+ .compound-property
64
+ %span.compound-property__name= t('workarea.admin.fields.active')
65
+ = toggle_button_for 'blog_entry[active]', @blog_entry.active?
66
+
67
+ .grid__cell.grid__cell--50.grid__cell--25-at-medium
68
+ .compound-property
69
+ %span.compound-property__name= t('workarea.admin.content_blog_entries.edit.featured')
70
+ = toggle_button_for 'blog_entry[featured]', @blog_entry.featured
71
+
72
+ .workflow-bar
73
+ .grid.grid--auto.grid--right.grid--middle
74
+ .grid__cell= render 'workarea/admin/shared/publishing_select'
75
+ .grid__cell= button_tag t('workarea.admin.form.save_changes'), value: 'save_blog_entry', class: 'workflow-bar__button workflow-bar__button--update'
@@ -0,0 +1,80 @@
1
+ - @page_title = t('workarea.admin.content_blog_entries.index.entries_for', name: @blog.name)
2
+
3
+ .view
4
+ .view__header
5
+ .grid.grid--middle.grid--right
6
+ .grid__cell.grid__cell--50
7
+ .view__heading
8
+ = link_to "↑ #{t('workarea.admin.content_blogs.edit.index_link')}", content_blogs_path, class: 'view__dashboard-button'
9
+ %h1= link_to t('workarea.admin.content_blog_entries.index.entries_for', name: @blog.name), url_for(@blog)
10
+ .grid__cell.grid__cell--25
11
+ = render_aux_navigation_for(@blog)
12
+
13
+ .view__container
14
+ = render_cards_for(@blog, :blog_entries)
15
+
16
+ .browsing-controls.browsing-controls--with-divider.browsing-controls--center
17
+ = form_tag content_blog_blog_entries_path(content_blog_id: params[:content_blog_id]), method: 'get', id: 'blog_entry_search_form' do
18
+ = facet_hidden_inputs(@search.facets)
19
+ .browsing-controls__sort
20
+ .property.property--inline
21
+ = label_tag 'sort', t('workarea.admin.search.sort_by'), class: 'property__name'
22
+ = select_tag :sort, options_for_select(@search.sorts, selected: @search.sort), data: { form_submitting_control: '' }
23
+
24
+ .browsing-controls__search
25
+ .search-form
26
+ = text_field_tag :q, params[:q], class: 'search-form__input', id: 'search_categories', title: t('workarea.admin.search.keywords'), placeholder: t('workarea.admin.search.keywords')
27
+ = submit_tag 'search_categories', class: 'search-form__button'
28
+
29
+ = render 'workarea/admin/shared/creation_date', search: @search, form_path: catalog_categories_path
30
+
31
+ - if @search.displayed_facets.present?
32
+ - @search.displayed_facets.each do |facet|
33
+ = render "workarea/admin/facets/#{facet.type}", facet: facet
34
+
35
+ .browsing-controls__toggle-filters
36
+ %button.text-button{ type: 'button', data: { toggle_filters: '' } }= t('workarea.admin.search.show_filters')
37
+
38
+ - if @search.results.total_pages > 1
39
+ .index-filters__row.hidden-if-js-enabled
40
+ .index-filters__cell= render 'workarea/admin/shared/pagination', collection: @search.results
41
+
42
+ %p.browsing-controls__count{ data: { browsing_controls_count: @search.total } }
43
+ = pluralize(@search.total, 'blog content')
44
+
45
+ - if @search.results.any?
46
+ %table.index-table
47
+ %thead
48
+ %tr
49
+ %th.index-table__control-cell
50
+ .checkbox
51
+ = check_box_tag 'select_all', nil, false, id: 'select_all', class: 'checkbox__input', data: { bulk_action_select_all: '' }
52
+ = label_tag 'select_all', t('workarea.admin.bulk_actions.select_all'), class: 'checkbox__label'
53
+ %th= t('workarea.admin.fields.name')
54
+ %th= t('workarea.admin.content_blog_entries.fields.author')
55
+ %th.align-center= t('workarea.admin.content_blog_entries.fields.featured')
56
+ %th.align-center= t('workarea.admin.content_blog_entries.fields.comments')
57
+ %th.align-center= t('workarea.admin.fields.content_blocks')
58
+ %th= t('workarea.admin.fields.updated_at')
59
+ %tbody
60
+ - @search.results.each do |result|
61
+ %tr.index-table__row{ class: ('index-table__row--inactive' unless result.active) }
62
+ %td.index-table__control-cell
63
+ .checkbox
64
+ = check_box_tag 'global_id', result.to_gid_param, false, class: 'checkbox__input', id: dom_id(result), data: { bulk_action_item: '' }
65
+ = label_tag dom_id(result), '', class: 'checkbox__label', title: t('workarea.admin.bulk_actions.add_summary_button')
66
+ %td
67
+ = link_to result.name, content_blog_entry_path(result)
68
+ = upcoming_changesets_icon_for(result)
69
+ %td= result.author.titleize
70
+ %td.align-center= t("workarea.admin.#{result.featured}")
71
+ %td.align-center= result.comments.count
72
+ %td.align-center= result.content.blocks.count
73
+ %td= local_time_ago(result.updated_at)
74
+
75
+ .workflow-bar
76
+ .grid
77
+ .grid__cell.grid__cell--50
78
+ = render 'workarea/admin/shared/bulk_actions', klass: Workarea::Content::BlogEntry, search: @search
79
+ .grid__cell.grid__cell--50.align-right
80
+ = link_to t('workarea.admin.content_blog_entries.index.new_blog_entry'), content_blog_create_entry_path(content_blog_id: @blog), id: 'add_blog_entry', class: 'workflow-bar__button workflow-bar__button--create'
@@ -0,0 +1,5 @@
1
+ json.results @search.results do |entry|
2
+ json.id entry.id
3
+ json.label entry.name
4
+ json.value entry.id.to_s
5
+ end
@@ -0,0 +1,20 @@
1
+ - @page_title = @blog_entry.name
2
+ - @selected_navigation_nodes = ['Marketing', 'Blogs']
3
+
4
+ .view
5
+ .view__header
6
+ .grid.grid--middle
7
+ .grid__cell.grid__cell--25
8
+ = render 'workarea/admin/releases/select'
9
+ .grid__cell.grid__cell--50
10
+ .view__heading
11
+ = link_to "↑ #{t('workarea.admin.content_blog_entries.show.index_link', name: @blog_entry.blog.name)}", content_blog_blog_entries_path(content_blog_id: @blog_entry.blog.slug), class: 'view__dashboard-button'
12
+ %h1= @blog_entry.name
13
+ .grid__cell.grid__cell--25
14
+ = render_aux_navigation_for(@blog_entry)
15
+
16
+ .view__container
17
+ = render_cards_for(@blog_entry)
18
+
19
+ .workflow-bar
20
+ = link_to t('workarea.admin.actions.delete'), content_blog_entry_path(@blog_entry), class: 'workflow-bar__button workflow-bar__button--delete', data: { method: 'delete', confirm: t('workarea.admin.actions.delete_confirmation') }
@@ -0,0 +1,55 @@
1
+ - @page_title = t('workarea.admin.content_blog_entries.thumbnail_image.page_title', name: @blog_entry.name)
2
+
3
+ .view
4
+ .view__header
5
+ .grid.grid--middle
6
+ .grid__cell.grid__cell--25
7
+ = render 'workarea/admin/releases/select'
8
+ .grid__cell.grid__cell--50
9
+ .view__heading
10
+ = link_to "↑ #{t('workarea.admin.content_blog_entries.thumbnail_image.index_link', name: @blog_entry.blog.name)}", content_blog_blog_entries_path(content_blog_id: @blog_entry.blog.slug)
11
+ %h1= link_to @blog_entry.name, url_for(@blog_entry)
12
+ .grid__cell.grid__cell--25
13
+ = render_aux_navigation_for(@blog_entry)
14
+
15
+ .view__container
16
+ = render_cards_for(@blog_entry, :thumbnail_image)
17
+
18
+ .view__container.view__container--narrow
19
+
20
+ - if @blog_entry.errors.present?
21
+ = render 'workarea/admin/shared/errors', errors: @blog_entry.errors
22
+
23
+ = form_tag update_thumbnail_image_content_blog_entry_path(@blog_entry), method: 'put', id: 'blog_entry_form', multipart: true do
24
+ .section
25
+ %h2= t('workarea.admin.content_blog_entries.thumbnail_image.thumbnail_image')
26
+ - if @blog_entry.has_thumbnail_image?
27
+ %table.data-pairs
28
+ %tbody
29
+ %tr
30
+ %th
31
+ %span.data-pairs__name= t('workarea.admin.content_blog_entries.thumbnail_image.current_image')
32
+ %td= link_to image_tag(@blog_entry.thumbnail_image_url, alt: t('workarea.admin.content_blog_entries.thumbnail_image.view_thumbnail_image')), @blog_entry.thumbnail_image_url, target: '_blank'
33
+
34
+ .property
35
+ = label_tag 'blog_entry[thumbnail_image]', class: 'property__name' do
36
+ %span.property__text= t('workarea.admin.content_blog_entries.thumbnail_image.choose_image_file')
37
+
38
+ .asset-picker-field{ data: { asset_picker_field: '' } }
39
+ .asset-picker-field__cell
40
+ = hidden_field_tag "blog_entry[thumbnail_image]", @blog_entry[:thumbnail_image], class: 'text-box text-box--i18n'
41
+
42
+ %span{ data: { asset_name: true } }
43
+ - asset = Workarea::Content::Asset.find_or_initialize_by(id: @blog_entry[:thumbnail_image])
44
+ = asset.name.presence || t('workarea.admin.content_blocks.asset.name_missing')
45
+
46
+ .asset-picker-field__cell= link_to t('workarea.admin.content_blocks.asset.select_an_asset'), insert_content_assets_path(file_type: 'image'), class: 'text-button', data: { asset_picker_field_open: '', turbolinks: false }
47
+ - if asset.name.present?
48
+ .asset-picker-field__cell= button_tag t('workarea.admin.content_blocks.asset.clear_asset'), type: 'button', value: 'clear_asset', id: 'clear_asset', class: 'text-button text-button--destroy', data: { asset_picker_field_clear: '' }
49
+
50
+ %span.property__note= t('workarea.admin.content_blog_entries.thumbnail_image.asset_input_note')
51
+
52
+ .workflow-bar
53
+ .grid.grid--auto.grid--right.grid--middle
54
+ .grid__cell= render 'workarea/admin/shared/publishing_select'
55
+ .grid__cell= button_tag t('workarea.admin.form.save_changes'), value: 'save_blog_entry', class: 'workflow-bar__button workflow-bar__button--update'
@@ -0,0 +1,2 @@
1
+ .grid.grid--auto.grid--right.grid--middle
2
+ .grid__cell= link_to t('workarea.admin.actions.view_on_storefront'), storefront.blog_path(model)
@@ -0,0 +1,58 @@
1
+ .grid.grid--auto.grid--flush.grid--center
2
+ .grid__cell
3
+ .card{ class: card_classes(:attributes, local_assigns[:active]) }
4
+ = link_to edit_content_blog_path(model), class: 'card__header' do
5
+ %span.card__header-text= t('workarea.admin.content_blogs.cards.attributes.title')
6
+ = inline_svg 'workarea/admin/icons/attributes.svg', class: 'card__icon'
7
+
8
+ - if local_assigns[:active].blank?
9
+ .card__body
10
+ %ul.list-reset
11
+ %li
12
+ %strong= t('workarea.admin.content_blogs.cards.attributes.entries')
13
+ = model.entries.count
14
+ %li
15
+ %strong= t('workarea.admin.content_blogs.cards.attributes.navigation')
16
+ = model.navigation.to_s.titleize
17
+ %li
18
+ %strong= t('workarea.admin.content_blogs.cards.attributes.modified')
19
+ #{local_time_ago(model.updated_at)}
20
+ %li
21
+ %strong= t('workarea.admin.content_blogs.cards.attributes.created')
22
+ #{local_time_ago(model.created_at)}
23
+ = link_to edit_content_blog_path(model), class: 'card__button' do
24
+ %span.button.button--small= t('workarea.admin.content_blogs.cards.attributes.button')
25
+
26
+ .grid__cell
27
+ .card{ class: card_classes(:blog_entries, local_assigns[:active]) }
28
+ = link_to content_blog_blog_entries_path(content_blog_id: model.slug), class: 'card__header' do
29
+ %span.card__header-text= t('workarea.admin.content_blogs.cards.blog_entries.title')
30
+ = inline_svg 'workarea/admin/blog/icons/blog_entry.svg', class: 'card__icon'
31
+
32
+ - if local_assigns[:active].blank?
33
+ .card__body
34
+ - if model.entries.empty?
35
+ .card__empty-note
36
+ %p= t('workarea.admin.content_blogs.cards.blog_entries.empty')
37
+ = link_to create_content_blog_entries_path(content_blog_id: model), class: 'card__button' do
38
+ %span.button.button--small= t('workarea.admin.content_blogs.cards.blog_entries.button_create')
39
+ - else
40
+ %ul.list-reset
41
+ - model.entries.take(10).each_with_index do |entry, i|
42
+ %li
43
+ %p
44
+ = entry.name
45
+ %br
46
+ = t('workarea.admin.content_blogs.cards.blog_entries.by', author: entry.author)
47
+
48
+ = link_to content_blog_blog_entries_path(content_blog_id: model.slug), class: 'card__button' do
49
+ %span.button.button--small= t('workarea.admin.content_blogs.cards.blog_entries.button')
50
+
51
+ .grid__cell
52
+ = render 'workarea/admin/content/card', content: model.content, active: local_assigns[:active]
53
+
54
+ .grid__cell
55
+ = render 'workarea/admin/timeline/card', timeline: model.timeline, active: local_assigns[:active]
56
+
57
+ .grid__cell
58
+ = render 'workarea/admin/comments/card', commentable: model, active: local_assigns[:active]
@@ -0,0 +1,6 @@
1
+ = link_to content_blog_path(model), class: 'summary' do
2
+ %span.summary__type= t('workarea.admin.content_blogs.summary.type')
3
+ %span.summary__name= model.name
4
+ .summary__info-container
5
+ %span.summary__info #{local_time_ago(model.updated_at)}
6
+ %span.summary__info= t('workarea.admin.content_blogs.summary.entries', count: model.entries.count)
@@ -0,0 +1,51 @@
1
+ - @page_title = t('workarea.admin.content_blogs.edit.page_title', name: @blog.name)
2
+
3
+ .view
4
+ .view__header
5
+ .grid.grid--middle
6
+ .grid__cell.grid__cell--25
7
+ = render 'workarea/admin/releases/select'
8
+ .grid__cell.grid__cell--50
9
+ .view__heading
10
+ = link_to "↑ #{t('workarea.admin.content_blogs.edit.index_link')}", content_blogs_path, class: 'view__dashboard-button'
11
+ %h1= link_to t('workarea.admin.content_blogs.edit.page_title', name: @blog.name), url_for(@blog)
12
+ .grid__cell.grid__cell--25
13
+ = render_aux_navigation_for(@blog)
14
+
15
+ .view__container
16
+ = render_cards_for(@blog, :attributes)
17
+
18
+ .view__container.view__container--narrow
19
+
20
+ - if @blog.errors.present?
21
+ = render 'workarea/admin/shared/errors', errors: @blog.errors
22
+
23
+ = form_tag content_blog_path(@blog), method: 'put', id: 'blog_form' do
24
+ .section
25
+ .property
26
+ = label_tag 'blog_name', nil, class: 'property__name' do
27
+ %span.property__text= t('workarea.admin.content_blogs.edit.name')
28
+ %span.property__requirement *
29
+ = text_field_tag 'blog[name]', @blog.name, class: 'text-box text-box--i18n', required: true
30
+ .property
31
+ = label_tag 'blog_slug', nil, class: 'property__name' do
32
+ %span.property__text= t('workarea.admin.content_blogs.edit.page_url')
33
+
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'
36
+ %span.property__note= t('workarea.admin.content_blogs.edit.page_url_note')
37
+
38
+ .grid
39
+ .grid__cell.grid__cell--50.grid__cell--25-at-medium
40
+ .property
41
+ = label_tag 'blog_updated_at', t('workarea.admin.fields.updated_at'), class: 'property__name'
42
+ = local_time(@blog.updated_at)
43
+ .grid__cell.grid__cell--50.grid__cell--25-at-medium
44
+ .property
45
+ = label_tag 'blog_created_at', t('workarea.admin.fields.created_at'), class: 'property__name'
46
+ = local_time(@blog.created_at)
47
+
48
+ .workflow-bar
49
+ .grid.grid--auto.grid--right.grid--middle
50
+ .grid__cell= render 'workarea/admin/shared/publishing_select'
51
+ .grid__cell= button_tag 'Save changes', value: 'save_blog', class: 'workflow-bar__button workflow-bar__button--update'
@@ -0,0 +1,76 @@
1
+ - @page_title = t('workarea.admin.content_blogs.index.title')
2
+
3
+ .view
4
+ .view__header
5
+ .grid.grid--middle.grid--center
6
+ .grid__cell.grid__cell--50
7
+ .view__heading
8
+ = link_to "↑ #{t('workarea.admin.content_blogs.index.dashboard_link')}", root_path, class: 'view__dashboard-button'
9
+ %h1= t('workarea.admin.content_blogs.index.title')
10
+
11
+ .view__container
12
+ .browsing-controls.browsing-controls--with-divider.browsing-controls--center
13
+ = form_tag content_blogs_path, method: 'get', id: 'blog_search_form' do
14
+ = facet_hidden_inputs(@search.facets)
15
+ .browsing-controls__sort
16
+ .property.property--inline
17
+ = label_tag 'sort', t('workarea.admin.search.sort_by'), class: 'property__name'
18
+ = select_tag :sort, options_for_select(@search.sorts, selected: @search.sort), data: { form_submitting_control: '' }
19
+
20
+ .browsing-controls__search
21
+ .search-form
22
+ = text_field_tag :q, params[:q], class: 'search-form__input', id: 'search_categories', title: t('workarea.admin.search.keywords'), placeholder: t('workarea.admin.search.keywords')
23
+ = submit_tag 'search_categories', class: 'search-form__button'
24
+
25
+ = render 'workarea/admin/shared/creation_date', search: @search, form_path: catalog_categories_path
26
+
27
+ - if @search.facets.present?
28
+ - @search.facets.each do |facet|
29
+ = render "workarea/admin/facets/#{facet.type}", facet: facet
30
+
31
+ .browsing-controls__toggle-filters
32
+ %button.text-button{ type: 'button', data: { toggle_filters: '' } }= t('workarea.admin.search.show_filters')
33
+
34
+ - if @search.facet_selections.any?
35
+ = render 'workarea/admin/facets/applied', search: @search, reset_path: catalog_categories_path
36
+
37
+ %p.browsing-controls__count{ data: { browsing_controls_count: @search.total } }
38
+ = pluralize(@search.total, 'blog')
39
+
40
+ - if @search.results.any?
41
+ %table.index-table
42
+ %thead
43
+ %tr
44
+ %th.index-table__control-cell
45
+ .checkbox
46
+ = check_box_tag 'select_all', nil, false, id: 'select_all', class: 'checkbox__input', data: { bulk_action_select_all: '' }
47
+ = label_tag 'select_all', t('workarea.admin.bulk_actions.select_all'), class: 'checkbox__label'
48
+ %th= t('workarea.admin.fields.name')
49
+ %th.align-center= t('workarea.admin.content_blogs.fields.entries')
50
+ %th= t('workarea.admin.content_blogs.fields.navigation')
51
+ %th= t('workarea.admin.fields.updated_at')
52
+ %tbody
53
+ - @search.results.each do |result|
54
+ %tr.index-table__row
55
+ %td.index-table__control-cell
56
+ .checkbox
57
+ = check_box_tag 'global_id', result.to_gid_param, false, class: 'checkbox__input', id: dom_id(result), data: { bulk_action_item: '' }
58
+ = label_tag dom_id(result), '', class: 'checkbox__label', title: t('workarea.admin.bulk_actions.add_summary_button')
59
+ %td
60
+ = link_to result.name, content_blog_path(result)
61
+ = upcoming_changesets_icon_for(result)
62
+ = comments_icon_for(result)
63
+ %td.align-center= result.entries.count
64
+ %td
65
+ - unless result.navigation.blank?
66
+ = result.navigation.to_s.titleize
67
+ - else
68
+ = t('workarea.admin.content_blogs.cards.attributes.no_navigation')
69
+ %td= local_time_ago(result.created_at)
70
+
71
+ .workflow-bar
72
+ .grid
73
+ .grid__cell.grid__cell--50
74
+ = render 'workarea/admin/shared/bulk_actions', klass: Workarea::Content::Blog, search: @search
75
+ .grid__cell.grid__cell--50.align-right
76
+ = link_to t('workarea.admin.content_blogs.index.button'), new_content_blog_path, id: 'add_blog', class: 'workflow-bar__button workflow-bar__button--create'
@@ -0,0 +1,4 @@
1
+ json.results @search.results do |blog|
2
+ json.label blog.name
3
+ json.value blog.id.to_s
4
+ end