biovision-post 0.2.180325 → 0.21.190513.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (236) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +79 -13
  3. data/app/assets/images/biovision/post/icons/time.svg +6 -0
  4. data/app/assets/images/biovision/post/publisher_logo.png +0 -0
  5. data/app/assets/javascripts/biovision/post/biovision-posts.js +258 -0
  6. data/app/assets/stylesheets/biovision/post/admin/posts.scss +93 -0
  7. data/app/assets/stylesheets/biovision/post/posts.scss +88 -37
  8. data/app/controllers/admin/editorial_members_controller.rb +43 -0
  9. data/app/controllers/admin/featured_posts_controller.rb +23 -0
  10. data/app/controllers/admin/post_group_categories_controller.rb +19 -0
  11. data/app/controllers/admin/post_group_tags_controller.rb +19 -0
  12. data/app/controllers/admin/post_groups_controller.rb +62 -0
  13. data/app/controllers/admin/post_illustrations_controller.rb +26 -0
  14. data/app/controllers/admin/post_images_controller.rb +33 -0
  15. data/app/controllers/admin/post_links_controller.rb +19 -0
  16. data/app/controllers/admin/post_tags_controller.rb +30 -0
  17. data/app/controllers/admin/post_types_controller.rb +16 -4
  18. data/app/controllers/admin/posts_controller.rb +26 -2
  19. data/app/controllers/articles_controller.rb +23 -11
  20. data/app/controllers/authors_controller.rb +27 -0
  21. data/app/controllers/blog_posts_controller.rb +23 -11
  22. data/app/controllers/editorial_members_controller.rb +65 -0
  23. data/app/controllers/featured_posts_controller.rb +59 -0
  24. data/app/controllers/my/posts_controller.rb +124 -0
  25. data/app/controllers/news_controller.rb +23 -11
  26. data/app/controllers/post_categories_controller.rb +4 -14
  27. data/app/controllers/post_groups_controller.rb +76 -0
  28. data/app/controllers/post_illustrations_controller.rb +22 -0
  29. data/app/controllers/post_images_controller.rb +62 -0
  30. data/app/controllers/post_links_controller.rb +37 -0
  31. data/app/controllers/post_tags_controller.rb +41 -0
  32. data/app/controllers/posts_controller.rb +119 -14
  33. data/app/helpers/biovision_posts_helper.rb +114 -5
  34. data/app/jobs/application_job.rb +7 -0
  35. data/app/jobs/post_body_parser_job.rb +15 -0
  36. data/app/models/editorial_member.rb +92 -0
  37. data/app/models/editorial_member_post_type.rb +15 -0
  38. data/app/models/featured_post.rb +25 -0
  39. data/app/models/post.rb +203 -38
  40. data/app/models/post_category.rb +76 -54
  41. data/app/models/post_group.rb +84 -0
  42. data/app/models/post_group_category.rb +36 -0
  43. data/app/models/post_group_tag.rb +32 -0
  44. data/app/models/post_illustration.rb +62 -0
  45. data/app/models/post_image.rb +88 -0
  46. data/app/models/post_layout.rb +14 -0
  47. data/app/models/post_link.rb +2 -0
  48. data/app/models/post_post_category.rb +24 -0
  49. data/app/models/post_post_tag.rb +21 -0
  50. data/app/models/post_tag.rb +70 -0
  51. data/app/models/post_translation.rb +7 -0
  52. data/app/models/post_type.rb +18 -2
  53. data/app/models/post_zen_category.rb +6 -0
  54. data/app/models/zen_category.rb +21 -0
  55. data/app/services/post_manager.rb +52 -15
  56. data/app/services/post_parser.rb +80 -0
  57. data/app/uploaders/post_image_uploader.rb +9 -9
  58. data/app/views/admin/editorial_members/_nav_item.html.erb +2 -0
  59. data/app/views/admin/editorial_members/entity/_in_list.html.erb +37 -0
  60. data/app/views/admin/editorial_members/index.html.erb +15 -0
  61. data/app/views/admin/editorial_members/show.html.erb +71 -0
  62. data/app/views/admin/featured_posts/_add.html.erb +140 -0
  63. data/app/views/admin/featured_posts/_language.html.erb +14 -0
  64. data/app/views/admin/featured_posts/_nav_item.html.erb +2 -0
  65. data/app/views/admin/featured_posts/entity/_in_list.html.erb +26 -0
  66. data/app/views/admin/featured_posts/index.html.erb +18 -0
  67. data/app/views/admin/index/dashboard/_biovision_post.html.erb +32 -25
  68. data/app/views/admin/post_categories/entity/_in_list.html.erb +22 -6
  69. data/app/views/admin/post_categories/show.html.erb +6 -1
  70. data/app/views/admin/post_group_categories/entity/_in_list.html.erb +18 -0
  71. data/app/views/admin/post_group_tags/entity/_in_list.html.erb +18 -0
  72. data/app/views/admin/post_groups/_nav_item.html.erb +6 -0
  73. data/app/views/admin/post_groups/entity/_categories.html.erb +33 -0
  74. data/app/views/admin/post_groups/entity/_in_list.html.erb +25 -0
  75. data/app/views/admin/post_groups/index.html.erb +22 -0
  76. data/app/views/admin/post_groups/show.html.erb +65 -0
  77. data/app/views/admin/post_groups/tags.jbuilder +12 -0
  78. data/app/views/admin/post_illustrations/_nav_item.html.erb +6 -0
  79. data/app/views/admin/post_illustrations/entity/_in_list.html.erb +19 -0
  80. data/app/views/admin/post_illustrations/index.html.erb +23 -0
  81. data/app/views/admin/post_illustrations/show.html.erb +32 -0
  82. data/app/views/admin/post_images/_nav_item.html.erb +2 -0
  83. data/app/views/admin/post_images/entity/_in_list.html.erb +30 -0
  84. data/app/views/admin/post_images/index.html.erb +16 -0
  85. data/app/views/admin/post_images/show.html.erb +49 -0
  86. data/app/views/admin/post_links/entity/_in_list.html.erb +43 -0
  87. data/app/views/admin/post_tags/_nav_item.html.erb +2 -0
  88. data/app/views/admin/post_tags/entity/_in_list.html.erb +23 -0
  89. data/app/views/admin/post_tags/index.html.erb +16 -0
  90. data/app/views/admin/post_tags/posts.html.erb +18 -0
  91. data/app/views/admin/post_tags/show.html.erb +37 -0
  92. data/app/views/admin/post_types/authors.html.erb +23 -0
  93. data/app/views/admin/post_types/post_categories.html.erb +15 -4
  94. data/app/views/admin/post_types/post_tags.html.erb +18 -0
  95. data/app/views/admin/post_types/show.html.erb +28 -5
  96. data/app/views/admin/posts/_filter.html.erb +19 -0
  97. data/app/views/admin/posts/_nav_item.html.erb +3 -0
  98. data/app/views/admin/posts/_search_form.html.erb +13 -0
  99. data/app/views/admin/posts/entity/_in_list.html.erb +31 -7
  100. data/app/views/admin/posts/entity/_in_search.html.erb +8 -0
  101. data/app/views/admin/posts/entity/_links.html.erb +125 -0
  102. data/app/views/admin/posts/images.html.erb +22 -0
  103. data/app/views/admin/posts/index.html.erb +4 -0
  104. data/app/views/admin/posts/search.html.erb +21 -0
  105. data/app/views/admin/posts/search.jbuilder +26 -0
  106. data/app/views/admin/posts/show.html.erb +118 -18
  107. data/app/views/articles/category.html.erb +9 -9
  108. data/app/views/articles/index.html.erb +12 -9
  109. data/app/views/articles/show.html.erb +2 -4
  110. data/app/views/articles/tagged.html.erb +14 -0
  111. data/app/views/authors/_list.html.erb +18 -0
  112. data/app/views/authors/entity/_in_list.html.erb +9 -0
  113. data/app/views/authors/index.html.erb +10 -0
  114. data/app/views/authors/show.html.erb +31 -0
  115. data/app/views/blog_posts/category.html.erb +9 -9
  116. data/app/views/blog_posts/index.html.erb +12 -9
  117. data/app/views/blog_posts/show.html.erb +2 -4
  118. data/app/views/blog_posts/tagged.html.erb +14 -0
  119. data/app/views/editorial_members/_form.html.erb +107 -0
  120. data/app/views/editorial_members/edit.html.erb +17 -0
  121. data/app/views/editorial_members/new.html.erb +15 -0
  122. data/app/views/featured_posts/create.jbuilder +10 -0
  123. data/app/views/index/dashboard/_biovision_post.html.erb +18 -2
  124. data/app/views/my/index/dashboard/_biovision_post.html.erb +43 -0
  125. data/app/views/my/posts/_form.html.erb +357 -0
  126. data/app/views/my/posts/_list.html.erb +9 -0
  127. data/app/views/my/posts/_post.html.erb +80 -0
  128. data/app/views/my/posts/_preview.html.erb +35 -0
  129. data/app/views/my/posts/articles.html.erb +24 -0
  130. data/app/views/my/posts/blog_posts.html.erb +24 -0
  131. data/app/views/my/posts/edit.html.erb +19 -0
  132. data/app/views/my/posts/index.html.erb +14 -0
  133. data/app/views/my/posts/index/_navigation.html.erb +29 -0
  134. data/app/views/my/posts/new.html.erb +14 -0
  135. data/app/views/my/posts/news_index.html.erb +24 -0
  136. data/app/views/my/posts/show.html.erb +7 -0
  137. data/app/views/news/category.html.erb +9 -9
  138. data/app/views/news/index.html.erb +12 -9
  139. data/app/views/news/show.html.erb +2 -4
  140. data/app/views/news/tagged.html.erb +14 -0
  141. data/app/views/post_categories/_form.html.erb +82 -43
  142. data/app/views/post_groups/_form.html.erb +79 -0
  143. data/app/views/post_groups/edit.html.erb +17 -0
  144. data/app/views/post_groups/new.html.erb +15 -0
  145. data/app/views/post_groups/show.html.erb +10 -0
  146. data/app/views/post_images/_form.html.erb +121 -0
  147. data/app/views/post_images/edit.html.erb +19 -0
  148. data/app/views/post_images/new.html.erb +18 -0
  149. data/app/views/post_links/create.jbuilder +20 -0
  150. data/app/views/post_tags/_form.html.erb +26 -0
  151. data/app/views/post_tags/edit.html.erb +18 -0
  152. data/app/views/post_tags/new.html.erb +18 -0
  153. data/app/views/posts/_archive_dates.jbuilder +13 -0
  154. data/app/views/posts/_breadcrumbs.html.erb +4 -8
  155. data/app/views/posts/_calendar.html.erb +9 -0
  156. data/app/views/posts/_collection.html.erb +5 -0
  157. data/app/views/posts/_form.html.erb +204 -64
  158. data/app/views/posts/_list.html.erb +1 -1
  159. data/app/views/{articles/index.jbuilder → posts/_list.jbuilder} +3 -3
  160. data/app/views/posts/_post.html.erb +43 -16
  161. data/app/views/posts/_preview.html.erb +32 -21
  162. data/app/views/posts/_search.html.erb +6 -0
  163. data/app/views/posts/_wysiwyg.html.erb +25 -0
  164. data/app/views/posts/archive.jbuilder +3 -0
  165. data/app/views/posts/archive_day.html.erb +12 -0
  166. data/app/views/posts/category.html.erb +18 -0
  167. data/app/views/posts/entity/_gallery.html.erb +54 -0
  168. data/app/views/posts/entity/_linked_posts.html.erb +7 -0
  169. data/app/views/posts/entity/_metadata.html.erb +35 -12
  170. data/app/views/posts/entity/_publisher.html.erb +3 -1
  171. data/app/views/posts/form/_category_links.html.erb +32 -0
  172. data/app/views/posts/form/_gallery.html.erb +163 -0
  173. data/app/views/posts/index.html.erb +13 -0
  174. data/app/views/posts/index.jbuilder +1 -0
  175. data/app/views/posts/post_type/_category.html.erb +7 -0
  176. data/app/views/posts/post_type/_post_page.html.erb +9 -0
  177. data/app/views/posts/post_type/_posts.html.erb +5 -0
  178. data/app/views/posts/post_type/_tagged.html.erb +7 -0
  179. data/app/views/posts/rss.xml.erb +47 -0
  180. data/app/views/posts/search.html.erb +15 -0
  181. data/app/views/posts/show.html.erb +5 -3
  182. data/app/views/posts/tagged.html.erb +10 -0
  183. data/app/views/posts/tagged.jbuilder +1 -0
  184. data/app/views/posts/zen.xml.erb +42 -0
  185. data/config/locales/posts-en.yml +257 -19
  186. data/config/locales/posts-ru.yml +380 -14
  187. data/config/locales/posts-sv.yml +416 -0
  188. data/config/routes.rb +111 -15
  189. data/db/{migrate → amends}/20180124111113_add_language_to_posts.rb +0 -0
  190. data/db/{migrate → amends}/20180318215555_add_active_to_post_types.rb +0 -0
  191. data/db/amends/20180606120000_add_original_title_to_posts.rb +9 -0
  192. data/db/amends/20180606120001_add_time_required_to_posts.rb +11 -0
  193. data/db/amends/20180611111111_add_pubdate_and_translator_to_posts.rb +19 -0
  194. data/db/amends/20180618111111_add_default_category_name_to_post_types.rb +15 -0
  195. data/db/amends/20180703191919_add_rating_to_posts.rb +14 -0
  196. data/db/amends/20180810111111_add_explicit_to_posts.rb +11 -0
  197. data/db/amends/20180825111111_add_meta_description_to_post_categories.rb +11 -0
  198. data/db/amends/20180927111111_amend_editorial_member_about.rb +13 -0
  199. data/db/migrate/20170930000001_create_post_types.rb +98 -20
  200. data/db/migrate/20170930000010_create_posts.rb +194 -0
  201. data/db/migrate/20180706000000_create_editorial_members.rb +37 -0
  202. data/db/migrate/20180808000000_create_zen_categories.rb +42 -0
  203. data/db/migrate/20190202232323_add_spam_to_posts.rb +11 -0
  204. data/db/migrate/20190224212121_add_data_to_posts.rb +13 -0
  205. data/db/migrate/20190224212122_rename_post_image_source.rb +26 -0
  206. data/db/migrate/20190224212123_add_uuid_to_post_images.rb +10 -0
  207. data/db/migrate/20190313141414_convert_json_post_columns.rb +25 -0
  208. data/db/migrate/20190401101010_create_post_illustrations.rb +20 -0
  209. data/db/migrate/20190407101010_create_editorial_member_post_types.rb +18 -0
  210. data/db/migrate/20190410101010_add_avoid_parsing_to_posts.rb +14 -0
  211. data/db/migrate/20190410120000_create_post_groups.rb +47 -0
  212. data/db/migrate/20190412191919_add_nav_text_to_post_categories.rb +14 -0
  213. data/db/migrate/20190412212121_add_url_part_to_post_types.rb +26 -0
  214. data/db/migrate/20190420212121_create_post_layouts.rb +27 -0
  215. data/db/migrate/20190424161616_create_post_post_categories.rb +31 -0
  216. data/lib/biovision/post/version.rb +3 -1
  217. data/lib/tasks/posts.rake +6 -0
  218. metadata +170 -25
  219. data/app/assets/images/biovision/post/publisher_logo.svg +0 -3
  220. data/app/services/post_manager/article_handler.rb +0 -10
  221. data/app/services/post_manager/blog_post_handler.rb +0 -10
  222. data/app/services/post_manager/news_handler.rb +0 -10
  223. data/app/views/admin/index/dashboard/biovision_post/_additional_items.html.erb +0 -0
  224. data/app/views/blog_posts/index.jbuilder +0 -11
  225. data/app/views/news/index.jbuilder +0 -11
  226. data/app/views/post_categories/edit.jbuilder +0 -3
  227. data/app/views/post_categories/edit.js.erb +0 -1
  228. data/app/views/post_categories/new.jbuilder +0 -3
  229. data/app/views/post_categories/new.js.erb +0 -1
  230. data/db/migrate/20170930000002_create_post_categories.rb +0 -29
  231. data/db/migrate/20170930000003_create_posts.rb +0 -60
  232. data/db/migrate/20171218111111_add_meta_fields_to_posts.rb +0 -15
  233. data/db/migrate/20171219111112_add_author_fields_to_posts.rb +0 -11
  234. data/db/migrate/20180321100000_create_post_references.rb +0 -21
  235. data/db/migrate/20180321100001_create_post_notes.rb +0 -18
  236. data/db/migrate/20180321100002_create_post_links.rb +0 -20
@@ -0,0 +1,13 @@
1
+ <% content_for :meta_title, t('.title', page: current_page) %>
2
+ <% content_for :alternate_links do %>
3
+ <link rel="alternate" type="application/rss+xml" href="<%= rss_posts_path %>" />
4
+ <% end %>
5
+ <% content_for :breadcrumbs do %>
6
+ <span><%= t('posts.index.nav_text') %></span>
7
+ <% end %>
8
+
9
+ <article>
10
+ <h1><%= t('.heading') %></h1>
11
+
12
+ <%= render partial: 'posts/collection', locals: { collection: @collection } %>
13
+ </article>
@@ -0,0 +1 @@
1
+ json.partial! 'posts/list', locals: { collection: @collection }
@@ -0,0 +1,7 @@
1
+ <% content_for :meta_description, category.meta_description unless category.meta_description.blank? %>
2
+
3
+ <article>
4
+ <h1><%= category.name %></h1>
5
+
6
+ <%= render partial: 'posts/collection', locals: { collection: collection } %>
7
+ </article>
@@ -0,0 +1,9 @@
1
+ <%= render partial: 'posts/entity/metadata', locals: { entity: entity } %>
2
+ <%= render partial: 'posts/post', locals: { post: entity } %>
3
+ <%# render partial: 'comments/list', locals: { commentable: entity, comments: entity.comments } %>
4
+ <%=
5
+ render(
6
+ partial: 'posts/entity/linked_posts',
7
+ locals: { collection: entity.linked_posts }
8
+ )
9
+ %>
@@ -0,0 +1,5 @@
1
+ <article>
2
+ <h1><%= heading %></h1>
3
+
4
+ <%= render partial: 'posts/collection', locals: { collection: collection } %>
5
+ </article>
@@ -0,0 +1,7 @@
1
+ <article>
2
+ <header>
3
+ <h1><%= heading %></h1>
4
+ </header>
5
+
6
+ <%= render partial: 'posts/collection', locals: { collection: collection } %>
7
+ </article>
@@ -0,0 +1,47 @@
1
+ <?xml version="1.0"?>
2
+ <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
3
+ <channel>
4
+ <%
5
+ site_link = request.protocol + request.host_with_port
6
+ media_link = 'http://' + request.host_with_port
7
+ %>
8
+ <atom:link href="<%= url_for(only_path: false) %>" rel="self" type="application/rss+xml" />
9
+ <title><%= t('.title') %></title>
10
+ <link><%= site_link %></link>
11
+ <description><%= t('.description') %></description>
12
+ <language><%= locale %></language>
13
+ <copyright><%= t(:copyright) %></copyright>
14
+ <generator>Biovision</generator>
15
+
16
+ <% @collection.each do |post| %>
17
+ <item>
18
+ <title><%= post.title %></title>
19
+ <link><%= site_link + PostManager.new(post).post_path %></link>
20
+ <description><%= post.lead! %></description>
21
+ <guid isPermaLink="false"><%= post.uuid %></guid>
22
+ <pubDate><%= post.publication_time.rfc822 %></pubDate>
23
+
24
+ <% unless post.image.blank? %>
25
+ <enclosure
26
+ url="<%= media_link + post.image.hd.url %>"
27
+ length="<%= File.size(post.image.hd.current_path) %>"
28
+ type="<%= post.image.content_type %>"
29
+ />
30
+ <% end %>
31
+ <% if post.post_images.any? %>
32
+ <% post.post_images.list_for_visitors.each do |image| %>
33
+ <% next if image.nil? %>
34
+ <enclosure
35
+ url="<%= media_link + image.image.hd.url %>"
36
+ length="<%= File.size(image.image.hd.current_path) %>"
37
+ type="<%= image.image.content_type %>"
38
+ />
39
+ <% end %>
40
+ <% end %>
41
+ <% unless post.post_category.blank? %>
42
+ <category><%= post.post_category.full_title %></category>
43
+ <% end %>
44
+ </item>
45
+ <% end %>
46
+ </channel>
47
+ </rss>
@@ -0,0 +1,15 @@
1
+ <% content_for :meta_title, t('.title') %>
2
+ <% content_for :breadcrumbs do %>
3
+ <span><%= t('.nav_text') %></span>
4
+ <% end %>
5
+
6
+ <article class="recent-posts">
7
+ <h1><%= t('.heading') %></h1>
8
+ <%= render partial: 'posts/search' %>
9
+
10
+ <% if @collection.any? %>
11
+ <div class="posts-list">
12
+ <%= render partial: 'posts/list', locals: { collection: @collection } %>
13
+ </div>
14
+ <% end %>
15
+ </article>
@@ -1,4 +1,6 @@
1
- <% content_for :meta_title, @entity.title %>
2
- <%= render partial: 'posts/entity/metadata', locals: { entity: @entity } %>
1
+ <% content_for :breadcrumbs do %>
2
+ <%= link_to(t('posts.index.nav_text'), posts_path) %>
3
+ <%= render partial: 'posts/breadcrumbs', locals: { entity: @entity } %>
4
+ <% end %>
3
5
 
4
- <%= render @entity %>
6
+ <%= render partial: 'posts/post_type/post_page', locals: { entity: @entity } %>
@@ -0,0 +1,10 @@
1
+ <% content_for :meta_title, t('.title', tag_name: params[:tag_name], page: current_page) %>
2
+ <% content_for :breadcrumbs do %>
3
+ <span><%= t('posts.index.nav_text') %></span>
4
+ <% end %>
5
+
6
+ <article>
7
+ <h1><%= params[:tag_name] %></h1>
8
+
9
+ <%= render partial: 'posts/collection', locals: { collection: @collection } %>
10
+ </article>
@@ -0,0 +1 @@
1
+ json.partial! 'posts/list', locals: { collection: @collection }
@@ -0,0 +1,42 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <rss version="2.0"
3
+ xmlns:content="http://purl.org/rss/1.0/modules/content/"
4
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
5
+ xmlns:media="http://search.yahoo.com/mrss/"
6
+ xmlns:atom="http://www.w3.org/2005/Atom"
7
+ xmlns:georss="http://www.georss.org/georss">
8
+ <channel>
9
+ <%
10
+ site_link = request.protocol + request.host_with_port
11
+ media_link = 'http://' + request.host_with_port
12
+ %>
13
+ <title><%= t('posts.rss.title') %>></title>
14
+ <link><%= site_link %></link>
15
+ <description><%= t('posts.rss.description') %></description>
16
+ <language><%= locale %></language>
17
+
18
+ <% @collection.each do |item| %>
19
+ <% next if item.image.blank? %>
20
+ <item>
21
+ <title><%= item.title %></title>
22
+ <link><%= site_link + PostManager.new(item).post_path %></link>
23
+ <media:rating scheme="urn:simple"><%= item.explicit? ? 'adult' : 'nonadult' %></media:rating>
24
+ <pubDate><%= item.publication_time.rfc822 %></pubDate>
25
+ <author><![CDATA[<%= item.author!(t(:anonymous)) %>]]></author>
26
+ <% item.zen_categories.each do |category| %>
27
+ <category><%= category.name %></category>
28
+ <% end %>
29
+ <enclosure
30
+ url="<%= media_link + item.image.hd.url %>"
31
+ length="<%= File.size(item.image.hd.current_path) %>"
32
+ type="<%= item.image.content_type %>"
33
+ />
34
+ <% PostManager.enclosures(item).each do |url| %>
35
+ <enclosure url="<%= media_link + url %>" type="<%= Rack::Mime::MIME_TYPES[File.extname(url)] %>"/>
36
+ <% end %>
37
+ <description><![CDATA[<%= item.lead! %>]]></description>
38
+ <content:encoded><![CDATA[<%= raw(item.parsed_body) %>]]></content:encoded>
39
+ </item>
40
+ <% end %>
41
+ </channel>
42
+ </rss>
@@ -7,9 +7,16 @@ en:
7
7
  other: "%{count} posts"
8
8
  activerecord:
9
9
  models:
10
+ editorial_member: "Editorial member"
11
+ featured_post: "Featured post"
10
12
  post: "Post"
11
13
  post_category: "Post category"
14
+ post_image: "Post image"
15
+ post_post_tag: "Tag in post"
16
+ post_tag: "Tag"
12
17
  post_type: "Post type"
18
+ post_zen_category: "Yandex.Zen category for post"
19
+ zen_category: "Yandez.Zen category"
13
20
  errors:
14
21
  messages:
15
22
  mismatches_post_type: "has other post type"
@@ -19,38 +26,59 @@ en:
19
26
  parent_id:
20
27
  is_too_deep: "is too deep"
21
28
  attributes:
29
+ editorial_member:
30
+ about: "About"
31
+ lead: "Short description"
32
+ priority: "Sorting order"
33
+ title: "Title"
34
+ user: "User"
35
+ user_id: "User"
36
+ visible: "Visible"
37
+ featured_post:
38
+ language: "Language"
39
+ language_id: "Language"
40
+ post: "Post"
41
+ post_id: "Post"
42
+ priority: "Sorting order"
22
43
  post:
23
44
  allow_comments: "Allow comments"
45
+ allow_votes: "Allow votes"
24
46
  approved: "Approved"
25
47
  author_name: "Author name"
26
48
  author_title: "Author title"
27
49
  author_url: "Author URL"
28
50
  body: "Text"
29
51
  created_at: "Created at"
52
+ explicit: "Explicit content"
30
53
  image: "Image"
31
54
  image_alt_text: "Alt text for image"
32
- image_author_link: "Image author link"
33
- image_author_name: "Image author name"
34
55
  image_name: "Image name"
56
+ image_source_link: "Image source link"
57
+ image_source_name: "Image source name"
35
58
  language_id: "Language"
36
59
  lead: "Lead"
37
60
  meta_description: "Description for meta tag"
38
61
  meta_keywords: "Keywords for meta tag"
39
62
  meta_title: "Title for window"
40
63
  original_post_id: "Original post"
64
+ original_title: "Original title"
41
65
  privacy: "Privacy"
42
66
  post_category: "Category"
43
67
  post_category_id: "Category"
44
68
  post_type: "Type"
45
69
  post_type_id: "Type"
70
+ publication_time: "Publication time"
71
+ rating: "Rating"
46
72
  region_id: "Region"
47
73
  show_owner: "Show author"
48
74
  slug: "Slug for URL"
49
75
  source_link: "Source link"
50
76
  source_name: "Source name"
51
77
  tags_cache: "Tags"
78
+ time_required: "Time required for reading"
52
79
  title: "Title"
53
80
  translation: "Translation"
81
+ translator_name: "Translator name"
54
82
  user: "Author"
55
83
  uuid: "UUID"
56
84
  video_url: "Video URL"
@@ -58,6 +86,7 @@ en:
58
86
  visible: "Visible"
59
87
  post_category:
60
88
  children_cache: "Children cache"
89
+ meta_description: "Description for meta-tag"
61
90
  name: "Name"
62
91
  parent_id: "Parent category"
63
92
  parents_cache: "Parents cache"
@@ -66,11 +95,82 @@ en:
66
95
  priority: "Sorting order"
67
96
  slug: "Slug"
68
97
  visible: "Visible"
98
+ post_image:
99
+ caption: "Caption"
100
+ description: "Description"
101
+ image: "Image"
102
+ image_alt_text: "Alt text for image"
103
+ post: "Post"
104
+ post_id: "Post"
105
+ priority: "Sorting order"
106
+ source_link: "Image source link"
107
+ source_name: "Image source name"
108
+ visible: "Visible"
109
+ post_tag:
110
+ name: "Name"
111
+ post_type: "Post type"
112
+ post_type_id: "Post type"
113
+ posts_count: "Post count"
114
+ slug: "Slug"
69
115
  post_type:
70
116
  category_depth: "Category depth"
117
+ default_category_name: "Default category name"
71
118
  name: "Name"
72
119
  slug: "Slug"
120
+ post_zen_category:
121
+ post: "Post"
122
+ post_id: "Post"
123
+ zen_category: "Yandex.Zen category"
124
+ zen_category_id: "Yandex.Zen category"
125
+ zen_category:
126
+ name: "Name"
127
+ posts_count: "Post count"
73
128
  admin:
129
+ editorial_members:
130
+ nav_item:
131
+ description: "Manage editorial members"
132
+ text: "Editorial members"
133
+ index:
134
+ heading: "Editorial members"
135
+ title: "Editorial members"
136
+ show:
137
+ heading: "Editorial members"
138
+ title: "Editorial: %{name}"
139
+ featured_posts:
140
+ nav_item:
141
+ description: "Manage list of featured posts"
142
+ text: "Featured posts"
143
+ index:
144
+ add: "Add"
145
+ heading: "Featured posts"
146
+ title: "Featured posts"
147
+ post_categories:
148
+ show:
149
+ title: "Post category '%{name}'"
150
+ children: "Children"
151
+ new_child: "Add child category"
152
+ post_images:
153
+ nav_item:
154
+ description: "Manage post images"
155
+ text: "Post images"
156
+ index:
157
+ heading: "Post images"
158
+ title: "Post images, page %{page}"
159
+ show:
160
+ title: "Post image '%{caption}'"
161
+ post_tags:
162
+ nav_item:
163
+ description: "Manage post tags"
164
+ text: "Post tags"
165
+ index:
166
+ heading: "Post tags"
167
+ title: "Post tags, page %{page}"
168
+ show:
169
+ title: "Post tag '%{name}'"
170
+ posts:
171
+ heading: "Posts"
172
+ nav_text: "Posts"
173
+ title: "Posts tagged '%{name}', page %{page}"
74
174
  post_types:
75
175
  nav_item:
76
176
  description: "Managing post types and categories"
@@ -79,19 +179,19 @@ en:
79
179
  heading: "Post types"
80
180
  title: "Post types"
81
181
  show:
82
- title: "Post type \"%{name}\""
182
+ title: "Post type '%{name}'"
83
183
  children: "Children types"
84
184
  post_categories:
85
- title: "Categories of post type \"%{name}\""
86
185
  heading: "Post categories"
186
+ nav_text: "Categories"
187
+ title: "Categories of post type '%{name}'"
188
+ post_tags:
189
+ heading: "Post tags"
190
+ nav_text: "Tags"
191
+ title: "Tags of post type '%{name}', page %{page}"
87
192
  new_post:
88
- title: "New post of type \"%{name}\""
193
+ title: "New post of type '%{name}'"
89
194
  heading: "Add post"
90
- post_categories:
91
- show:
92
- title: "Post category \"%{name}\""
93
- children: "Children"
94
- new_child: "Add child category"
95
195
  posts:
96
196
  nav_item:
97
197
  description: "Managing posts"
@@ -100,11 +200,38 @@ en:
100
200
  heading: "Posts"
101
201
  title: "Posts, page %{page}"
102
202
  show:
103
- title: "Post \"%{name}\""
203
+ title: "Post '%{name}'"
204
+ images: "Images"
205
+ images:
206
+ heading: "Images"
207
+ nav_text: "Images"
208
+ title: "Images for post '%{post}'"
209
+ entity:
210
+ links:
211
+ heading: "Linked posts"
212
+ search: "Search"
104
213
  index:
105
214
  dashboard:
106
215
  biovision_post:
107
216
  heading: "Posts module"
217
+ editorial_members:
218
+ new:
219
+ heading: "New editorial member"
220
+ nav_text: "Add user"
221
+ title: "New editorial member"
222
+ edit:
223
+ heading: "Editing editorial member"
224
+ nav_text: "Edit"
225
+ title: "Editing editorial member"
226
+ update:
227
+ success: "Editorial member has been updated"
228
+ destroy:
229
+ success: "Editorial member has been deleted"
230
+ form:
231
+ guidelines:
232
+ about: "Maximum 5000 characters."
233
+ lead: "Maximum 170 characters."
234
+ title: "Maximum 150 characters."
108
235
  post_categories:
109
236
  new:
110
237
  title: "New post category"
@@ -119,8 +246,48 @@ en:
119
246
  success: "Post category is deleted successfully"
120
247
  form:
121
248
  guidelines:
249
+ meta_description: "Maximum 250 chars."
122
250
  name: "Maximum 50 chars."
123
251
  slug: "Used in URL. Only latin letters, digits and dashes (except first and last char), maximum 50 chars."
252
+ post_tags:
253
+ new:
254
+ heading: "New post tag"
255
+ nav_text: "Create"
256
+ title: "Adding post tag"
257
+ edit:
258
+ heading: "Editing post tag"
259
+ nav_text: "Edit"
260
+ title: "Editing post tag"
261
+ update:
262
+ success: "Post tag has been updated"
263
+ destroy:
264
+ success: "Post tag has been deleted"
265
+ form:
266
+ guidelines:
267
+ name: "Maximum 50 characters."
268
+ post_images:
269
+ new:
270
+ heading: "New post image"
271
+ nav_text: "Add image"
272
+ title: "New post image"
273
+ edit:
274
+ heading: "Editing post image"
275
+ nav_text: "Edit"
276
+ title: "Editing post image"
277
+ update:
278
+ success: "Post image has been updated"
279
+ destroy:
280
+ success: "Post image has been deleted"
281
+ form:
282
+ guidelines:
283
+ caption: "Maximum 255 characters."
284
+ description: "Maximum 5000 characters."
285
+ image: "Maximum dimensions are 3000×3000, format — JPG or PNG."
286
+ image_alt_text: "Brief description of image. Maximum 200 chars."
287
+ source_link: "Will be opened when one clicks on author name."
288
+ source_name: "Person or organization name. Will be shown near image."
289
+ placeholders:
290
+ source_link: "https://example.org/user42"
124
291
  posts:
125
292
  edit:
126
293
  title: "Editing post"
@@ -134,45 +301,116 @@ en:
134
301
  author_url: "If specified, author name will link here"
135
302
  image: "Maximum dimensions are 3000×3000, format — JPG or PNG."
136
303
  image_alt_text: "Brief description of image. Maximum 200 chars."
137
- image_author_link: "Will be opened when one clicks on author name."
138
- image_author_name: "Person or organization name. Will be shown near image."
139
304
  image_name: "Will be shown as image caption."
305
+ image_source_link: "Will be opened when one clicks on author name."
306
+ image_source_name: "Person or organization name. Will be shown near image."
140
307
  language_id: "Language"
141
- lead: "Post essence, maximum 350 chars."
308
+ lead: "Post essence, maximum 5000 chars."
142
309
  meta_description: "50–55 words. Maximum 250 chars"
143
310
  meta_keywords: "Maximum 250 chars."
144
311
  meta_title: "If specified, shown as window title instead of post title. Maximum 250 chars."
312
+ original_title: "Title as it was for source. Maximum 250 chars."
145
313
  slug: "Only latin letters, digits, dots, dashes or underscores. Maximum 200 chars."
146
314
  source: "Post source name (e.g. agency name)"
147
315
  source_link: "Will be opened when one clicks on source name"
148
- title: "Maximum 140 chars."
316
+ time_required: "In minutes"
317
+ title: "Maximum 255 chars."
149
318
  placeholders:
150
- image_author_link: "https://example.com/user42"
319
+ image_source_link: "https://example.com/user42"
151
320
  source_link: "https://example.org/posts/123"
321
+ tags: "Tags"
322
+ gallery:
323
+ heading: "Image gallery"
324
+ add_image: "Add image"
152
325
  post:
153
326
  source: "Source"
327
+ image_credit: "Credit"
328
+ index:
329
+ title: "Posts, page %{page}"
330
+ nav_text: "Posts"
331
+ heading: "Posts"
332
+ tagged:
333
+ title: "Posts tagged '%{tag_name}', page %{page}"
334
+ entity:
335
+ linked_posts:
336
+ heading: "Read also"
337
+ gallery:
338
+ heading: "Image gallery"
339
+ rss:
340
+ title: "Posts of site on Biovision CMS"
341
+ description: "RSS feed of site on Biovision CMS"
342
+ calendar:
343
+ heading: "Archive"
154
344
  index:
155
345
  dashboard:
156
346
  biovision_post:
157
347
  heading: "Recent posts"
348
+ more: "More"
158
349
  articles:
159
350
  index:
160
351
  title: "Articles, page %{page}"
161
352
  heading: "Articles"
162
353
  nav_text: "Articles"
163
354
  category:
164
- title: "Articles in category \"%{category}\", page %{page}"
355
+ title: "Articles in category '%{category}', page %{page}"
356
+ tagged:
357
+ title: "Articles tagged '%{tag_name}', page %{page}"
165
358
  blog_posts:
166
359
  index:
167
360
  title: "Blog posts, page %{page}"
168
361
  heading: "Blog posts"
169
362
  nav_text: "Blog"
170
363
  category:
171
- title: "Blog posts in category \"%{category}\", page %{page}"
364
+ title: "Blog posts in category '%{category}', page %{page}"
365
+ tagged:
366
+ title: "Blog posts tagged '%{tag_name}', page %{page}"
172
367
  news:
173
368
  index:
174
369
  title: "News, page %{page}"
175
370
  heading: "News"
176
371
  nav_text: "News"
177
372
  category:
178
- title: "News in category \"%{category}\", page %{page}"
373
+ title: "News in category '%{category}', page %{page}"
374
+ tagged:
375
+ title: "News tagged '%{tag_name}', page %{page}"
376
+ my:
377
+ index:
378
+ dashboard:
379
+ biovision_post:
380
+ heading: "My posts"
381
+ posts:
382
+ articles:
383
+ heading: "My articles"
384
+ nav_text: "Articles"
385
+ title: "My articles, page %{page}"
386
+ blog_posts:
387
+ heading: "My blog"
388
+ nav_text: "Blog"
389
+ title: "My blog, page %{page}"
390
+ index:
391
+ heading: "My posts"
392
+ nav_text: "All posts"
393
+ title: "My posts, page %{page}"
394
+ new_article:
395
+ heading: "New article"
396
+ nav_text: "Create article"
397
+ title: "Adding articles"
398
+ new_blog_post:
399
+ heading: "New blog entry"
400
+ nav_text: "Create blog entry"
401
+ title: "Adding blog entry"
402
+ new_news:
403
+ heading: "New news"
404
+ nav_text: "Create news"
405
+ title: "Adding news"
406
+ news_index:
407
+ heading: "My news"
408
+ nav_text: "News"
409
+ title: "My news, page %{page}"
410
+ new:
411
+ title: "Adding post"
412
+ heading: "Adding post"
413
+ edit:
414
+ title: "Editing my post"
415
+ nav_text: "Edit"
416
+ heading: "Editing post"