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.
- checksums.yaml +4 -4
- data/README.md +5 -21
- data/app/assets/images/biovision/base/icons/apply.svg +4 -0
- data/app/assets/images/biovision/base/icons/components/contact.svg +26 -0
- data/app/assets/images/biovision/base/icons/components/registration.svg +17 -0
- data/app/assets/images/biovision/base/icons/destroy.svg +11 -8
- data/app/assets/images/biovision/base/icons/settings.svg +41 -0
- data/app/assets/images/biovision/base/icons/slider/arrow-left.svg +4 -0
- data/app/assets/images/biovision/base/icons/slider/arrow-right.svg +4 -0
- data/app/assets/images/biovision/base/placeholders/16x9.svg +10 -3
- data/app/assets/images/biovision/base/placeholders/1x1.svg +12 -0
- data/app/assets/images/biovision/base/placeholders/3x2.svg +10 -3
- data/app/assets/javascripts/biovision/base/biovision.js +780 -461
- data/app/assets/javascripts/biovision/base/components/carousel.js +123 -0
- data/app/assets/javascripts/biovision/base/polyfills.js +149 -0
- data/app/assets/stylesheets/biovision/base/admin.scss +85 -46
- data/app/assets/stylesheets/biovision/base/admin/components.scss +141 -0
- data/app/assets/stylesheets/biovision/base/biovision.scss +149 -33
- data/app/assets/stylesheets/biovision/base/buttons/buttons-common.scss +22 -0
- data/app/assets/stylesheets/biovision/base/default.scss +6 -6
- data/app/assets/stylesheets/biovision/base/default_admin.scss +25 -8
- data/app/assets/stylesheets/biovision/base/themes/simple-layout.scss +0 -3
- data/app/controllers/admin/editable_pages_controller.rb +6 -4
- data/app/controllers/admin/privileges_controller.rb +2 -3
- data/app/controllers/admin/settings_controller.rb +52 -0
- data/app/controllers/admin/simple_blocks_controller.rb +28 -0
- data/app/controllers/admin/users_controller.rb +1 -1
- data/app/controllers/agents_controller.rb +4 -4
- data/app/controllers/authentication_controller.rb +28 -6
- data/app/controllers/browsers_controller.rb +4 -4
- data/app/controllers/concerns/authentication.rb +8 -5
- data/app/controllers/concerns/entity_priority.rb +3 -0
- data/app/controllers/concerns/lockable_entity.rb +6 -3
- data/app/controllers/concerns/removable_image.rb +4 -5
- data/app/controllers/concerns/toggleable_entity.rb +4 -5
- data/app/controllers/editable_pages_controller.rb +14 -8
- data/app/controllers/fallback_controller.rb +7 -2
- data/app/controllers/feedback_requests_controller.rb +23 -8
- data/app/controllers/metrics_controller.rb +3 -3
- data/app/controllers/my/profiles_controller.rb +32 -15
- data/app/controllers/privilege_groups_controller.rb +4 -4
- data/app/controllers/privileges_controller.rb +7 -26
- data/app/controllers/simple_blocks_controller.rb +63 -0
- data/app/controllers/stored_values_controller.rb +4 -4
- data/app/controllers/tokens_controller.rb +4 -4
- data/app/controllers/users_controller.rb +8 -3
- data/app/helpers/biovision_users_helper.rb +60 -21
- data/app/helpers/editable_pages_helper.rb +22 -0
- data/app/helpers/languages_helper.rb +3 -0
- data/app/helpers/simple_image_helper.rb +66 -0
- data/app/mailers/application_mailer.rb +0 -2
- data/app/mailers/code_sender.rb +13 -2
- data/app/mailers/feedback_mailer.rb +5 -2
- data/app/mailers/user_mailer.rb +6 -1
- data/app/models/biovision_component.rb +43 -0
- data/app/models/biovision_parameter.rb +34 -0
- data/app/models/code.rb +22 -7
- data/app/models/code_type.rb +9 -1
- data/app/models/concerns/flat_priority.rb +50 -0
- data/app/models/concerns/nested_priority.rb +58 -0
- data/app/models/concerns/required_unique_slug.rb +5 -2
- data/app/models/editable_page.rb +49 -37
- data/app/models/foreign_site.rb +5 -3
- data/app/models/language.rb +15 -37
- data/app/models/metric.rb +2 -4
- data/app/models/privilege.rb +23 -45
- data/app/models/privilege_group.rb +6 -1
- data/app/models/simple_block.rb +66 -0
- data/app/models/user.rb +29 -26
- data/app/models/user_privilege.rb +1 -1
- data/app/services/biovision/components/base_component.rb +115 -0
- data/app/services/biovision/components/registration_component.rb +98 -0
- data/app/services/code_manager.rb +4 -1
- data/app/services/code_manager/confirmation.rb +8 -4
- data/app/services/code_manager/invitation.rb +9 -5
- data/app/services/code_manager/recovery.rb +9 -6
- data/app/services/user_manager.rb +5 -4
- data/app/services/user_profile_handler.rb +38 -11
- data/app/uploaders/avatar_uploader.rb +5 -1
- data/app/uploaders/editable_page_image_uploader.rb +4 -6
- data/app/uploaders/media_file_uploader.rb +6 -4
- data/app/uploaders/media_snapshot_uploader.rb +6 -2
- data/app/uploaders/simple_file_uploader.rb +12 -0
- data/app/uploaders/simple_image_uploader.rb +75 -0
- data/app/views/about/editable.html.erb +1 -1
- data/app/views/admin/agents/_filter.html.erb +1 -1
- data/app/views/admin/editable_pages/entity/_in_list.html.erb +16 -0
- data/app/views/admin/editable_pages/index.html.erb +8 -1
- data/app/views/admin/editable_pages/show.html.erb +21 -17
- data/app/views/admin/feedback_requests/entity/_in_list.html.erb +9 -1
- data/app/views/admin/index/_biovision_base.html.erb +5 -7
- data/app/views/admin/index/_components.html.erb +9 -0
- data/app/views/admin/index/dashboard/_editorial.html.erb +2 -2
- data/app/views/admin/index/dashboard/_settings.html.erb +2 -2
- data/app/views/admin/index/index.html.erb +2 -0
- data/app/views/admin/privileges/entity/_groups.html.erb +25 -25
- data/app/views/admin/privileges/entity/_in_list.html.erb +30 -9
- data/app/views/admin/privileges/index.html.erb +6 -1
- data/app/views/admin/privileges/show.html.erb +31 -18
- data/app/views/admin/settings/component/_new_parameter.html.erb +62 -0
- data/app/views/admin/settings/component/_parameters.html.erb +37 -0
- data/app/views/admin/settings/component/_setting.html.erb +18 -0
- data/app/views/admin/settings/component/_settings.html.erb +31 -0
- data/app/views/admin/settings/index.html.erb +27 -0
- data/app/views/admin/settings/show.html.erb +42 -0
- data/app/views/admin/simple_blocks/_nav_item.html.erb +6 -0
- data/app/views/admin/simple_blocks/entity/_in_list.html.erb +23 -0
- data/app/views/admin/simple_blocks/index.html.erb +21 -0
- data/app/views/admin/simple_blocks/show.html.erb +51 -0
- data/app/views/admin/tokens/_filter.html.erb +1 -1
- data/app/views/admin/users/_filter.html.erb +1 -1
- data/app/views/admin/users/entity/_privilege.html.erb +12 -21
- data/app/views/admin/users/entity/_privilege_tree.html.erb +17 -15
- data/app/views/admin/users/privileges.html.erb +9 -1
- data/app/views/admin/users/search.jbuilder +3 -3
- data/app/views/admin/users/show.html.erb +11 -6
- data/app/views/agents/_filter.html.erb +22 -22
- data/app/views/agents/_form.html.erb +25 -29
- data/app/views/application/forbidden.html.erb +9 -0
- data/app/views/application/forbidden.jbuilder +3 -0
- data/app/views/authentication/_form.html.erb +13 -13
- data/app/views/browsers/_form.html.erb +21 -25
- data/app/views/editable_blocks/_entity.html.erb +4 -1
- data/app/views/editable_pages/_form.html.erb +63 -62
- data/app/views/editable_pages/edit.html.erb +1 -1
- data/app/views/editable_pages/entity/_metadata.html.erb +4 -4
- data/app/views/editable_pages/new.html.erb +3 -3
- data/app/views/fallback/show.html.erb +8 -1
- data/app/views/feedback_requests/_form.html.erb +76 -52
- data/app/views/feedback_requests/create.js.erb +1 -10
- data/app/views/index/index/_editable.html.erb +0 -4
- data/app/views/metrics/_form.html.erb +38 -36
- data/app/views/my/confirmations/show.html.erb +5 -3
- data/app/views/my/profiles/closed.html.erb +7 -0
- data/app/views/my/profiles/edit/_form.html.erb +9 -9
- data/app/views/my/profiles/new.html.erb +9 -1
- data/app/views/my/profiles/new/_form.html.erb +22 -1
- data/app/views/my/recoveries/show.html.erb +2 -2
- data/app/views/privilege_groups/_form.html.erb +48 -21
- data/app/views/privileges/_form.html.erb +68 -36
- data/app/views/profiles/_profile.html.erb +3 -3
- data/app/views/shared/_pagination.jbuilder +7 -5
- data/app/views/shared/admin/_breadcrumbs.html.erb +1 -1
- data/app/views/shared/forms/_meta_texts.html.erb +3 -3
- data/app/views/shared/forms/_priority.html.erb +12 -0
- data/app/views/shared/forms/_state_container.html.erb +1 -0
- data/app/views/simple_blocks/_empty.html.erb +0 -0
- data/app/views/simple_blocks/_form.html.erb +120 -0
- data/app/views/simple_blocks/_simple_block.html.erb +26 -0
- data/app/views/simple_blocks/edit.html.erb +17 -0
- data/app/views/simple_blocks/new.html.erb +15 -0
- data/app/views/stored_values/_form.html.erb +57 -28
- data/app/views/tokens/_form.html.erb +31 -26
- data/app/views/users/_form.html.erb +1 -1
- data/config/initializers/carrierwave.rb +7 -2
- data/config/locales/common-ru.yml +5 -0
- data/config/locales/components-ru.yml +50 -0
- data/config/locales/editable-pages-en.yml +2 -0
- data/config/locales/editable-pages-ru.yml +50 -7
- data/config/locales/editable-pages-sv.yml +2 -0
- data/config/locales/feedback-ru.yml +1 -0
- data/config/locales/users-en.yml +0 -1
- data/config/locales/users-ru.yml +6 -1
- data/config/locales/users-sv.yml +0 -1
- data/config/routes.rb +32 -6
- data/db/migrate/20181217000000_create_biovision_components.rb +80 -0
- data/db/migrate/20181217000010_create_metrics.rb +40 -0
- data/db/migrate/20181217000015_create_browsers.rb +38 -0
- data/db/migrate/20181217000020_create_languages.rb +30 -0
- data/db/migrate/20181217000030_create_users.rb +118 -0
- data/db/migrate/20181217000035_create_codes.rb +51 -0
- data/db/migrate/20181217000040_create_privileges.rb +142 -0
- data/db/migrate/20181217000100_create_media_folders.rb +53 -0
- data/db/migrate/20181217000110_create_editable_pages.rb +90 -0
- data/db/migrate/20181217000200_create_feedback_requests.rb +27 -0
- data/db/migrate/20181217121211_add_uuid_to_users.rb +12 -0
- data/db/migrate/20181217121212_update_fields181217.rb +29 -0
- data/db/migrate/20190311121212_convert_json_columns.rb +47 -0
- data/db/migrate/20190324181818_add_data_to_feedback_requests.rb +14 -0
- data/db/migrate/20190326120000_create_simple_blocks.rb +31 -0
- data/db/{migrate → obsolete_migrations}/20171223333333_amend_foreign_keys.rb +0 -0
- data/db/{migrate → obsolete_migrations}/20180117151515_add_language_to_models.rb +0 -0
- data/db/{migrate → obsolete_migrations}/20180321000000_add_profile_data_to_users.rb +4 -4
- data/db/{migrate → obsolete_migrations}/20180405000000_add_consent_to_users.rb +0 -0
- data/db/{migrate → obsolete_migrations}/20180610222222_add_consent_to_feedback_requests.rb +0 -0
- data/db/{migrate → obsolete_migrations}/20180612111111_add_administrative_to_privilege.rb +0 -0
- data/db/{migrate → obsolete_migrations}/20180619121212_add_image_alt_text_to_editable_page.rb +0 -0
- data/db/{migrate → obsolete_migrations}/20180703111111_add_fields_to_editable_blocks.rb +0 -0
- data/db/{migrate → obsolete_migrations}/20180722222222_add_active_to_languages.rb +0 -0
- data/db/{migrate → obsolete_migrations}/20180725111111_add_referral_link_to_users.rb +0 -0
- data/db/obsolete_migrations/20181012222222_add_deletable_to_privileges.rb +19 -0
- data/db/obsolete_migrations/20181012222223_convert_stored_values.rb +13 -0
- data/db/obsolete_migrations/20181030080808_update_editable_pages_meta.rb +20 -0
- data/lib/biovision/base/base_methods.rb +19 -2
- data/lib/biovision/base/version.rb +3 -1
- data/lib/tasks/users.rake +19 -1
- metadata +75 -40
- data/app/views/admin/privileges/_list.html.erb +0 -15
- data/db/migrate/20170228000000_create_languages.rb +0 -23
- data/db/migrate/20170301000001_create_metrics.rb +0 -23
- data/db/migrate/20170301000002_create_metric_values.rb +0 -19
- data/db/migrate/20170301000101_create_browsers.rb +0 -22
- data/db/migrate/20170301000102_create_agents.rb +0 -22
- data/db/migrate/20170302000001_create_users.rb +0 -55
- data/db/migrate/20170302000003_create_tokens.rb +0 -23
- data/db/migrate/20170302000004_create_code_types.rb +0 -20
- data/db/migrate/20170302000005_create_codes.rb +0 -24
- data/db/migrate/20170302000101_create_privileges.rb +0 -41
- data/db/migrate/20170302000102_create_user_privileges.rb +0 -18
- data/db/migrate/20170302000103_create_privilege_groups.rb +0 -23
- data/db/migrate/20170302000104_create_privilege_group_privileges.rb +0 -24
- data/db/migrate/20170320000000_create_editable_pages.rb +0 -52
- data/db/migrate/20170425000001_create_foreign_sites.rb +0 -18
- data/db/migrate/20170425000002_create_foreign_users.rb +0 -23
- data/db/migrate/20170629120000_create_login_attempts.rb +0 -19
- data/db/migrate/20170823000001_create_stored_values.rb +0 -19
- data/db/migrate/20171202000000_create_media_folders.rb +0 -28
- data/db/migrate/20171202000001_create_media_files.rb +0 -27
- data/db/migrate/20171211000000_create_feedback_requests.rb +0 -33
- data/db/migrate/20180117160000_create_user_languages.rb +0 -17
- data/db/migrate/20180622140000_create_link_blocks.rb +0 -29
- data/db/migrate/20180622140001_create_link_block_items.rb +0 -23
- data/db/migrate/20180627190000_create_editable_blocks.rb +0 -39
@@ -1,5 +1,7 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
if Rails.env.test? || Rails.env.cucumber?
|
2
|
-
Dir["#{Rails.root}/app/uploaders/*.rb"].each
|
4
|
+
Dir["#{Rails.root}/app/uploaders/*.rb"].each(&method(:require))
|
3
5
|
|
4
6
|
CarrierWave.configure do |config|
|
5
7
|
config.storage = :file
|
@@ -9,13 +11,16 @@ if Rails.env.test? || Rails.env.cucumber?
|
|
9
11
|
# use different dirs when testing
|
10
12
|
CarrierWave::Uploader::Base.descendants.each do |klass|
|
11
13
|
next if klass.anonymous?
|
14
|
+
|
12
15
|
klass.class_eval do
|
13
16
|
def cache_dir
|
14
17
|
"#{Rails.root}/spec/support/uploads/tmp"
|
15
18
|
end
|
16
19
|
|
17
20
|
def store_dir
|
18
|
-
"#{
|
21
|
+
slug = "#{model.class.to_s.underscore}/#{mounted_as}"
|
22
|
+
|
23
|
+
"#{Rails.root}/spec/support/uploads/#{slug}/#{model.id}"
|
19
24
|
end
|
20
25
|
end
|
21
26
|
end
|
@@ -16,6 +16,7 @@ ru:
|
|
16
16
|
messages:
|
17
17
|
extension_blacklist_error: "имеет недопустимое расширение файла"
|
18
18
|
extension_whitelist_error: "имеет недопустимое расширение файла"
|
19
|
+
mini_magick_processing_error: "не может быть обработан"
|
19
20
|
error:
|
20
21
|
bad_request:
|
21
22
|
title: "Плохой запрос"
|
@@ -162,6 +163,10 @@ ru:
|
|
162
163
|
title: "Ошибка сервера"
|
163
164
|
heading: "Что-то пошло не так"
|
164
165
|
message: "Произошла внутренняя ошибка сервера. Попробуйте повторить попытку позже."
|
166
|
+
forbidden:
|
167
|
+
title: "Доступ запрещён"
|
168
|
+
heading: "Доступ запрещён"
|
169
|
+
message: "Доступ к этой странице запрещён"
|
165
170
|
layouts:
|
166
171
|
admin:
|
167
172
|
footer:
|
@@ -0,0 +1,50 @@
|
|
1
|
+
ru:
|
2
|
+
activerecord:
|
3
|
+
models:
|
4
|
+
biovision_component: "Компонент"
|
5
|
+
biovision_parameter: "Параметр"
|
6
|
+
attributes:
|
7
|
+
biovision_component:
|
8
|
+
slug: "Идентификатор"
|
9
|
+
biovision_parameter:
|
10
|
+
slug: "Идентификатор"
|
11
|
+
value: "Значение"
|
12
|
+
admin:
|
13
|
+
settings:
|
14
|
+
index:
|
15
|
+
heading: "Настройки компонентов"
|
16
|
+
nav_text: "Настройки"
|
17
|
+
title: "Настройки компонентов"
|
18
|
+
show:
|
19
|
+
title: "Настройки компонента «%{name}»"
|
20
|
+
component:
|
21
|
+
settings:
|
22
|
+
heading: "Настройки"
|
23
|
+
parameters:
|
24
|
+
heading: "Параметры"
|
25
|
+
new_parameter:
|
26
|
+
heading: "Новый параметр"
|
27
|
+
guidelines:
|
28
|
+
slug: "Только латинские буквы, цифры, дефис и подчёркивание (кроме начала и конца)."
|
29
|
+
value: "Произвольная строка"
|
30
|
+
update:
|
31
|
+
success: "Настройки компонента обновлены"
|
32
|
+
biovision:
|
33
|
+
components:
|
34
|
+
contact:
|
35
|
+
name: "Контакты"
|
36
|
+
parameters:
|
37
|
+
feedback_receiver: "На этот адрес приходят сообщения из формы обратной связи"
|
38
|
+
email: "Этот адрес отображается в контактной информации"
|
39
|
+
phone: "Этот телефон отображается в контактной информации"
|
40
|
+
address: "Этот адрес отображается в контактной информации"
|
41
|
+
registration:
|
42
|
+
name: "Регистрация"
|
43
|
+
settings:
|
44
|
+
open: "Открыта"
|
45
|
+
invite_only: "Только по приглашениям"
|
46
|
+
confirm_email: "Отправлять письмо для подтверждения почты сразу"
|
47
|
+
use_invites: "Использовать приглашения"
|
48
|
+
require_email: "Электронная почта обязательна при регистрации"
|
49
|
+
invite_count: "Количество кодов приглашения после регистрации"
|
50
|
+
invalid_code: "указан неверно"
|
@@ -88,9 +88,11 @@ en:
|
|
88
88
|
new:
|
89
89
|
title: "New editable page"
|
90
90
|
heading: "New editable page"
|
91
|
+
nav_text: "Create"
|
91
92
|
edit:
|
92
93
|
title: "Editing editable page"
|
93
94
|
heading: "Editing editable page"
|
95
|
+
nav_text: "Edit"
|
94
96
|
update:
|
95
97
|
success: "Editable page has been updated"
|
96
98
|
destroy:
|
@@ -3,6 +3,7 @@ ru:
|
|
3
3
|
models:
|
4
4
|
editable_block: "Редактируемый блок"
|
5
5
|
editable_page: "Редактируемая страница"
|
6
|
+
simple_block: "Простой редактируемый блок"
|
6
7
|
stored_value: "Хранимое значение"
|
7
8
|
attributes:
|
8
9
|
editable_block:
|
@@ -20,18 +21,27 @@ ru:
|
|
20
21
|
visible: "Показывать"
|
21
22
|
editable_page:
|
22
23
|
body: "Содержимое"
|
23
|
-
description: "Метаописание"
|
24
24
|
image: "Картинка"
|
25
25
|
image_alt_text: "Текст для атрибута alt для картинки"
|
26
|
-
keywords: "Ключевые слова"
|
27
26
|
language: "Язык"
|
28
27
|
language_id: "Язык"
|
28
|
+
meta_description: "Метаописание"
|
29
|
+
meta_keywords: "Ключевые слова"
|
30
|
+
meta_title: "Заголовок окна"
|
29
31
|
name: "Название"
|
30
32
|
nav_group: "Название группы навигации"
|
31
33
|
priority: "Порядок сортировки"
|
32
34
|
slug: "Идентификатор"
|
33
|
-
title: "Заголовок"
|
34
35
|
url: "URL для страницы"
|
36
|
+
visible: "Показывать"
|
37
|
+
simple_block:
|
38
|
+
background_image: "Использовать картинку как фон"
|
39
|
+
body: "Содержимое"
|
40
|
+
image: "Картинка"
|
41
|
+
image_alt_text: "Альтернативный текст для картинки"
|
42
|
+
name: "Название"
|
43
|
+
slug: "Идентификатор"
|
44
|
+
visible: "Показывать"
|
35
45
|
stored_value:
|
36
46
|
description: "Описание"
|
37
47
|
name: "Название"
|
@@ -56,6 +66,15 @@ ru:
|
|
56
66
|
title: "Редактируемые страницы"
|
57
67
|
show:
|
58
68
|
title: "Редактируемая страница «%{name}»"
|
69
|
+
simple_blocks:
|
70
|
+
show:
|
71
|
+
title: "Простой редактируемый блок «%{slug}»"
|
72
|
+
nav_item:
|
73
|
+
text: "Простые редактируемые блоки"
|
74
|
+
description: "Управление простыми редактируемыми блоками"
|
75
|
+
index:
|
76
|
+
title: "Простые редактируемые блоки"
|
77
|
+
heading: "Простые редактируемые блоки"
|
59
78
|
stored_values:
|
60
79
|
nav_item:
|
61
80
|
description: "Управление хранимыми значениями"
|
@@ -92,9 +111,11 @@ ru:
|
|
92
111
|
new:
|
93
112
|
title: "Новая редактируемая страница"
|
94
113
|
heading: "Новая редактируемая страница"
|
114
|
+
nav_text: "Создать"
|
95
115
|
edit:
|
96
116
|
title: "Редактирование редактируемой страницы"
|
97
117
|
heading: "Редактирование редактируемой страницы"
|
118
|
+
nav_text: "Редактировать"
|
98
119
|
update:
|
99
120
|
success: "Редактируемая страница успешно изменена"
|
100
121
|
destroy:
|
@@ -102,16 +123,38 @@ ru:
|
|
102
123
|
form:
|
103
124
|
guidelines:
|
104
125
|
body: "HTML для вставки внутри сайта. Максимум 64кБ текста."
|
105
|
-
description: "Метаописание для поисковых роботов, результатов поиска и расшаривания. Максимум 250 символов."
|
106
126
|
image: "Картинка в формате JPG или PNG размером около 640×640 для иллюстрации при расшаривании."
|
107
127
|
image_alt_text: "Максимум 250 символов."
|
108
|
-
|
109
|
-
|
110
|
-
|
128
|
+
meta_description: "Метаописание для поисковых роботов, результатов поиска и расшаривания. Максимум 250 символов."
|
129
|
+
meta_keywords: "Значение для meta keywords (для поисковых роботов). Максимум 250 символов."
|
130
|
+
meta_title: "Будет отображаться в заголовке окна. Максимум 250 символов."
|
131
|
+
name: "Максимум 100 символов."
|
132
|
+
nav_group: "Максимум 100 символов."
|
111
133
|
slug: "Используется для вставки внутри сайта. Максимум 100 символов."
|
112
134
|
url: "Абсолютный путь"
|
113
135
|
placeholders:
|
114
136
|
url: "/about/editable-pages"
|
137
|
+
nav_group: "footer"
|
138
|
+
simple_blocks:
|
139
|
+
new:
|
140
|
+
heading: "Добавить простой редактируемый блок"
|
141
|
+
nav_text: "Создать"
|
142
|
+
title: "Добавление простого редактируемого блока"
|
143
|
+
edit:
|
144
|
+
heading: "Редактирование простого редактируемого блока"
|
145
|
+
nav_text: "Редактировать"
|
146
|
+
title: "Редактирование простого редактируемого блока"
|
147
|
+
destroy:
|
148
|
+
success: "Простой редактируемый блок удалён"
|
149
|
+
form:
|
150
|
+
guidelines:
|
151
|
+
body: "Максимум 64кб символов."
|
152
|
+
image: "Картинка в формате SVG, JPG или PNG размером в пределах 1280×1280."
|
153
|
+
image_alt_text: "Максимум 255 символов."
|
154
|
+
name: "Используется в админке для удобства поиска. Максимум 100 символов."
|
155
|
+
slug: "Только латинские буквы, цифры, дефис или подчёркивание (кроме начала и конца). 2–50 символов."
|
156
|
+
update:
|
157
|
+
success: "Редактируемый блок успешно отредактирован"
|
115
158
|
stored_values:
|
116
159
|
new:
|
117
160
|
heading: "Новое хранимое значение"
|
@@ -91,9 +91,11 @@ sv:
|
|
91
91
|
new:
|
92
92
|
title: "New editable page"
|
93
93
|
heading: "New editable page"
|
94
|
+
nav_text: "Skapa"
|
94
95
|
edit:
|
95
96
|
title: "Editing editable page"
|
96
97
|
heading: "Editing editable page"
|
98
|
+
nav_text: "Redigera"
|
97
99
|
update:
|
98
100
|
success: "Editable page has been updated"
|
99
101
|
destroy:
|
data/config/locales/users-en.yml
CHANGED
data/config/locales/users-ru.yml
CHANGED
@@ -52,6 +52,7 @@ ru:
|
|
52
52
|
balance: "Баланс"
|
53
53
|
birthday: "Дата рождения"
|
54
54
|
bot: "Это бот"
|
55
|
+
code: "Код"
|
55
56
|
consent: "Согласие на обработку персональных данных и принятие пользовательского соглашения"
|
56
57
|
email: "Email"
|
57
58
|
email_confirmed: "Email подтверждён"
|
@@ -110,7 +111,6 @@ ru:
|
|
110
111
|
administrative: "Административная"
|
111
112
|
parent_id: "Родительская категория"
|
112
113
|
priority: "Порядок сортировки"
|
113
|
-
regional: "Региональная"
|
114
114
|
name: "Название"
|
115
115
|
slug: "Идентификатор"
|
116
116
|
description: "Описание"
|
@@ -365,6 +365,7 @@ ru:
|
|
365
365
|
password_confirmation: "Повторите пароль, чтобы убедиться, что вы не ошиблись в наборе."
|
366
366
|
email: "Введите почту для обратной связи и на случай сброса пароля."
|
367
367
|
join: "Зарегистрироваться"
|
368
|
+
invitation_code: "Пригласительный код"
|
368
369
|
create:
|
369
370
|
success: "Вы зарегистрировались и вошли"
|
370
371
|
are_you_bot: "Не нужно было отмечать галочку."
|
@@ -385,6 +386,10 @@ ru:
|
|
385
386
|
new_password: "Новый пароль"
|
386
387
|
update: "Обновить данные"
|
387
388
|
flags: "Дополнительно"
|
389
|
+
closed:
|
390
|
+
title: "Регистрация закрыта"
|
391
|
+
heading: "Регистрация"
|
392
|
+
registration_is_closed: "Регистрация новых пользователей закрыта"
|
388
393
|
tokens:
|
389
394
|
nav_item:
|
390
395
|
text: "Жетоны доступа (сессии)"
|
data/config/locales/users-sv.yml
CHANGED
data/config/routes.rb
CHANGED
@@ -1,8 +1,11 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
Rails.application.routes.draw do
|
2
4
|
resources :agents, :browsers, only: %i[update destroy]
|
3
5
|
|
4
6
|
resources :editable_blocks, only: %i[update destroy]
|
5
7
|
resources :editable_pages, only: %i[update destroy]
|
8
|
+
resources :simple_blocks, only: %i[update destroy]
|
6
9
|
resources :stored_values, only: %i[update destroy]
|
7
10
|
|
8
11
|
resources :users, only: %i[update destroy]
|
@@ -21,7 +24,7 @@ Rails.application.routes.draw do
|
|
21
24
|
|
22
25
|
resources :link_blocks, :link_block_items, only: %i[update destroy]
|
23
26
|
|
24
|
-
scope '(:locale)', constraints: { locale: /ru|en|sv/ } do
|
27
|
+
scope '(:locale)', constraints: { locale: /ru|en|sv|cn/ } do
|
25
28
|
# Handling errors
|
26
29
|
match '/400' => 'errors#bad_request', via: :all
|
27
30
|
match '/401' => 'errors#unauthorized', via: :all
|
@@ -44,13 +47,21 @@ Rails.application.routes.draw do
|
|
44
47
|
get 'contact' => :contact
|
45
48
|
end
|
46
49
|
|
47
|
-
scope 'u/:slug', controller: :profiles, constraints: { slug:
|
50
|
+
scope 'u/:slug', controller: :profiles, constraints: { slug: %r{[^/]+} } do
|
48
51
|
get '/' => :show, as: :user_profile
|
49
52
|
end
|
50
53
|
|
51
54
|
namespace :admin do
|
52
55
|
get '/' => 'index#index'
|
53
56
|
|
57
|
+
scope :settings, controller: :settings do
|
58
|
+
get '/' => :index, as: :settings
|
59
|
+
get ':slug' => :show, as: :component
|
60
|
+
patch ':slug' => :update
|
61
|
+
put ':slug/parameter' => :set_parameter, as: :set_parameter
|
62
|
+
delete ':slug/:parameter_slug' => :delete_parameter, as: :parameter
|
63
|
+
end
|
64
|
+
|
54
65
|
resources :agents, :browsers, only: %i[index show] do
|
55
66
|
member do
|
56
67
|
post 'toggle', defaults: { format: :json }
|
@@ -69,8 +80,12 @@ Rails.application.routes.draw do
|
|
69
80
|
resources :editable_pages, only: %i[index show] do
|
70
81
|
member do
|
71
82
|
post 'priority', defaults: { format: :json }
|
83
|
+
post 'toggle', defaults: { format: :json }
|
72
84
|
end
|
73
85
|
end
|
86
|
+
resources :simple_blocks, only: %i[index show] do
|
87
|
+
post 'toggle', on: :member, defaults: { format: :json }
|
88
|
+
end
|
74
89
|
resources :editable_blocks, only: %i[index show] do
|
75
90
|
member do
|
76
91
|
post 'toggle', defaults: { format: :json }
|
@@ -85,9 +100,10 @@ Rails.application.routes.draw do
|
|
85
100
|
end
|
86
101
|
|
87
102
|
resources :privileges, only: %i[index show] do
|
103
|
+
collection do
|
104
|
+
post 'check'
|
105
|
+
end
|
88
106
|
member do
|
89
|
-
put 'lock', defaults: { format: :json }
|
90
|
-
delete 'lock', action: :unlock, defaults: { format: :json }
|
91
107
|
post 'priority', defaults: { format: :json }
|
92
108
|
post 'toggle', defaults: { format: :json }
|
93
109
|
get 'users'
|
@@ -95,6 +111,9 @@ Rails.application.routes.draw do
|
|
95
111
|
end
|
96
112
|
end
|
97
113
|
resources :privilege_groups, only: %i[index show] do
|
114
|
+
collection do
|
115
|
+
post 'check'
|
116
|
+
end
|
98
117
|
member do
|
99
118
|
put 'privileges/:privilege_id' => :add_privilege, as: :privilege, defaults: { format: :json }
|
100
119
|
delete 'privileges/:privilege_id' => :remove_privilege, defaults: { format: :json }
|
@@ -168,12 +187,19 @@ Rails.application.routes.draw do
|
|
168
187
|
|
169
188
|
resources :agents, :browsers, except: %i[index show update destroy]
|
170
189
|
|
171
|
-
resources :editable_pages, except: %i[index show update destroy]
|
190
|
+
resources :editable_pages, except: %i[index show update destroy] do
|
191
|
+
collection do
|
192
|
+
post 'check', defaults: { format: :json }
|
193
|
+
end
|
194
|
+
end
|
172
195
|
resources :editable_blocks, except: %i[index show update destroy] do
|
173
196
|
collection do
|
174
197
|
post 'check', defaults: { format: :json }
|
175
198
|
end
|
176
199
|
end
|
200
|
+
resources :simple_blocks, only: %i[new create edit] do
|
201
|
+
post 'check', on: :collection, defaults: { format: :json }
|
202
|
+
end
|
177
203
|
resources :stored_values, except: %i[index show update destroy]
|
178
204
|
|
179
205
|
resources :link_blocks, :link_block_items, except: %i[index show update destroy] do
|
@@ -205,6 +231,6 @@ Rails.application.routes.draw do
|
|
205
231
|
|
206
232
|
resources :feedback_requests, only: :create
|
207
233
|
|
208
|
-
get ':
|
234
|
+
get ':slug' => 'fallback#show', constraints: { slug: /.+/ }
|
209
235
|
end
|
210
236
|
end
|
@@ -0,0 +1,80 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Tables for Biovision components
|
4
|
+
class CreateBiovisionComponents < ActiveRecord::Migration[5.2]
|
5
|
+
def up
|
6
|
+
create_components_table unless BiovisionComponent.table_exists?
|
7
|
+
create_parameters_table unless BiovisionParameter.table_exists?
|
8
|
+
|
9
|
+
seed_items
|
10
|
+
end
|
11
|
+
|
12
|
+
def down
|
13
|
+
drop_table :biovision_parameters if BiovisionParameter.table_exists?
|
14
|
+
drop_table :biovision_components if BiovisionComponent.table_exists?
|
15
|
+
end
|
16
|
+
|
17
|
+
private
|
18
|
+
|
19
|
+
def create_components_table
|
20
|
+
create_table :biovision_components, comment: 'Biovision component' do |t|
|
21
|
+
t.timestamps
|
22
|
+
t.string :slug, null: false
|
23
|
+
t.jsonb :settings, null: false, default: {}
|
24
|
+
end
|
25
|
+
|
26
|
+
add_index :biovision_components, :slug, unique: true
|
27
|
+
end
|
28
|
+
|
29
|
+
def create_parameters_table
|
30
|
+
create_table :biovision_parameters, comment: 'Biovision component parameter' do |t|
|
31
|
+
t.timestamps
|
32
|
+
t.references :biovision_component, null: false, foreign_key: { on_update: :cascade, on_delete: :cascade }
|
33
|
+
t.boolean :deletable, default: true, null: false
|
34
|
+
t.string :slug, null: false
|
35
|
+
t.text :value
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
def seed_items
|
40
|
+
create_registration_component
|
41
|
+
|
42
|
+
component = BiovisionComponent.create!(slug: 'contact')
|
43
|
+
collection = {
|
44
|
+
feedback_receiver: 'info@example.com',
|
45
|
+
email: 'info@example.com',
|
46
|
+
phone: '',
|
47
|
+
address: ''
|
48
|
+
}
|
49
|
+
create_parameters(component, collection)
|
50
|
+
end
|
51
|
+
|
52
|
+
def create_registration_component
|
53
|
+
slug = 'registration'
|
54
|
+
settings = {
|
55
|
+
open: true,
|
56
|
+
invite_only: false,
|
57
|
+
confirm_email: false,
|
58
|
+
use_invites: false,
|
59
|
+
require_email: false,
|
60
|
+
invite_count: 5
|
61
|
+
}
|
62
|
+
|
63
|
+
BiovisionComponent.create!(slug: slug, settings: settings)
|
64
|
+
end
|
65
|
+
|
66
|
+
# @param [BiovisionComponent] component
|
67
|
+
# @param [Hash] collection
|
68
|
+
def create_parameters(component, collection)
|
69
|
+
collection.each do |slug, value|
|
70
|
+
attributes = {
|
71
|
+
biovision_component: component,
|
72
|
+
slug: slug,
|
73
|
+
deletable: false,
|
74
|
+
value: value,
|
75
|
+
}
|
76
|
+
|
77
|
+
BiovisionParameter.create!(attributes)
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|