biovision 0.0.200518.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (170) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +20 -0
  3. data/README.md +214 -0
  4. data/Rakefile +22 -0
  5. data/app/assets/config/biovision_manifest.js +1 -0
  6. data/app/assets/images/biovision/components/carousel/arrow-left.svg +4 -0
  7. data/app/assets/images/biovision/components/carousel/arrow-right.svg +4 -0
  8. data/app/assets/images/biovision/icons/breadcrumb-hover.svg +1 -0
  9. data/app/assets/images/biovision/icons/breadcrumb.svg +1 -0
  10. data/app/assets/images/biovision/icons/components/contact.svg +26 -0
  11. data/app/assets/images/biovision/icons/components/content.svg +20 -0
  12. data/app/assets/images/biovision/icons/components/users.svg +21 -0
  13. data/app/assets/images/biovision/icons/key.svg +16 -0
  14. data/app/assets/images/biovision/icons/log_in.svg +15 -0
  15. data/app/assets/images/biovision/icons/log_out.svg +15 -0
  16. data/app/assets/images/biovision/icons/messages/error.svg +14 -0
  17. data/app/assets/images/biovision/icons/messages/info.svg +8 -0
  18. data/app/assets/images/biovision/icons/messages/success.svg +12 -0
  19. data/app/assets/images/biovision/icons/messages/warning.svg +13 -0
  20. data/app/assets/images/biovision/icons/settings.svg +41 -0
  21. data/app/assets/images/biovision/placeholders/16x9.svg +11 -0
  22. data/app/assets/images/biovision/placeholders/1x1.svg +11 -0
  23. data/app/assets/images/biovision/placeholders/3x2.svg +11 -0
  24. data/app/assets/images/biovision/placeholders/user.svg +15 -0
  25. data/app/assets/stylesheets/biovision/admin.scss +6 -0
  26. data/app/assets/stylesheets/biovision/admin/components.scss +59 -0
  27. data/app/assets/stylesheets/biovision/admin/default.scss +57 -0
  28. data/app/assets/stylesheets/biovision/admin/layout.scss +95 -0
  29. data/app/assets/stylesheets/biovision/admin/vars.scss +56 -0
  30. data/app/assets/stylesheets/biovision/biovision.scss +134 -0
  31. data/app/assets/stylesheets/biovision/biovision/messages.scss +41 -0
  32. data/app/assets/stylesheets/biovision/components/carousel.scss +53 -0
  33. data/app/assets/stylesheets/biovision/components/forms.scss +85 -0
  34. data/app/assets/stylesheets/biovision/components/hamburger.scss +56 -0
  35. data/app/assets/stylesheets/biovision/components/lists.scss +91 -0
  36. data/app/assets/stylesheets/biovision/default.scss +57 -0
  37. data/app/assets/stylesheets/biovision/themes/default_theme.scss +2 -0
  38. data/app/assets/stylesheets/biovision/themes/default_theme/components.scss +3 -0
  39. data/app/assets/stylesheets/biovision/themes/default_theme/layout.scss +44 -0
  40. data/app/assets/stylesheets/biovision/themes/default_theme/layout/footer.scss +0 -0
  41. data/app/assets/stylesheets/biovision/themes/default_theme/layout/header.scss +39 -0
  42. data/app/assets/stylesheets/biovision/vars.scss +53 -0
  43. data/app/controllers/admin/agents_controller.rb +15 -0
  44. data/app/controllers/admin/components_controller.rb +174 -0
  45. data/app/controllers/admin/index_controller.rb +11 -0
  46. data/app/controllers/admin/ip_addresses_controller.rb +15 -0
  47. data/app/controllers/admin_controller.rb +14 -0
  48. data/app/controllers/authentication_controller.rb +79 -0
  49. data/app/controllers/concerns/authentication.rb +45 -0
  50. data/app/controllers/index_controller.rb +8 -0
  51. data/app/controllers/my/confirmations_controller.rb +2 -0
  52. data/app/controllers/my/index_controller.rb +8 -0
  53. data/app/controllers/my/profiles_controller.rb +128 -0
  54. data/app/controllers/my/recoveries_controller.rb +2 -0
  55. data/app/helpers/biovision_components_helper.rb +14 -0
  56. data/app/helpers/users_helper.rb +11 -0
  57. data/app/lib/biovision/components/base_component.rb +177 -0
  58. data/app/lib/biovision/components/component_settings.rb +30 -0
  59. data/app/lib/biovision/components/privilege_handler.rb +77 -0
  60. data/app/lib/biovision/components/track_component.rb +9 -0
  61. data/app/lib/biovision/components/users/authentication.rb +47 -0
  62. data/app/lib/biovision/components/users/code_handler.rb +23 -0
  63. data/app/lib/biovision/components/users/profile_handler.rb +12 -0
  64. data/app/lib/biovision/components/users/registration_handler.rb +99 -0
  65. data/app/lib/biovision/components/users_component.rb +47 -0
  66. data/app/lib/biovision/notifiers/base_notifier.rb +69 -0
  67. data/app/lib/biovision/notifiers/socialization_notifier.rb +31 -0
  68. data/app/lib/biovision/notifiers/users_notifier.rb +15 -0
  69. data/app/models/agent.rb +35 -0
  70. data/app/models/biovision_component.rb +45 -0
  71. data/app/models/biovision_component_user.rb +21 -0
  72. data/app/models/browser.rb +34 -0
  73. data/app/models/code.rb +71 -0
  74. data/app/models/concerns/checkable.rb +22 -0
  75. data/app/models/concerns/flat_priority.rb +50 -0
  76. data/app/models/concerns/has_language.rb +10 -0
  77. data/app/models/concerns/has_owner.rb +22 -0
  78. data/app/models/concerns/has_simple_image.rb +18 -0
  79. data/app/models/concerns/has_track.rb +10 -0
  80. data/app/models/concerns/has_uuid.rb +12 -0
  81. data/app/models/concerns/meta_texts.rb +16 -0
  82. data/app/models/concerns/nested_priority.rb +58 -0
  83. data/app/models/concerns/required_unique_name.rb +16 -0
  84. data/app/models/concerns/required_unique_slug.rb +15 -0
  85. data/app/models/concerns/toggleable.rb +33 -0
  86. data/app/models/foreign_site.rb +34 -0
  87. data/app/models/foreign_user.rb +21 -0
  88. data/app/models/ip_address.rb +31 -0
  89. data/app/models/language.rb +31 -0
  90. data/app/models/login_attempt.rb +35 -0
  91. data/app/models/metric.rb +48 -0
  92. data/app/models/metric_value.rb +11 -0
  93. data/app/models/notification.rb +37 -0
  94. data/app/models/simple_image.rb +47 -0
  95. data/app/models/simple_image_tag.rb +30 -0
  96. data/app/models/simple_image_tag_image.rb +13 -0
  97. data/app/models/token.rb +96 -0
  98. data/app/models/user.rb +136 -0
  99. data/app/models/user_language.rb +15 -0
  100. data/app/uploaders/simple_image_uploader.rb +96 -0
  101. data/app/uploaders/user_image_uploader.rb +58 -0
  102. data/app/views/admin/agents/_nav_item.html.erb +6 -0
  103. data/app/views/admin/agents/entity/_in_list.html.erb +6 -0
  104. data/app/views/admin/agents/index.html.erb +13 -0
  105. data/app/views/admin/components/_list.html.erb +12 -0
  106. data/app/views/admin/components/entity/_links.html.erb +35 -0
  107. data/app/views/admin/components/entity/_section.html.erb +12 -0
  108. data/app/views/admin/components/index.html.erb +12 -0
  109. data/app/views/admin/components/links/_track.html.erb +2 -0
  110. data/app/views/admin/components/links/_users.html.erb +11 -0
  111. data/app/views/admin/components/privileges.html.erb +20 -0
  112. data/app/views/admin/components/privileges/_component_user.html.erb +17 -0
  113. data/app/views/admin/components/privileges/_links.html.erb +35 -0
  114. data/app/views/admin/components/privileges/_privilege_flag.html.erb +28 -0
  115. data/app/views/admin/components/privileges/_users.html.erb +23 -0
  116. data/app/views/admin/components/settings.html.erb +39 -0
  117. data/app/views/admin/components/settings/_new_parameter.html.erb +46 -0
  118. data/app/views/admin/components/settings/_parameters.html.erb +20 -0
  119. data/app/views/admin/components/settings/_setting.html.erb +18 -0
  120. data/app/views/admin/components/settings/_settings.html.erb +31 -0
  121. data/app/views/admin/components/show.html.erb +14 -0
  122. data/app/views/admin/index/index.html.erb +14 -0
  123. data/app/views/admin/ip_addresses/_nav_item.html.erb +6 -0
  124. data/app/views/admin/ip_addresses/entity/_in_list.html.erb +6 -0
  125. data/app/views/admin/ip_addresses/index.html.erb +13 -0
  126. data/app/views/admin/unauthorized.html.erb +19 -0
  127. data/app/views/authentication/_form.html.erb +40 -0
  128. data/app/views/authentication/failed.js.erb +3 -0
  129. data/app/views/authentication/new.html.erb +21 -0
  130. data/app/views/index/index.html.erb +0 -0
  131. data/app/views/layouts/admin.html.erb +23 -0
  132. data/app/views/layouts/admin/_breadcrumbs.html.erb +8 -0
  133. data/app/views/layouts/admin/_footer.html.erb +10 -0
  134. data/app/views/layouts/admin/_header.html.erb +18 -0
  135. data/app/views/layouts/admin/header/_logo.html.erb +3 -0
  136. data/app/views/layouts/application/_footer.html.erb +8 -0
  137. data/app/views/layouts/application/_header.html.erb +9 -0
  138. data/app/views/layouts/application/header/_authentication.html.erb +13 -0
  139. data/app/views/my/index/index.html.erb +0 -0
  140. data/app/views/my/profiles/closed.html.erb +12 -0
  141. data/app/views/my/profiles/new.html.erb +17 -0
  142. data/app/views/my/profiles/new/_form.html.erb +147 -0
  143. data/app/views/shared/_breadcrumbs.html.erb +8 -0
  144. data/app/views/shared/_cookie_notification.html.erb +4 -0
  145. data/app/views/shared/_flash_messages.html.erb +7 -0
  146. data/app/views/shared/_meta_texts.html.erb +31 -0
  147. data/app/views/shared/_nothing_found.html.erb +1 -0
  148. data/app/views/shared/_pagination.jbuilder +15 -0
  149. data/app/views/shared/admin/_list.html.erb +19 -0
  150. data/app/views/shared/admin/_list_with_priority.html.erb +19 -0
  151. data/app/views/shared/admin/_toggleable.html.erb +8 -0
  152. data/app/views/shared/entity/_list_of_errors.html.erb +7 -0
  153. data/app/views/shared/forms/errors.js.erb +5 -0
  154. data/config/initializers/carrierwave.rb +27 -0
  155. data/config/initializers/pluralization.rb +2 -0
  156. data/config/locales/biovision-ru.yml +90 -0
  157. data/config/locales/components-ru.yml +81 -0
  158. data/config/locales/track-ru.yml +40 -0
  159. data/config/locales/users-ru.yml +130 -0
  160. data/config/routes.rb +75 -0
  161. data/db/migrate/20191228000000_create_biovision_components.rb +72 -0
  162. data/db/migrate/20200224000000_create_track_component.rb +59 -0
  163. data/db/migrate/20200224000010_create_users_component.rb +189 -0
  164. data/db/migrate/20200404000000_create_simple_images.rb +54 -0
  165. data/lib/biovision.rb +9 -0
  166. data/lib/biovision/base_methods.rb +167 -0
  167. data/lib/biovision/engine.rb +40 -0
  168. data/lib/biovision/version.rb +5 -0
  169. data/lib/tasks/biovision_tasks.rake +4 -0
  170. metadata +392 -0
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "biovision/engine"
4
+ require "biovision/base_methods"
5
+
6
+ # Biovision CMS
7
+ module Biovision
8
+ # Your code goes here...
9
+ end
@@ -0,0 +1,167 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Useful helper methods for application
4
+ module Biovision
5
+ module BaseMethods
6
+ extend ActiveSupport::Concern
7
+
8
+ included do
9
+ before_action :set_locale
10
+
11
+ helper_method :visitor_slug
12
+ helper_method :component_handler
13
+ helper_method :current_page, :param_from_request
14
+ helper_method :current_user, :current_language
15
+ end
16
+
17
+ # Get current page number from request
18
+ #
19
+ # @return [Integer]
20
+ def current_page
21
+ @current_page ||= (params[:page] || 1).to_s.to_i.abs
22
+ end
23
+
24
+ # Get parameter from request and normalize it
25
+ #
26
+ # Casts request parameter to UTF-8 string and removes invalid characters
27
+ #
28
+ # @param [Symbol] param
29
+ # @return [String]
30
+ def param_from_request(*param)
31
+ value = params.dig(*param)
32
+ value.to_s.encode('UTF-8', 'UTF-8', invalid: :replace, replace: '')
33
+ end
34
+
35
+ # Get current user from token cookie
36
+ #
37
+ # @return [User|nil]
38
+ def current_user
39
+ @current_user ||= Token.user_by_token(cookies['token'], true)
40
+ end
41
+
42
+ # Get current language from locale
43
+ #
44
+ # @return [Language]
45
+ def current_language
46
+ @current_language ||= Language[locale]
47
+ end
48
+
49
+ # @return [Agent]
50
+ def agent
51
+ @agent ||= Agent[request.user_agent || 'n/a']
52
+ end
53
+
54
+ # @return [String]
55
+ def visitor_slug
56
+ if current_user.nil?
57
+ "#{remote_ip}:#{agent.id}"
58
+ else
59
+ current_user.id.to_s
60
+ end
61
+ end
62
+
63
+ def set_locale
64
+ I18n.locale = params[:locale] || I18n.default_locale
65
+ end
66
+
67
+ protected
68
+
69
+ # Handle generic HTTP error without raising exception
70
+ #
71
+ # @param [Symbol] status
72
+ # @param [String] message
73
+ # @param [String|Symbol] view
74
+ def handle_http_error(status = 500, message = nil, view = :error)
75
+ @message = message || '500: Internal server error'
76
+ logger.warn "#{message}\n\t#{request.method} #{request.original_url}"
77
+ render view, status: status
78
+ end
79
+
80
+ # Handle HTTP error with status 401 without raising exception
81
+ #
82
+ # @param [String] message
83
+ # @param [Symbol|String] view
84
+ def handle_http_401(message = nil, view = :unauthorized)
85
+ message ||= t('application.errors.unauthorized')
86
+ handle_http_error(:unauthorized, message, view)
87
+ end
88
+
89
+ # Handle HTTP error with status 403 without raising exception
90
+ #
91
+ # @param [String] message
92
+ # @param [Symbol|String] view
93
+ def handle_http_403(message = nil, view = :forbidden)
94
+ message ||= t('application.errors.forbidden')
95
+ handle_http_error(:forbidden, message, view)
96
+ end
97
+
98
+ # Handle HTTP error with status 404 without raising exception
99
+ #
100
+ # @param [String] message
101
+ # @param [Symbol|String] view
102
+ def handle_http_404(message = nil, view = :not_found)
103
+ message ||= t('application.errors.not_found')
104
+ handle_http_error(:not_found, message, view)
105
+ end
106
+
107
+ # Handle HTTP error with status 503 without raising exception
108
+ #
109
+ # @param [String] message
110
+ # @param [Symbol|String] view
111
+ def handle_http_503(message = nil, view = :service_unavailable)
112
+ message ||= t('application.errors.service_unavailable')
113
+ handle_http_error(:service_unavailable, message, view)
114
+ end
115
+
116
+ # Restrict access for anonymous users
117
+ def restrict_anonymous_access
118
+ error = t('application.errors.restricted_access')
119
+ handle_http_401(error) if current_user.nil?
120
+ end
121
+
122
+ # Owner information for entity
123
+ #
124
+ # @param [TrueClass|FalseClass] track
125
+ def owner_for_entity(track = false)
126
+ result = { user: current_user }
127
+ result.merge!(tracking_for_entity) if track
128
+ result
129
+ end
130
+
131
+ # @return [Hash]
132
+ def tracking_for_entity
133
+ {
134
+ agent: agent,
135
+ ip_address: IpAddress[remote_ip]
136
+ }
137
+ end
138
+
139
+ def remote_ip
140
+ @remote_ip ||= (request.env['HTTP_X_REAL_IP'] || request.remote_ip)
141
+ end
142
+
143
+ # @param [String] next_page
144
+ def form_processed_ok(next_page)
145
+ respond_to do |format|
146
+ format.js { render(js: "document.location.href = '#{next_page}'") }
147
+ format.html { redirect_to(next_page) }
148
+ end
149
+ end
150
+
151
+ # @param [Symbol|String] view_to_render
152
+ def form_processed_with_error(view_to_render)
153
+ respond_to do |format|
154
+ format.js { render('shared/forms/errors', status: :bad_request) }
155
+ format.html { render(view_to_render, status: :bad_request) }
156
+ end
157
+ end
158
+
159
+ def component_class
160
+ Biovision::Components::BaseComponent
161
+ end
162
+
163
+ def component_handler
164
+ @component_handler ||= component_class[current_user]
165
+ end
166
+ end
167
+ end
@@ -0,0 +1,40 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Biovision CMS
4
+ module Biovision
5
+ # Engine class for Biovision CMS
6
+ class Engine < ::Rails::Engine
7
+ initializer 'biovision.load_base_methods' do
8
+ ActiveSupport.on_load(:action_controller) do
9
+ include Biovision::BaseMethods
10
+ end
11
+ end
12
+
13
+ config.to_prepare do
14
+ Dir.glob(Rails.root + 'app/decorators/**/*_decorator*.rb').each do |c|
15
+ require_dependency(c)
16
+ end
17
+ end
18
+
19
+ config.assets.precompile << %w[biovision_manifest.js]
20
+
21
+ config.generators do |g|
22
+ g.test_framework :rspec
23
+ g.fixture_replacement :factory_bot, dir: 'spec/factories'
24
+ g.factory_bot dir: 'spec/factories'
25
+ end
26
+
27
+ if defined?(FactoryBot)
28
+ initializer 'biovision.factories', after: 'factory_bot.set_factory_paths' do
29
+ FactoryBot.definition_file_paths << File.expand_path('../../../spec/factories', __FILE__)
30
+ end
31
+ end
32
+ end
33
+
34
+ require 'kaminari'
35
+ require 'rails_i18n'
36
+ require 'carrierwave'
37
+ require 'mini_magick'
38
+ require 'carrierwave-bombshelter'
39
+ require 'rest-client'
40
+ end
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Biovision
4
+ VERSION = '0.0.200518.1'
5
+ end
@@ -0,0 +1,4 @@
1
+ # desc "Explaining what the task does"
2
+ # task :biovision do
3
+ # # Task goes here
4
+ # end
metadata ADDED
@@ -0,0 +1,392 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: biovision
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.200518.1
5
+ platform: ruby
6
+ authors:
7
+ - Maxim Khan-Magomedov
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2020-05-21 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rails
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '6.0'
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: 6.0.2.1
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - "~>"
28
+ - !ruby/object:Gem::Version
29
+ version: '6.0'
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: 6.0.2.1
33
+ - !ruby/object:Gem::Dependency
34
+ name: rails-i18n
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - "~>"
38
+ - !ruby/object:Gem::Version
39
+ version: '6.0'
40
+ type: :runtime
41
+ prerelease: false
42
+ version_requirements: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - "~>"
45
+ - !ruby/object:Gem::Version
46
+ version: '6.0'
47
+ - !ruby/object:Gem::Dependency
48
+ name: bcrypt
49
+ requirement: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - "~>"
52
+ - !ruby/object:Gem::Version
53
+ version: '3.1'
54
+ type: :runtime
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - "~>"
59
+ - !ruby/object:Gem::Version
60
+ version: '3.1'
61
+ - !ruby/object:Gem::Dependency
62
+ name: carrierwave
63
+ requirement: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - "~>"
66
+ - !ruby/object:Gem::Version
67
+ version: '2.0'
68
+ type: :runtime
69
+ prerelease: false
70
+ version_requirements: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - "~>"
73
+ - !ruby/object:Gem::Version
74
+ version: '2.0'
75
+ - !ruby/object:Gem::Dependency
76
+ name: carrierwave-bombshelter
77
+ requirement: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - "~>"
80
+ - !ruby/object:Gem::Version
81
+ version: '0.2'
82
+ type: :runtime
83
+ prerelease: false
84
+ version_requirements: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - "~>"
87
+ - !ruby/object:Gem::Version
88
+ version: '0.2'
89
+ - !ruby/object:Gem::Dependency
90
+ name: kaminari
91
+ requirement: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - "~>"
94
+ - !ruby/object:Gem::Version
95
+ version: '1.1'
96
+ type: :runtime
97
+ prerelease: false
98
+ version_requirements: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - "~>"
101
+ - !ruby/object:Gem::Version
102
+ version: '1.1'
103
+ - !ruby/object:Gem::Dependency
104
+ name: mini_magick
105
+ requirement: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - "~>"
108
+ - !ruby/object:Gem::Version
109
+ version: '4.9'
110
+ - - ">="
111
+ - !ruby/object:Gem::Version
112
+ version: 4.9.5
113
+ type: :runtime
114
+ prerelease: false
115
+ version_requirements: !ruby/object:Gem::Requirement
116
+ requirements:
117
+ - - "~>"
118
+ - !ruby/object:Gem::Version
119
+ version: '4.9'
120
+ - - ">="
121
+ - !ruby/object:Gem::Version
122
+ version: 4.9.5
123
+ - !ruby/object:Gem::Dependency
124
+ name: rest-client
125
+ requirement: !ruby/object:Gem::Requirement
126
+ requirements:
127
+ - - "~>"
128
+ - !ruby/object:Gem::Version
129
+ version: '2.1'
130
+ type: :runtime
131
+ prerelease: false
132
+ version_requirements: !ruby/object:Gem::Requirement
133
+ requirements:
134
+ - - "~>"
135
+ - !ruby/object:Gem::Version
136
+ version: '2.1'
137
+ - !ruby/object:Gem::Dependency
138
+ name: database_cleaner
139
+ requirement: !ruby/object:Gem::Requirement
140
+ requirements:
141
+ - - ">="
142
+ - !ruby/object:Gem::Version
143
+ version: '0'
144
+ type: :development
145
+ prerelease: false
146
+ version_requirements: !ruby/object:Gem::Requirement
147
+ requirements:
148
+ - - ">="
149
+ - !ruby/object:Gem::Version
150
+ version: '0'
151
+ - !ruby/object:Gem::Dependency
152
+ name: factory_bot_rails
153
+ requirement: !ruby/object:Gem::Requirement
154
+ requirements:
155
+ - - ">="
156
+ - !ruby/object:Gem::Version
157
+ version: '0'
158
+ type: :development
159
+ prerelease: false
160
+ version_requirements: !ruby/object:Gem::Requirement
161
+ requirements:
162
+ - - ">="
163
+ - !ruby/object:Gem::Version
164
+ version: '0'
165
+ - !ruby/object:Gem::Dependency
166
+ name: pg
167
+ requirement: !ruby/object:Gem::Requirement
168
+ requirements:
169
+ - - ">="
170
+ - !ruby/object:Gem::Version
171
+ version: '0'
172
+ type: :development
173
+ prerelease: false
174
+ version_requirements: !ruby/object:Gem::Requirement
175
+ requirements:
176
+ - - ">="
177
+ - !ruby/object:Gem::Version
178
+ version: '0'
179
+ - !ruby/object:Gem::Dependency
180
+ name: rspec-rails
181
+ requirement: !ruby/object:Gem::Requirement
182
+ requirements:
183
+ - - ">="
184
+ - !ruby/object:Gem::Version
185
+ version: '0'
186
+ type: :development
187
+ prerelease: false
188
+ version_requirements: !ruby/object:Gem::Requirement
189
+ requirements:
190
+ - - ">="
191
+ - !ruby/object:Gem::Version
192
+ version: '0'
193
+ description: Better version of biovision-base for rails 6.
194
+ email:
195
+ - maxim.km@gmail.com
196
+ executables: []
197
+ extensions: []
198
+ extra_rdoc_files: []
199
+ files:
200
+ - MIT-LICENSE
201
+ - README.md
202
+ - Rakefile
203
+ - app/assets/config/biovision_manifest.js
204
+ - app/assets/images/biovision/components/carousel/arrow-left.svg
205
+ - app/assets/images/biovision/components/carousel/arrow-right.svg
206
+ - app/assets/images/biovision/icons/breadcrumb-hover.svg
207
+ - app/assets/images/biovision/icons/breadcrumb.svg
208
+ - app/assets/images/biovision/icons/components/contact.svg
209
+ - app/assets/images/biovision/icons/components/content.svg
210
+ - app/assets/images/biovision/icons/components/users.svg
211
+ - app/assets/images/biovision/icons/key.svg
212
+ - app/assets/images/biovision/icons/log_in.svg
213
+ - app/assets/images/biovision/icons/log_out.svg
214
+ - app/assets/images/biovision/icons/messages/error.svg
215
+ - app/assets/images/biovision/icons/messages/info.svg
216
+ - app/assets/images/biovision/icons/messages/success.svg
217
+ - app/assets/images/biovision/icons/messages/warning.svg
218
+ - app/assets/images/biovision/icons/settings.svg
219
+ - app/assets/images/biovision/placeholders/16x9.svg
220
+ - app/assets/images/biovision/placeholders/1x1.svg
221
+ - app/assets/images/biovision/placeholders/3x2.svg
222
+ - app/assets/images/biovision/placeholders/user.svg
223
+ - app/assets/stylesheets/biovision/admin.scss
224
+ - app/assets/stylesheets/biovision/admin/components.scss
225
+ - app/assets/stylesheets/biovision/admin/default.scss
226
+ - app/assets/stylesheets/biovision/admin/layout.scss
227
+ - app/assets/stylesheets/biovision/admin/vars.scss
228
+ - app/assets/stylesheets/biovision/biovision.scss
229
+ - app/assets/stylesheets/biovision/biovision/messages.scss
230
+ - app/assets/stylesheets/biovision/components/carousel.scss
231
+ - app/assets/stylesheets/biovision/components/forms.scss
232
+ - app/assets/stylesheets/biovision/components/hamburger.scss
233
+ - app/assets/stylesheets/biovision/components/lists.scss
234
+ - app/assets/stylesheets/biovision/default.scss
235
+ - app/assets/stylesheets/biovision/themes/default_theme.scss
236
+ - app/assets/stylesheets/biovision/themes/default_theme/components.scss
237
+ - app/assets/stylesheets/biovision/themes/default_theme/layout.scss
238
+ - app/assets/stylesheets/biovision/themes/default_theme/layout/footer.scss
239
+ - app/assets/stylesheets/biovision/themes/default_theme/layout/header.scss
240
+ - app/assets/stylesheets/biovision/vars.scss
241
+ - app/controllers/admin/agents_controller.rb
242
+ - app/controllers/admin/components_controller.rb
243
+ - app/controllers/admin/index_controller.rb
244
+ - app/controllers/admin/ip_addresses_controller.rb
245
+ - app/controllers/admin_controller.rb
246
+ - app/controllers/authentication_controller.rb
247
+ - app/controllers/concerns/authentication.rb
248
+ - app/controllers/index_controller.rb
249
+ - app/controllers/my/confirmations_controller.rb
250
+ - app/controllers/my/index_controller.rb
251
+ - app/controllers/my/profiles_controller.rb
252
+ - app/controllers/my/recoveries_controller.rb
253
+ - app/helpers/biovision_components_helper.rb
254
+ - app/helpers/users_helper.rb
255
+ - app/lib/biovision/components/base_component.rb
256
+ - app/lib/biovision/components/component_settings.rb
257
+ - app/lib/biovision/components/privilege_handler.rb
258
+ - app/lib/biovision/components/track_component.rb
259
+ - app/lib/biovision/components/users/authentication.rb
260
+ - app/lib/biovision/components/users/code_handler.rb
261
+ - app/lib/biovision/components/users/profile_handler.rb
262
+ - app/lib/biovision/components/users/registration_handler.rb
263
+ - app/lib/biovision/components/users_component.rb
264
+ - app/lib/biovision/notifiers/base_notifier.rb
265
+ - app/lib/biovision/notifiers/socialization_notifier.rb
266
+ - app/lib/biovision/notifiers/users_notifier.rb
267
+ - app/models/agent.rb
268
+ - app/models/biovision_component.rb
269
+ - app/models/biovision_component_user.rb
270
+ - app/models/browser.rb
271
+ - app/models/code.rb
272
+ - app/models/concerns/checkable.rb
273
+ - app/models/concerns/flat_priority.rb
274
+ - app/models/concerns/has_language.rb
275
+ - app/models/concerns/has_owner.rb
276
+ - app/models/concerns/has_simple_image.rb
277
+ - app/models/concerns/has_track.rb
278
+ - app/models/concerns/has_uuid.rb
279
+ - app/models/concerns/meta_texts.rb
280
+ - app/models/concerns/nested_priority.rb
281
+ - app/models/concerns/required_unique_name.rb
282
+ - app/models/concerns/required_unique_slug.rb
283
+ - app/models/concerns/toggleable.rb
284
+ - app/models/foreign_site.rb
285
+ - app/models/foreign_user.rb
286
+ - app/models/ip_address.rb
287
+ - app/models/language.rb
288
+ - app/models/login_attempt.rb
289
+ - app/models/metric.rb
290
+ - app/models/metric_value.rb
291
+ - app/models/notification.rb
292
+ - app/models/simple_image.rb
293
+ - app/models/simple_image_tag.rb
294
+ - app/models/simple_image_tag_image.rb
295
+ - app/models/token.rb
296
+ - app/models/user.rb
297
+ - app/models/user_language.rb
298
+ - app/uploaders/simple_image_uploader.rb
299
+ - app/uploaders/user_image_uploader.rb
300
+ - app/views/admin/agents/_nav_item.html.erb
301
+ - app/views/admin/agents/entity/_in_list.html.erb
302
+ - app/views/admin/agents/index.html.erb
303
+ - app/views/admin/components/_list.html.erb
304
+ - app/views/admin/components/entity/_links.html.erb
305
+ - app/views/admin/components/entity/_section.html.erb
306
+ - app/views/admin/components/index.html.erb
307
+ - app/views/admin/components/links/_track.html.erb
308
+ - app/views/admin/components/links/_users.html.erb
309
+ - app/views/admin/components/privileges.html.erb
310
+ - app/views/admin/components/privileges/_component_user.html.erb
311
+ - app/views/admin/components/privileges/_links.html.erb
312
+ - app/views/admin/components/privileges/_privilege_flag.html.erb
313
+ - app/views/admin/components/privileges/_users.html.erb
314
+ - app/views/admin/components/settings.html.erb
315
+ - app/views/admin/components/settings/_new_parameter.html.erb
316
+ - app/views/admin/components/settings/_parameters.html.erb
317
+ - app/views/admin/components/settings/_setting.html.erb
318
+ - app/views/admin/components/settings/_settings.html.erb
319
+ - app/views/admin/components/show.html.erb
320
+ - app/views/admin/index/index.html.erb
321
+ - app/views/admin/ip_addresses/_nav_item.html.erb
322
+ - app/views/admin/ip_addresses/entity/_in_list.html.erb
323
+ - app/views/admin/ip_addresses/index.html.erb
324
+ - app/views/admin/unauthorized.html.erb
325
+ - app/views/authentication/_form.html.erb
326
+ - app/views/authentication/failed.js.erb
327
+ - app/views/authentication/new.html.erb
328
+ - app/views/index/index.html.erb
329
+ - app/views/layouts/admin.html.erb
330
+ - app/views/layouts/admin/_breadcrumbs.html.erb
331
+ - app/views/layouts/admin/_footer.html.erb
332
+ - app/views/layouts/admin/_header.html.erb
333
+ - app/views/layouts/admin/header/_logo.html.erb
334
+ - app/views/layouts/application/_footer.html.erb
335
+ - app/views/layouts/application/_header.html.erb
336
+ - app/views/layouts/application/header/_authentication.html.erb
337
+ - app/views/my/index/index.html.erb
338
+ - app/views/my/profiles/closed.html.erb
339
+ - app/views/my/profiles/new.html.erb
340
+ - app/views/my/profiles/new/_form.html.erb
341
+ - app/views/shared/_breadcrumbs.html.erb
342
+ - app/views/shared/_cookie_notification.html.erb
343
+ - app/views/shared/_flash_messages.html.erb
344
+ - app/views/shared/_meta_texts.html.erb
345
+ - app/views/shared/_nothing_found.html.erb
346
+ - app/views/shared/_pagination.jbuilder
347
+ - app/views/shared/admin/_list.html.erb
348
+ - app/views/shared/admin/_list_with_priority.html.erb
349
+ - app/views/shared/admin/_toggleable.html.erb
350
+ - app/views/shared/entity/_list_of_errors.html.erb
351
+ - app/views/shared/forms/errors.js.erb
352
+ - config/initializers/carrierwave.rb
353
+ - config/initializers/pluralization.rb
354
+ - config/locales/biovision-ru.yml
355
+ - config/locales/components-ru.yml
356
+ - config/locales/track-ru.yml
357
+ - config/locales/users-ru.yml
358
+ - config/routes.rb
359
+ - db/migrate/20191228000000_create_biovision_components.rb
360
+ - db/migrate/20200224000000_create_track_component.rb
361
+ - db/migrate/20200224000010_create_users_component.rb
362
+ - db/migrate/20200404000000_create_simple_images.rb
363
+ - lib/biovision.rb
364
+ - lib/biovision/base_methods.rb
365
+ - lib/biovision/engine.rb
366
+ - lib/biovision/version.rb
367
+ - lib/tasks/biovision_tasks.rake
368
+ homepage: https://github.com/Biovision/biovision
369
+ licenses:
370
+ - MIT
371
+ metadata:
372
+ allowed_push_host: https://rubygems.org
373
+ post_install_message:
374
+ rdoc_options: []
375
+ require_paths:
376
+ - lib
377
+ required_ruby_version: !ruby/object:Gem::Requirement
378
+ requirements:
379
+ - - ">="
380
+ - !ruby/object:Gem::Version
381
+ version: '0'
382
+ required_rubygems_version: !ruby/object:Gem::Requirement
383
+ requirements:
384
+ - - ">="
385
+ - !ruby/object:Gem::Version
386
+ version: '0'
387
+ requirements: []
388
+ rubygems_version: 3.1.2
389
+ signing_key:
390
+ specification_version: 4
391
+ summary: Biovision CMS gem
392
+ test_files: []