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
@@ -39,25 +39,29 @@
39
39
  <dd><%= @entity.url %></dd>
40
40
  <% end %>
41
41
 
42
- <dt><%= t(:created_at) %></dt>
43
- <dd><%= time_tag(@entity.created_at) %></dd>
42
+ <% unless @entity.nav_group.blank? %>
43
+ <dt><%= t('activerecord.attributes.editable_page.nav_group') %></dt>
44
+ <dd><%= @entity.nav_group %></dd>
45
+ <% end %>
44
46
 
45
- <dt><%= t(:updated_at) %></dt>
46
- <dd><%= time_tag(@entity.updated_at) %></dd>
47
+ <dt><%= t('activerecord.attributes.editable_page.body') %></dt>
48
+ <dd>
49
+ <div class="text">
50
+ <%= raw(@entity.body) %>
51
+ </div>
52
+ </dd>
47
53
 
48
- <% unless @entity.title.blank? %>
49
- <dt><%= t('activerecord.attributes.editable_page.title') %></dt>
50
- <dd><%= @entity.title %></dd>
51
- <% end %>
52
- <% unless @entity.keywords.blank? %>
53
- <dt><%= t('activerecord.attributes.editable_page.keywords') %></dt>
54
- <dd><%= @entity.keywords %></dd>
55
- <% end %>
56
- <% unless @entity.description.blank? %>
57
- <dt><%= t('activerecord.attributes.editable_page.description') %></dt>
58
- <dd><%= @entity.description %></dd>
59
- <% end %>
54
+ <%= render partial: 'shared/entity/meta_texts', locals: { entity: @entity } %>
55
+ <%= render partial: 'shared/entity/timestamps', locals: { entity: @entity } %>
60
56
  </dl>
61
57
 
62
- <section><%= raw(@entity.body) %></section>
58
+ <%=
59
+ render(
60
+ partial: 'shared/admin/toggleable',
61
+ locals: {
62
+ entity: @entity,
63
+ url: toggle_admin_editable_page_path(id: @entity.id)
64
+ }
65
+ )
66
+ %>
63
67
  </article>
@@ -1,7 +1,7 @@
1
1
  <div class="data">
2
2
  <div><%= entity.name %></div>
3
3
  <div class="info">
4
- <%= entity.phone %>
4
+ <%= entity.phone %><br/>
5
5
  <%= entity.email %>
6
6
  </div>
7
7
  <div class="secondary info">
@@ -13,6 +13,14 @@
13
13
  <%= simple_format entity.comment %>
14
14
  </div>
15
15
  <% end %>
16
+ <% unless entity.data.empty? %>
17
+ <div class="secondary info">
18
+ <%= t('activerecord.attributes.feedback_request.data') %>:
19
+ <% entity.data.each do |k, v| %>
20
+ <div><dfn><%= k %></dfn>: <%= v %></div>
21
+ <% end %>
22
+ </div>
23
+ <% end %>
16
24
 
17
25
  <%= render partial: 'shared/admin/toggleable', locals: { entity: entity, url: toggle_admin_feedback_request_path(id: entity.id) } %>
18
26
  </div>
@@ -1,11 +1,9 @@
1
- <%= render 'admin/index/dashboard/settings' %>
1
+ <%#= render 'admin/index/dashboard/settings' %>
2
2
  <%#= render 'admin/index/dashboard/biovision_track' %>
3
- <%= render 'admin/index/dashboard/biovision_regions' if Gem.loaded_specs.key?('biovision-regions') %>
4
3
  <%= render 'admin/index/dashboard/biovision_user' %>
5
4
  <%= render 'admin/index/dashboard/editorial' %>
6
- <%= render 'admin/index/dashboard/biovision_links' %>
7
- <%= render 'admin/index/dashboard/biovision_post' if Gem.loaded_specs.key?('biovision-post') %>
8
- <%= render 'admin/index/dashboard/biovision_vote' if Gem.loaded_specs.key?('biovision-vote') %>
9
- <%= render 'admin/index/dashboard/biovision_poll' if Gem.loaded_specs.key?('biovision-poll') %>
10
- <%= render 'admin/index/dashboard/biovision_courses' if Gem.loaded_specs.key?('biovision-courses') %>
5
+ <%= render 'admin/index/dashboard/biovision_links' if LinkBlock.any? %>
11
6
  <%= render 'admin/index/dashboard/biovision_feedback' %>
7
+ <% %w[regions post vote poll comment].each do |part| %>
8
+ <%= render "admin/index/dashboard/biovision_#{part}" if Gem.loaded_specs.key?("biovision-#{part}") %>
9
+ <% end %>
@@ -0,0 +1,9 @@
1
+ <section>
2
+ <ul class="biovision-components">
3
+ <% if current_user_has_privilege?(:administrator) %>
4
+ <li class="settings-general">
5
+ <%= link_to(t('admin.settings.index.nav_text'), admin_settings_path) %>
6
+ </li>
7
+ <% end %>
8
+ </ul>
9
+ </section>
@@ -1,9 +1,9 @@
1
1
  <% if current_user_has_privilege?(:content_manager) %>
2
2
  <nav>
3
- <div class="heading"><%= t('.heading') %></div>
3
+ <h3><%= t('.heading') %></h3>
4
4
  <ul>
5
5
  <li><%= render 'admin/editable_pages/nav_item' %></li>
6
- <li><%= render 'admin/editable_blocks/nav_item' %></li>
6
+ <li><%= render 'admin/simple_blocks/nav_item' %></li>
7
7
  <!-- <li><%#= render 'admin/media_folders/nav_item' %></li>-->
8
8
  <!-- <li><%#= render 'admin/media_files/nav_item' %></li>-->
9
9
  </ul>
@@ -3,7 +3,7 @@
3
3
  <div class="heading"><%= t('.heading') %></div>
4
4
 
5
5
  <ul>
6
- <li><%= render 'admin/stored_values/nav_item' %></li>
6
+ <!-- <li><%#= render 'admin/stored_values/nav_item' %></li>-->
7
7
  </ul>
8
8
  </nav>
9
- <% end %>
9
+ <% end %>
@@ -3,6 +3,8 @@
3
3
  <article>
4
4
  <h1><%= t('.heading') %></h1>
5
5
 
6
+ <%= render 'admin/index/components' %>
7
+
6
8
  <div class="dashboard">
7
9
  <%= render 'admin/index/biovision_base' %>
8
10
  <%= render 'admin/index/custom_dashboard' %>
@@ -2,35 +2,35 @@
2
2
  <h2><%= t('.heading') %></h2>
3
3
 
4
4
  <% if PrivilegeGroup.count > 0 %>
5
- <ul class="list-of-entities privilege-groups">
6
- <% PrivilegeGroup.page_for_administration.each do |privilege_group| %>
7
- <li data-url="<%= privilege_admin_privilege_group_path(id: privilege_group.id, privilege_id: privilege.id) %>">
8
- <% element_id = "privilege_group_#{privilege_group.id}" %>
9
- <%= check_box_tag element_id, 1, privilege_group.has_privilege?(privilege) %>
10
- <%= label_tag element_id, privilege_group.name %>
11
- </li>
12
- <% end %>
13
- </ul>
5
+ <ul class="list-of-entities privilege-groups">
6
+ <% PrivilegeGroup.list_for_administration.each do |privilege_group| %>
7
+ <li data-url="<%= privilege_admin_privilege_group_path(id: privilege_group.id, privilege_id: privilege.id) %>">
8
+ <% element_id = "privilege_group_#{privilege_group.id}" %>
9
+ <%= check_box_tag element_id, 1, privilege_group.has_privilege?(privilege) %>
10
+ <%= label_tag element_id, privilege_group.name %>
11
+ </li>
12
+ <% end %>
13
+ </ul>
14
14
 
15
- <script>
16
- 'use strict';
15
+ <script>
16
+ 'use strict';
17
17
 
18
- document.addEventListener('DOMContentLoaded', function () {
19
- document.querySelectorAll('ul.privilege-groups input[type=checkbox]').forEach(function(element) {
20
- element.addEventListener('click', function () {
21
- const url = this.closest('li').getAttribute('data-url');
22
- const method = this.checked ? 'put' : 'delete';
23
- const request = Biovision.newAjaxRequest(method, url, function() {
24
- console.log(JSON.parse(this.responseText));
25
- });
18
+ document.addEventListener('DOMContentLoaded', function () {
19
+ document.querySelectorAll('ul.privilege-groups input[type=checkbox]').forEach(function (element) {
20
+ element.addEventListener('click', function () {
21
+ const url = this.closest('li').getAttribute('data-url');
22
+ const method = this.checked ? 'put' : 'delete';
23
+ const request = Biovision.newAjaxRequest(method, url, function () {
24
+ console.log(JSON.parse(this.responseText));
25
+ });
26
26
 
27
- request.send();
28
- });
27
+ request.send();
28
+ });
29
29
 
30
- });
31
- });
32
- </script>
30
+ });
31
+ });
32
+ </script>
33
33
  <% else %>
34
- <%= render 'shared/nothing_found' %>
34
+ <%= render 'shared/nothing_found' %>
35
35
  <% end %>
36
36
  </section>
@@ -6,28 +6,49 @@
6
6
  <div class="info">
7
7
  <div><%= entity.slug %></div>
8
8
  <div><%= entity.privilege_groups.map(&:name).join(', ') %></div>
9
- <div><%= link_to t(:user_count, count: entity.users_count), users_admin_privilege_path(id: entity.id) %></div>
9
+ <div>
10
+ <%=
11
+ link_to(
12
+ t(:user_count, count: entity.users_count),
13
+ users_admin_privilege_path(id: entity.id)
14
+ )
15
+ %>
16
+ </div>
10
17
  </div>
11
- <%= render partial: 'shared/admin/toggleable', locals: { entity: entity, url: toggle_admin_privilege_path(id: entity.id) } %>
18
+ <%=
19
+ render(
20
+ partial: 'shared/admin/toggleable',
21
+ locals: {
22
+ entity: entity,
23
+ url: toggle_admin_privilege_path(id: entity.id)
24
+ }
25
+ )
26
+ %>
12
27
 
13
28
  <ul class="actions">
14
- <li class="lockable <%= entity.locked? ? 'hidden' : '' %>">
29
+ <li>
15
30
  <%= edit_icon(edit_privilege_path(id: entity.id)) %>
16
31
  </li>
17
32
  <%=
18
33
  render(
19
34
  partial: 'shared/actions/priority_changer',
20
- locals: {
35
+ locals: {
21
36
  path: priority_admin_privilege_path(id: entity.id)
22
37
  }
23
38
  )
24
39
  %>
25
- <%= render partial: 'shared/actions/locks', locals: { entity: entity, path: lock_admin_privilege_path(id: entity.id) } %>
26
40
  </ul>
27
41
 
28
- <% if entity.children.any? %>
29
- <div class="children">
30
- <%= render partial: 'admin/privileges/list', locals: { collection: Privilege.for_tree(entity.id) } %>
31
- </div>
42
+ <% if entity.child_privileges.any? %>
43
+ <div class="children">
44
+ <%=
45
+ render(
46
+ partial: 'shared/admin/list_with_priority',
47
+ locals: {
48
+ collection: Privilege.for_tree(entity.id)
49
+ }
50
+ )
51
+ %>
52
+ </div>
32
53
  <% end %>
33
54
  </div>
@@ -10,7 +10,12 @@
10
10
  <li><%= back_icon(admin_path) %></li>
11
11
  </ul>
12
12
 
13
- <%= render partial: 'list', locals: { collection: @collection } %>
13
+ <%=
14
+ render(
15
+ partial: 'shared/admin/list_with_priority',
16
+ locals: { collection: @collection }
17
+ )
18
+ %>
14
19
 
15
20
  <section>
16
21
  <h2><%= t('privileges.new.title') %></h2>
@@ -1,10 +1,10 @@
1
1
  <% content_for :meta_title, t('.title', name: @entity.name) %>
2
2
  <% content_for :breadcrumbs do %>
3
- <%= link_to(t('admin.privileges.nav_item.text'), admin_privileges_path) %>
4
- <% @entity.parents.each do |parent| %>
5
- <%= admin_privilege_link(parent) %>
6
- <% end %>
7
- <span><%= @entity.name %></span>
3
+ <%= link_to(t('admin.privileges.nav_item.text'), admin_privileges_path) %>
4
+ <% @entity.parents.each do |parent| %>
5
+ <%= admin_privilege_link(parent) %>
6
+ <% end %>
7
+ <span><%= @entity.name %></span>
8
8
  <% end %>
9
9
 
10
10
  <article>
@@ -12,15 +12,13 @@
12
12
 
13
13
  <ul class="actions">
14
14
  <li><%= return_icon(admin_privileges_path) %></li>
15
- <% unless @entity.locked? %>
16
- <li><%= edit_icon(edit_privilege_path(id: @entity.id)) %></li>
17
- <% end %>
15
+ <li><%= edit_icon(edit_privilege_path(id: @entity.id)) %></li>
18
16
  </ul>
19
17
 
20
18
  <dl>
21
19
  <% unless @entity.parent.nil? %>
22
- <dt><%= t('activerecord.attributes.privilege.parent_id') %></dt>
23
- <dd><%= link_to @entity.parent.name, admin_privilege_path(id: @entity.parent_id) %></dd>
20
+ <dt><%= t('activerecord.attributes.privilege.parent_id') %></dt>
21
+ <dd><%= admin_privilege_link(@entity.parent) %></dd>
24
22
  <% end %>
25
23
  <dt><%= t('activerecord.attributes.privilege.slug') %></dt>
26
24
  <dd><%= @entity.slug %></dd>
@@ -29,22 +27,37 @@
29
27
  <dd><%= @entity.priority %></dd>
30
28
 
31
29
  <% unless @entity.description.blank? %>
32
- <dt><%= t('activerecord.attributes.privilege.description') %></dt>
33
- <dd><%= simple_format(@entity.description) %></dd>
30
+ <dt><%= t('activerecord.attributes.privilege.description') %></dt>
31
+ <dd><%= @entity.description %></dd>
34
32
  <% end %>
35
33
 
36
34
  <% unless @entity.parents_cache.blank? %>
37
- <dt><%= t('activerecord.attributes.privilege.parents_cache') %></dt>
38
- <dd><%= @entity.parents_cache %></dd>
35
+ <dt><%= t('activerecord.attributes.privilege.parents_cache') %></dt>
36
+ <dd><%= @entity.parents_cache %></dd>
39
37
  <% end %>
40
38
 
41
39
  <% unless @entity.children_cache.blank? %>
42
- <dt><%= t('activerecord.attributes.privilege.children_cache') %></dt>
43
- <dd><%= @entity.children_cache.join(', ') %></dd>
40
+ <dt><%= t('activerecord.attributes.privilege.children_cache') %></dt>
41
+ <dd><%= @entity.children_cache.join(', ') %></dd>
44
42
  <% end %>
43
+
44
+ <%=
45
+ render(
46
+ partial: 'shared/entity/timestamps',
47
+ locals: { entity: @entity }
48
+ )
49
+ %>
45
50
  </dl>
46
51
 
47
- <%= render partial: 'shared/admin/toggleable', locals: { entity: @entity, url: toggle_admin_privilege_path(id: @entity.id) } %>
52
+ <%=
53
+ render(
54
+ partial: 'shared/admin/toggleable',
55
+ locals: {
56
+ entity: @entity,
57
+ url: toggle_admin_privilege_path(id: @entity.id)
58
+ }
59
+ )
60
+ %>
48
61
 
49
62
  <nav>
50
63
  <ul>
@@ -57,7 +70,7 @@
57
70
  <section>
58
71
  <h2><%= t('.children') %></h2>
59
72
 
60
- <%= render partial: 'admin/privileges/list', locals: { collection: Privilege.for_tree(@entity.id) } %>
73
+ <%= render partial: 'shared/admin/list_with_priority', locals: { collection: Privilege.for_tree(@entity.id) } %>
61
74
  </section>
62
75
 
63
76
  <section>
@@ -0,0 +1,62 @@
1
+ <section>
2
+ <h2><%= t('.heading') %></h2>
3
+
4
+ <%=
5
+ form_with(
6
+ scope: :key,
7
+ url: admin_set_parameter_path(slug: handler.slug),
8
+ method: :put,
9
+ local: true,
10
+ id: 'new-biovision-parameter-form'
11
+ ) do |f|
12
+ %>
13
+ <dl>
14
+ <dt>
15
+ <%=
16
+ f.label(:slug, t('activerecord.attributes.biovision_parameter.slug'))
17
+ %>
18
+ </dt>
19
+ <dd>
20
+ <%=
21
+ f.text_field(
22
+ :slug,
23
+ value: '',
24
+ required: true,
25
+ pattern: BiovisionParameter::SLUG_PATTERN_HTML,
26
+ title: t('.guidelines.slug'),
27
+ size: nil,
28
+ maxlength: BiovisionParameter::SLUG_LIMIT,
29
+ data: {
30
+ field: :slug
31
+ }
32
+ )
33
+ %>
34
+ <div class="guideline"><%= t('.guidelines.slug') %></div>
35
+ </dd>
36
+
37
+ <dt>
38
+ <%=
39
+ f.label(:value, t('activerecord.attributes.biovision_parameter.value'))
40
+ %>
41
+ </dt>
42
+ <dd>
43
+ <%=
44
+ f.text_field(
45
+ :value,
46
+ value: '',
47
+ required: true,
48
+ size: nil,
49
+ maxlength: BiovisionParameter::VALUE_LIMIT,
50
+ data: {
51
+ field: :value
52
+ }
53
+ )
54
+ %>
55
+ <div class="guideline"><%= t('.guidelines.value') %></div>
56
+ </dd>
57
+ </dl>
58
+ <div class="buttons">
59
+ <%= button_tag(t(:save), type: :submit, class: 'button-save') %>
60
+ </div>
61
+ <% end %>
62
+ </section>
@@ -0,0 +1,37 @@
1
+ <section>
2
+ <h2><%= t('.heading') %></h2>
3
+
4
+ <ul id="biovision-component-parameters" data-url="<%= admin_set_parameter_path(slug: handler.slug) %>">
5
+ <% parameters.each do |parameter| %>
6
+ <%
7
+ element_id = "parameter-#{parameter.id}"
8
+ description = t("biovision.components.#{parameter.biovision_component.slug}.parameters.#{parameter.slug}.description", default: '')
9
+ %>
10
+ <li>
11
+ <div class="name">
12
+ <%= label_tag(element_id, parameter.slug) %>
13
+ </div>
14
+ <div class="value">
15
+ <%= text_field_tag(:value, parameter.value, id: element_id) %>
16
+ <%=
17
+ button_tag(
18
+ '',
19
+ title: t(:save),
20
+ type: :button,
21
+ class: 'apply',
22
+ disabled: true,
23
+ data: {
24
+ slug: parameter.slug
25
+ }
26
+ )
27
+ %>
28
+ </div>
29
+ <% unless description.blank? %>
30
+ <div class="description">
31
+ <%= description %>
32
+ </div>
33
+ <% end %>
34
+ </li>
35
+ <% end %>
36
+ </ul>
37
+ </section>