biovision-base 0.22.180920.0 → 0.34.190331.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (223) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +5 -21
  3. data/app/assets/images/biovision/base/icons/apply.svg +4 -0
  4. data/app/assets/images/biovision/base/icons/components/contact.svg +26 -0
  5. data/app/assets/images/biovision/base/icons/components/registration.svg +17 -0
  6. data/app/assets/images/biovision/base/icons/destroy.svg +11 -8
  7. data/app/assets/images/biovision/base/icons/settings.svg +41 -0
  8. data/app/assets/images/biovision/base/icons/slider/arrow-left.svg +4 -0
  9. data/app/assets/images/biovision/base/icons/slider/arrow-right.svg +4 -0
  10. data/app/assets/images/biovision/base/placeholders/16x9.svg +10 -3
  11. data/app/assets/images/biovision/base/placeholders/1x1.svg +12 -0
  12. data/app/assets/images/biovision/base/placeholders/3x2.svg +10 -3
  13. data/app/assets/javascripts/biovision/base/biovision.js +780 -461
  14. data/app/assets/javascripts/biovision/base/components/carousel.js +123 -0
  15. data/app/assets/javascripts/biovision/base/polyfills.js +149 -0
  16. data/app/assets/stylesheets/biovision/base/admin.scss +85 -46
  17. data/app/assets/stylesheets/biovision/base/admin/components.scss +141 -0
  18. data/app/assets/stylesheets/biovision/base/biovision.scss +149 -33
  19. data/app/assets/stylesheets/biovision/base/buttons/buttons-common.scss +22 -0
  20. data/app/assets/stylesheets/biovision/base/default.scss +6 -6
  21. data/app/assets/stylesheets/biovision/base/default_admin.scss +25 -8
  22. data/app/assets/stylesheets/biovision/base/themes/simple-layout.scss +0 -3
  23. data/app/controllers/admin/editable_pages_controller.rb +6 -4
  24. data/app/controllers/admin/privileges_controller.rb +2 -3
  25. data/app/controllers/admin/settings_controller.rb +52 -0
  26. data/app/controllers/admin/simple_blocks_controller.rb +28 -0
  27. data/app/controllers/admin/users_controller.rb +1 -1
  28. data/app/controllers/agents_controller.rb +4 -4
  29. data/app/controllers/authentication_controller.rb +28 -6
  30. data/app/controllers/browsers_controller.rb +4 -4
  31. data/app/controllers/concerns/authentication.rb +8 -5
  32. data/app/controllers/concerns/entity_priority.rb +3 -0
  33. data/app/controllers/concerns/lockable_entity.rb +6 -3
  34. data/app/controllers/concerns/removable_image.rb +4 -5
  35. data/app/controllers/concerns/toggleable_entity.rb +4 -5
  36. data/app/controllers/editable_pages_controller.rb +14 -8
  37. data/app/controllers/fallback_controller.rb +7 -2
  38. data/app/controllers/feedback_requests_controller.rb +23 -8
  39. data/app/controllers/metrics_controller.rb +3 -3
  40. data/app/controllers/my/profiles_controller.rb +32 -15
  41. data/app/controllers/privilege_groups_controller.rb +4 -4
  42. data/app/controllers/privileges_controller.rb +7 -26
  43. data/app/controllers/simple_blocks_controller.rb +63 -0
  44. data/app/controllers/stored_values_controller.rb +4 -4
  45. data/app/controllers/tokens_controller.rb +4 -4
  46. data/app/controllers/users_controller.rb +8 -3
  47. data/app/helpers/biovision_users_helper.rb +60 -21
  48. data/app/helpers/editable_pages_helper.rb +22 -0
  49. data/app/helpers/languages_helper.rb +3 -0
  50. data/app/helpers/simple_image_helper.rb +66 -0
  51. data/app/mailers/application_mailer.rb +0 -2
  52. data/app/mailers/code_sender.rb +13 -2
  53. data/app/mailers/feedback_mailer.rb +5 -2
  54. data/app/mailers/user_mailer.rb +6 -1
  55. data/app/models/biovision_component.rb +43 -0
  56. data/app/models/biovision_parameter.rb +34 -0
  57. data/app/models/code.rb +22 -7
  58. data/app/models/code_type.rb +9 -1
  59. data/app/models/concerns/flat_priority.rb +50 -0
  60. data/app/models/concerns/nested_priority.rb +58 -0
  61. data/app/models/concerns/required_unique_slug.rb +5 -2
  62. data/app/models/editable_page.rb +49 -37
  63. data/app/models/foreign_site.rb +5 -3
  64. data/app/models/language.rb +15 -37
  65. data/app/models/metric.rb +2 -4
  66. data/app/models/privilege.rb +23 -45
  67. data/app/models/privilege_group.rb +6 -1
  68. data/app/models/simple_block.rb +66 -0
  69. data/app/models/user.rb +29 -26
  70. data/app/models/user_privilege.rb +1 -1
  71. data/app/services/biovision/components/base_component.rb +115 -0
  72. data/app/services/biovision/components/registration_component.rb +98 -0
  73. data/app/services/code_manager.rb +4 -1
  74. data/app/services/code_manager/confirmation.rb +8 -4
  75. data/app/services/code_manager/invitation.rb +9 -5
  76. data/app/services/code_manager/recovery.rb +9 -6
  77. data/app/services/user_manager.rb +5 -4
  78. data/app/services/user_profile_handler.rb +38 -11
  79. data/app/uploaders/avatar_uploader.rb +5 -1
  80. data/app/uploaders/editable_page_image_uploader.rb +4 -6
  81. data/app/uploaders/media_file_uploader.rb +6 -4
  82. data/app/uploaders/media_snapshot_uploader.rb +6 -2
  83. data/app/uploaders/simple_file_uploader.rb +12 -0
  84. data/app/uploaders/simple_image_uploader.rb +75 -0
  85. data/app/views/about/editable.html.erb +1 -1
  86. data/app/views/admin/agents/_filter.html.erb +1 -1
  87. data/app/views/admin/editable_pages/entity/_in_list.html.erb +16 -0
  88. data/app/views/admin/editable_pages/index.html.erb +8 -1
  89. data/app/views/admin/editable_pages/show.html.erb +21 -17
  90. data/app/views/admin/feedback_requests/entity/_in_list.html.erb +9 -1
  91. data/app/views/admin/index/_biovision_base.html.erb +5 -7
  92. data/app/views/admin/index/_components.html.erb +9 -0
  93. data/app/views/admin/index/dashboard/_editorial.html.erb +2 -2
  94. data/app/views/admin/index/dashboard/_settings.html.erb +2 -2
  95. data/app/views/admin/index/index.html.erb +2 -0
  96. data/app/views/admin/privileges/entity/_groups.html.erb +25 -25
  97. data/app/views/admin/privileges/entity/_in_list.html.erb +30 -9
  98. data/app/views/admin/privileges/index.html.erb +6 -1
  99. data/app/views/admin/privileges/show.html.erb +31 -18
  100. data/app/views/admin/settings/component/_new_parameter.html.erb +62 -0
  101. data/app/views/admin/settings/component/_parameters.html.erb +37 -0
  102. data/app/views/admin/settings/component/_setting.html.erb +18 -0
  103. data/app/views/admin/settings/component/_settings.html.erb +31 -0
  104. data/app/views/admin/settings/index.html.erb +27 -0
  105. data/app/views/admin/settings/show.html.erb +42 -0
  106. data/app/views/admin/simple_blocks/_nav_item.html.erb +6 -0
  107. data/app/views/admin/simple_blocks/entity/_in_list.html.erb +23 -0
  108. data/app/views/admin/simple_blocks/index.html.erb +21 -0
  109. data/app/views/admin/simple_blocks/show.html.erb +51 -0
  110. data/app/views/admin/tokens/_filter.html.erb +1 -1
  111. data/app/views/admin/users/_filter.html.erb +1 -1
  112. data/app/views/admin/users/entity/_privilege.html.erb +12 -21
  113. data/app/views/admin/users/entity/_privilege_tree.html.erb +17 -15
  114. data/app/views/admin/users/privileges.html.erb +9 -1
  115. data/app/views/admin/users/search.jbuilder +3 -3
  116. data/app/views/admin/users/show.html.erb +11 -6
  117. data/app/views/agents/_filter.html.erb +22 -22
  118. data/app/views/agents/_form.html.erb +25 -29
  119. data/app/views/application/forbidden.html.erb +9 -0
  120. data/app/views/application/forbidden.jbuilder +3 -0
  121. data/app/views/authentication/_form.html.erb +13 -13
  122. data/app/views/browsers/_form.html.erb +21 -25
  123. data/app/views/editable_blocks/_entity.html.erb +4 -1
  124. data/app/views/editable_pages/_form.html.erb +63 -62
  125. data/app/views/editable_pages/edit.html.erb +1 -1
  126. data/app/views/editable_pages/entity/_metadata.html.erb +4 -4
  127. data/app/views/editable_pages/new.html.erb +3 -3
  128. data/app/views/fallback/show.html.erb +8 -1
  129. data/app/views/feedback_requests/_form.html.erb +76 -52
  130. data/app/views/feedback_requests/create.js.erb +1 -10
  131. data/app/views/index/index/_editable.html.erb +0 -4
  132. data/app/views/metrics/_form.html.erb +38 -36
  133. data/app/views/my/confirmations/show.html.erb +5 -3
  134. data/app/views/my/profiles/closed.html.erb +7 -0
  135. data/app/views/my/profiles/edit/_form.html.erb +9 -9
  136. data/app/views/my/profiles/new.html.erb +9 -1
  137. data/app/views/my/profiles/new/_form.html.erb +22 -1
  138. data/app/views/my/recoveries/show.html.erb +2 -2
  139. data/app/views/privilege_groups/_form.html.erb +48 -21
  140. data/app/views/privileges/_form.html.erb +68 -36
  141. data/app/views/profiles/_profile.html.erb +3 -3
  142. data/app/views/shared/_pagination.jbuilder +7 -5
  143. data/app/views/shared/admin/_breadcrumbs.html.erb +1 -1
  144. data/app/views/shared/forms/_meta_texts.html.erb +3 -3
  145. data/app/views/shared/forms/_priority.html.erb +12 -0
  146. data/app/views/shared/forms/_state_container.html.erb +1 -0
  147. data/app/views/simple_blocks/_empty.html.erb +0 -0
  148. data/app/views/simple_blocks/_form.html.erb +120 -0
  149. data/app/views/simple_blocks/_simple_block.html.erb +26 -0
  150. data/app/views/simple_blocks/edit.html.erb +17 -0
  151. data/app/views/simple_blocks/new.html.erb +15 -0
  152. data/app/views/stored_values/_form.html.erb +57 -28
  153. data/app/views/tokens/_form.html.erb +31 -26
  154. data/app/views/users/_form.html.erb +1 -1
  155. data/config/initializers/carrierwave.rb +7 -2
  156. data/config/locales/common-ru.yml +5 -0
  157. data/config/locales/components-ru.yml +50 -0
  158. data/config/locales/editable-pages-en.yml +2 -0
  159. data/config/locales/editable-pages-ru.yml +50 -7
  160. data/config/locales/editable-pages-sv.yml +2 -0
  161. data/config/locales/feedback-ru.yml +1 -0
  162. data/config/locales/users-en.yml +0 -1
  163. data/config/locales/users-ru.yml +6 -1
  164. data/config/locales/users-sv.yml +0 -1
  165. data/config/routes.rb +32 -6
  166. data/db/migrate/20181217000000_create_biovision_components.rb +80 -0
  167. data/db/migrate/20181217000010_create_metrics.rb +40 -0
  168. data/db/migrate/20181217000015_create_browsers.rb +38 -0
  169. data/db/migrate/20181217000020_create_languages.rb +30 -0
  170. data/db/migrate/20181217000030_create_users.rb +118 -0
  171. data/db/migrate/20181217000035_create_codes.rb +51 -0
  172. data/db/migrate/20181217000040_create_privileges.rb +142 -0
  173. data/db/migrate/20181217000100_create_media_folders.rb +53 -0
  174. data/db/migrate/20181217000110_create_editable_pages.rb +90 -0
  175. data/db/migrate/20181217000200_create_feedback_requests.rb +27 -0
  176. data/db/migrate/20181217121211_add_uuid_to_users.rb +12 -0
  177. data/db/migrate/20181217121212_update_fields181217.rb +29 -0
  178. data/db/migrate/20190311121212_convert_json_columns.rb +47 -0
  179. data/db/migrate/20190324181818_add_data_to_feedback_requests.rb +14 -0
  180. data/db/migrate/20190326120000_create_simple_blocks.rb +31 -0
  181. data/db/{migrate → obsolete_migrations}/20171223333333_amend_foreign_keys.rb +0 -0
  182. data/db/{migrate → obsolete_migrations}/20180117151515_add_language_to_models.rb +0 -0
  183. data/db/{migrate → obsolete_migrations}/20180321000000_add_profile_data_to_users.rb +4 -4
  184. data/db/{migrate → obsolete_migrations}/20180405000000_add_consent_to_users.rb +0 -0
  185. data/db/{migrate → obsolete_migrations}/20180610222222_add_consent_to_feedback_requests.rb +0 -0
  186. data/db/{migrate → obsolete_migrations}/20180612111111_add_administrative_to_privilege.rb +0 -0
  187. data/db/{migrate → obsolete_migrations}/20180619121212_add_image_alt_text_to_editable_page.rb +0 -0
  188. data/db/{migrate → obsolete_migrations}/20180703111111_add_fields_to_editable_blocks.rb +0 -0
  189. data/db/{migrate → obsolete_migrations}/20180722222222_add_active_to_languages.rb +0 -0
  190. data/db/{migrate → obsolete_migrations}/20180725111111_add_referral_link_to_users.rb +0 -0
  191. data/db/obsolete_migrations/20181012222222_add_deletable_to_privileges.rb +19 -0
  192. data/db/obsolete_migrations/20181012222223_convert_stored_values.rb +13 -0
  193. data/db/obsolete_migrations/20181030080808_update_editable_pages_meta.rb +20 -0
  194. data/lib/biovision/base/base_methods.rb +19 -2
  195. data/lib/biovision/base/version.rb +3 -1
  196. data/lib/tasks/users.rake +19 -1
  197. metadata +75 -40
  198. data/app/views/admin/privileges/_list.html.erb +0 -15
  199. data/db/migrate/20170228000000_create_languages.rb +0 -23
  200. data/db/migrate/20170301000001_create_metrics.rb +0 -23
  201. data/db/migrate/20170301000002_create_metric_values.rb +0 -19
  202. data/db/migrate/20170301000101_create_browsers.rb +0 -22
  203. data/db/migrate/20170301000102_create_agents.rb +0 -22
  204. data/db/migrate/20170302000001_create_users.rb +0 -55
  205. data/db/migrate/20170302000003_create_tokens.rb +0 -23
  206. data/db/migrate/20170302000004_create_code_types.rb +0 -20
  207. data/db/migrate/20170302000005_create_codes.rb +0 -24
  208. data/db/migrate/20170302000101_create_privileges.rb +0 -41
  209. data/db/migrate/20170302000102_create_user_privileges.rb +0 -18
  210. data/db/migrate/20170302000103_create_privilege_groups.rb +0 -23
  211. data/db/migrate/20170302000104_create_privilege_group_privileges.rb +0 -24
  212. data/db/migrate/20170320000000_create_editable_pages.rb +0 -52
  213. data/db/migrate/20170425000001_create_foreign_sites.rb +0 -18
  214. data/db/migrate/20170425000002_create_foreign_users.rb +0 -23
  215. data/db/migrate/20170629120000_create_login_attempts.rb +0 -19
  216. data/db/migrate/20170823000001_create_stored_values.rb +0 -19
  217. data/db/migrate/20171202000000_create_media_folders.rb +0 -28
  218. data/db/migrate/20171202000001_create_media_files.rb +0 -27
  219. data/db/migrate/20171211000000_create_feedback_requests.rb +0 -33
  220. data/db/migrate/20180117160000_create_user_languages.rb +0 -17
  221. data/db/migrate/20180622140000_create_link_blocks.rb +0 -29
  222. data/db/migrate/20180622140001_create_link_block_items.rb +0 -23
  223. data/db/migrate/20180627190000_create_editable_blocks.rb +0 -39
@@ -25,7 +25,7 @@
25
25
  <dt><%= t('activerecord.attributes.user.last_seen') %></dt>
26
26
  <dd><%= time_tag user.last_seen %></dd>
27
27
  <% end %>
28
- <% unless user.profile_data['name'].blank? %>
28
+ <% unless user.data.dig('profile', 'name').blank? %>
29
29
  <dt><%= t('activerecord.attributes.user_profile.name') %></dt>
30
30
  <dd><%= user.full_name %></dd>
31
31
  <% end %>
@@ -33,9 +33,9 @@
33
33
  <dt><%= t('activerecord.attributes.user.email') %></dt>
34
34
  <dd><%= user.email %></dd>
35
35
  <% end %>
36
- <% unless user.profile_data['gender'].blank? %>
36
+ <% unless user.data.dig('profile', 'gender').blank? %>
37
37
  <dt><%= t('activerecord.attributes.user_profile.gender') %></dt>
38
- <dd><%= gender_name(user.profile_data['gender']) %></dd>
38
+ <dd><%= gender_name(user.data.dig('profile', 'gender')) %></dd>
39
39
  <% end %>
40
40
  </dl>
41
41
  </article>
@@ -1,13 +1,15 @@
1
1
  if collection.respond_to?(:current_page)
2
+ qp = request.query_parameters.merge(format: :json)
3
+
2
4
  json.links do
3
- json.self url_for(page: collection.current_page, format: :json)
4
- json.first url_for(page: 1, format: :json)
5
+ json.self url_for(qp.merge(page: collection.current_page))
6
+ json.first url_for(qp.merge(page: 1))
5
7
  unless collection.prev_page.nil?
6
- json.prev url_for(page: collection.prev_page, format: :json)
8
+ json.prev url_for(qp.merge(page: collection.prev_page))
7
9
  end
8
10
  unless collection.next_page.nil?
9
- json.next url_for(page: collection.next_page, format: :json)
11
+ json.next url_for(qp.merge(page: collection.next_page))
10
12
  end
11
- json.last url_for(page: collection.total_pages, format: :json)
13
+ json.last url_for(qp.merge(page: collection.total_pages))
12
14
  end
13
15
  end
@@ -1,5 +1,5 @@
1
1
  <% if content_for? :breadcrumbs %>
2
- <nav class="admin-breadcrumbs">
2
+ <nav class="breadcrumbs">
3
3
  <%= link_to(t('admin.index.index.heading'), admin_path) %>
4
4
  <%= yield :breadcrumbs %>
5
5
  </nav>
@@ -12,7 +12,7 @@
12
12
  }
13
13
  )
14
14
  %>
15
- <div class="check-result-error hidden" data-field="meta_title"></div>
15
+ <div class="check-result-error" data-field="meta_title"></div>
16
16
  <div class="guideline"><%= t('.guidelines.meta_title') %></div>
17
17
  </dd>
18
18
 
@@ -29,7 +29,7 @@
29
29
  }
30
30
  )
31
31
  %>
32
- <div class="check-result-error hidden" data-field="meta_description"></div>
32
+ <div class="check-result-error" data-field="meta_description"></div>
33
33
  <div class="guideline"><%= t('.guidelines.meta_description') %></div>
34
34
  </dd>
35
35
 
@@ -46,6 +46,6 @@
46
46
  }
47
47
  )
48
48
  %>
49
- <div class="check-result-error hidden" data-field="meta_keywords"></div>
49
+ <div class="check-result-error" data-field="meta_keywords"></div>
50
50
  <div class="guideline"><%= t('.guidelines.meta_keywords') %></div>
51
51
  </dd>
@@ -0,0 +1,12 @@
1
+ <% model_name = f.object.class.to_s.underscore %>
2
+ <dt><%= f.label :priority %></dt>
3
+ <dd>
4
+ <%=
5
+ f.number_field(
6
+ :priority,
7
+ id: "#{model_name}_priority",
8
+ in: f.object.class.priority_range,
9
+ required: true
10
+ )
11
+ %>
12
+ </dd>
@@ -1,6 +1,7 @@
1
1
  <div class="loading_message hidden">
2
2
  <div><%= t('.saving') %></div>
3
3
  <div class="state_container">
4
+ <div class="percentage">0%</div>
4
5
  <progress value="0"></progress>
5
6
  </div>
6
7
  </div>
File without changes
@@ -0,0 +1,120 @@
1
+ <% model_name = entity.class.to_s.underscore %>
2
+ <%=
3
+ form_with(
4
+ model: entity,
5
+ html: {
6
+ id: "#{model_name}-form",
7
+ data: { check_url: check_simple_blocks_path }
8
+ }
9
+ ) do |f|
10
+ %>
11
+ <%= render partial: 'shared/list_of_errors', locals: { entity: entity } %>
12
+
13
+ <dl>
14
+ <dt><%= f.label :slug %></dt>
15
+ <dd>
16
+ <%=
17
+ f.text_field(
18
+ :slug,
19
+ id: "#{model_name}_slug",
20
+ size: nil,
21
+ maxlength: SimpleBlock::SLUG_LIMIT,
22
+ pattern: SimpleBlock::SLUG_PATTERN_HTML,
23
+ title: t('.guidelines.slug'),
24
+ required: true,
25
+ data: {
26
+ check: :slug
27
+ }
28
+ )
29
+ %>
30
+ <div class="check-result-error" data-field="slug"></div>
31
+ <div class="guideline"><%= t('.guidelines.slug') %></div>
32
+ </dd>
33
+
34
+ <dt><%= f.label :name %></dt>
35
+ <dd>
36
+ <%=
37
+ f.text_field(
38
+ :name,
39
+ id: "#{model_name}_name",
40
+ size: nil,
41
+ maxlength: SimpleBlock::NAME_LIMIT,
42
+ required: true,
43
+ data: {
44
+ check: :name
45
+ }
46
+ )
47
+ %>
48
+ <div class="check-result-error" data-field="name"></div>
49
+ <div class="guideline"><%= t('.guidelines.name') %></div>
50
+ </dd>
51
+
52
+ <dt><%= f.label :body %></dt>
53
+ <dd>
54
+ <%=
55
+ f.text_area(
56
+ :body,
57
+ id: "#{model_name}_body",
58
+ cols: 80,
59
+ rows: 3,
60
+ class: 'auto-expand',
61
+ data: {
62
+ check: :body,
63
+ min_rows: 3,
64
+ max_rows: 40
65
+ }
66
+ )
67
+ %>
68
+ <div class="check-result-error" data-field="body"></div>
69
+ <div class="guideline"><%= t('.guidelines.body') %></div>
70
+ </dd>
71
+
72
+ <dt><%= f.label :image %></dt>
73
+ <dd>
74
+ <figure class="preview" role="group" id="<%= model_name %>-image">
75
+ <% if entity.image.blank? %>
76
+ <%= f.label :image, image_tag('biovision/base/placeholders/16x9.svg', alt: '') %>
77
+ <% else %>
78
+ <%= f.label :image, image_tag(entity.image.medium_url, alt: '') %>
79
+ <% end %>
80
+ <figcaption>
81
+ <%=
82
+ f.file_field(
83
+ :image,
84
+ id: "#{model_name}_image",
85
+ accept: 'image/jpeg,image/png,image/svg+xml',
86
+ data: { image: "#{model_name}-image" }
87
+ )
88
+ %>
89
+ </figcaption>
90
+ </figure>
91
+ <div class="guideline"><%= t('.guidelines.image') %></div>
92
+ </dd>
93
+
94
+ <dt><%= f.label :image_alt_text %></dt>
95
+ <dd>
96
+ <%=
97
+ f.text_field(
98
+ :image_alt_text,
99
+ id: "#{model_name}_image_alt_text",
100
+ size: nil,
101
+ maxlength: SimpleBlock::META_LIMIT,
102
+ data: {
103
+ check: :image_alt_text
104
+ }
105
+ )
106
+ %>
107
+ <div class="check-result-error" data-field="image_alt_text"></div>
108
+ <div class="guideline"><%= t('.guidelines.image_alt_text') %></div>
109
+ </dd>
110
+
111
+ <%= render partial: 'shared/forms/entity_flags', locals: { f: f } %>
112
+ </dl>
113
+
114
+ <%= render 'shared/forms/state_container' %>
115
+
116
+ <div class="buttons">
117
+ <%= hidden_field_tag :entity_id, entity.id %>
118
+ <%= f.button t(:save), type: :submit, class: 'button-save' %>
119
+ </div>
120
+ <% end %>
@@ -0,0 +1,26 @@
1
+ <%
2
+ style = ''
3
+ if simple_block.background_image? && !simple_block.image.blank?
4
+ style = %(background-image: url('#{simple_block.image.hd_url}'))
5
+ end
6
+ %>
7
+ <section class="simple-block simple-block__<%= simple_block.slug %>" style="<%= style %>">
8
+ <div class="wrapper">
9
+ <% unless simple_block.image.blank? || simple_block.background_image? %>
10
+ <figure>
11
+ <%= simple_image_hd(simple_block) %>
12
+ </figure>
13
+ <% end %>
14
+
15
+ <div class="text">
16
+ <%= raw(simple_block.body) %>
17
+ </div>
18
+ </div>
19
+
20
+ <% if current_user_has_privilege?(:content_manager) %>
21
+ <ul class="actions">
22
+ <li><%= gear_icon(admin_simple_block_path(id: simple_block.id)) %></li>
23
+ <li><%= edit_icon(edit_simple_block_path(id: simple_block.id)) %></li>
24
+ </ul>
25
+ <% end %>
26
+ </section>
@@ -0,0 +1,17 @@
1
+ <% content_for :meta_title, t('.title') %>
2
+ <% content_for :breadcrumbs do %>
3
+ <%= link_to(t('admin.simple_blocks.nav_item.text'), admin_simple_blocks_path) %>
4
+ <%= admin_simple_block_link(@entity) %>
5
+ <span><%= t('.nav_text') %></span>
6
+ <% end %>
7
+
8
+ <article>
9
+ <h1><%= t('.heading') %></h1>
10
+
11
+ <ul class="actions">
12
+ <li><%= return_icon(admin_simple_block_path(id: @entity.id)) %></li>
13
+ <li class="danger"><%= destroy_icon(@entity) %></li>
14
+ </ul>
15
+
16
+ <%= render partial: 'form', locals: { entity: @entity } %>
17
+ </article>
@@ -0,0 +1,15 @@
1
+ <% content_for :meta_title, t('.title') %>
2
+ <% content_for :breadcrumbs do %>
3
+ <%= link_to(t('admin.simple_blocks.nav_item.text'), admin_simple_blocks_path) %>
4
+ <span><%= t('.nav_text') %></span>
5
+ <% end %>
6
+
7
+ <article>
8
+ <h1><%= t('.heading') %></h1>
9
+
10
+ <ul class="actions">
11
+ <li><%= back_icon(admin_simple_blocks_path) %></li>
12
+ </ul>
13
+
14
+ <%= render partial: 'form', locals: { entity: @entity } %>
15
+ </article>
@@ -1,35 +1,64 @@
1
- <%= render partial: 'shared/list_of_errors', locals: { entity: entity } %>
1
+ <% model_name = entity.class.to_s.underscore %>
2
+ <%= form_with(model: entity, html: { id: "#{model_name}-form" }) do |f| %>
3
+ <%= render partial: 'shared/list_of_errors', locals: { entity: entity } %>
4
+ <dl>
5
+ <dt><%= f.label :slug %></dt>
6
+ <dd>
7
+ <%=
8
+ f.text_field(
9
+ :slug,
10
+ id: "#{model_name}_slug",
11
+ required: true,
12
+ size: nil,
13
+ maxlength: StoredValue::SLUG_LIMIT
14
+ )
15
+ %>
16
+ <div class="guideline"><%= t('.guidelines.slug') %></div>
17
+ </dd>
2
18
 
3
- <%= form_for entity do |f| %>
4
- <dl>
5
- <dt><%= f.label :slug %></dt>
6
- <dd>
7
- <%= f.text_field :slug, required: true, size: nil, maxlength: StoredValue::SLUG_LIMIT %>
8
- <div class="guideline"><%= t('.guidelines.slug') %></div>
9
- </dd>
19
+ <dt><%= f.label :value %></dt>
20
+ <dd>
21
+ <%=
22
+ f.text_field(
23
+ :value,
24
+ id: "#{model_name}_value",
25
+ size: nil,
26
+ maxlength: StoredValue::VALUE_LIMIT
27
+ )
28
+ %>
29
+ <div class="guideline"><%= t('.guidelines.value') %></div>
30
+ </dd>
10
31
 
11
- <dt><%= f.label :value %></dt>
12
- <dd>
13
- <%= f.text_field :value, size: nil, maxlength: StoredValue::VALUE_LIMIT %>
14
- <div class="guideline"><%= t('.guidelines.value') %></div>
15
- </dd>
32
+ <dt><%= f.label :name %></dt>
33
+ <dd>
34
+ <%=
35
+ f.text_field(
36
+ :name,
37
+ id: "#{model_name}_name",
38
+ size: nil,
39
+ maxlength: StoredValue::NAME_LIMIT
40
+ )
41
+ %>
42
+ <div class="guideline"><%= t('.guidelines.name') %></div>
43
+ </dd>
16
44
 
17
- <dt><%= f.label :name %></dt>
18
- <dd>
19
- <%= f.text_field :name, size: nil, maxlength: StoredValue::NAME_LIMIT %>
20
- <div class="guideline"><%= t('.guidelines.name') %></div>
21
- </dd>
22
-
23
- <dt><%= f.label :description %></dt>
24
- <dd>
25
- <%= f.text_field :description, size: nil, maxlength: StoredValue::DESCRIPTION_LIMIT %>
26
- <div class="guideline"><%= t('.guidelines.description') %></div>
27
- </dd>
28
- </dl>
45
+ <dt><%= f.label :description %></dt>
46
+ <dd>
47
+ <%=
48
+ f.text_field(
49
+ :description,
50
+ id: "#{model_name}_description",
51
+ size: nil,
52
+ maxlength: StoredValue::DESCRIPTION_LIMIT
53
+ )
54
+ %>
55
+ <div class="guideline"><%= t('.guidelines.description') %></div>
56
+ </dd>
57
+ </dl>
29
58
 
30
59
  <%= render 'shared/forms/state_container' %>
31
60
 
32
- <div class="buttons">
33
- <%= f.button t(:save), type: :submit %>
34
- </div>
61
+ <div class="buttons">
62
+ <%= f.button t(:save), type: :submit %>
63
+ </div>
35
64
  <% end %>
@@ -1,32 +1,37 @@
1
- <%= render partial: 'shared/list_of_errors', locals: { entity: entity } %>
1
+ <% model_name = entity.class.to_s.underscore %>
2
+ <%= form_with(model: entity, html: { id: "#{model_name}-form" }) do |f| %>
3
+ <%= render partial: 'shared/list_of_errors', locals: { entity: entity } %>
4
+ <dl>
5
+ <% if entity.id.blank? %>
6
+ <dt><%= f.label :user_id %></dt>
7
+ <dd>
8
+ <%=
9
+ f.number_field(
10
+ :user_id,
11
+ id: "#{model_name}_user_id",
12
+ in: User.ids_range
13
+ )
14
+ %>
15
+ <%= render partial: 'admin/users/search', locals: { target_id: 'token_user_id' } %>
16
+ </dd>
17
+ <% else %>
18
+ <dt><%= t('activerecord.attributes.token.user') %></dt>
19
+ <dd>
20
+ <%= admin_user_link entity.user %>
21
+ </dd>
2
22
 
3
- <%= form_for entity do |f| %>
4
- <dl>
5
- <% if entity.id.blank? %>
6
- <dt><%= f.label :user_id %></dt>
7
- <dd>
8
- <%= f.number_field :user_id, in: User.ids_range %>
9
- <%= render partial: 'admin/users/search', locals: { target_id: 'token_user_id' } %>
10
- </dd>
11
- <% else %>
12
- <dt><%= t('activerecord.attributes.token.user') %></dt>
13
- <dd>
14
- <%= admin_user_link entity.user %>
15
- </dd>
23
+ <dt><%= t('activerecord.attributes.token.token') %></dt>
24
+ <dd>
25
+ <%= entity.token %>
26
+ </dd>
27
+ <% end %>
16
28
 
17
- <dt><%= t('activerecord.attributes.token.token') %></dt>
18
- <dd>
19
- <%= entity.token %>
20
- </dd>
21
- <% end %>
22
- </dl>
23
- <ul class="flags">
24
- <li><%= f.check_box :active %><%= f.label :active %></li>
25
- </ul>
29
+ <%= render partial: 'shared/forms/entity_flags', locals: { f: f } %>
30
+ </dl>
26
31
 
27
32
  <%= render 'shared/forms/state_container' %>
28
33
 
29
- <div class="buttons">
30
- <%= f.button t(:save), type: :submit %>
31
- </div>
34
+ <div class="buttons">
35
+ <%= f.button t(:save), type: :submit %>
36
+ </div>
32
37
  <% end %>
@@ -111,7 +111,7 @@
111
111
  </dd>
112
112
  <% end %>
113
113
 
114
- <%= render partial: 'users/form/profile_data', locals: { data: entity.profile_data } %>
114
+ <%= render partial: 'users/form/profile_data', locals: { data: entity.data['profile'] || {} } %>
115
115
 
116
116
  <dt><%= f.label :notice %></dt>
117
117
  <dd>