biovision-base 0.36.190526.0 → 0.37.190607.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 25a60b6a83c799dd28363fb20c326010de89318358e923459eee1a952e5c4581
4
- data.tar.gz: 21c006b675139987f71e209ee9b5e49026152a15d0f4a3f5ba9332d6aab4febb
3
+ metadata.gz: 53f6745ccdb17530c51d58bc412f980bb9ec1e47e54a858a5aa207b117c9f6c1
4
+ data.tar.gz: 4fb31a1e0780d1984c30225c05f74c24934d706350009a007bb24f8ded0f43e6
5
5
  SHA512:
6
- metadata.gz: 480dc37953cba27517f9a99927ea704433a2af1241fe229c28d20a693b45cb8feea15ee39915a8639edebd1782c9a81ff80e01b4656c26da328d565483406425
7
- data.tar.gz: b8a978a75a8be80078f11a3a6a57001eddf8a719ca97255b401420e09b79cb2848f7badcba3f512b35f027a094be0dffdcdddc551c2f820735d8d6ea0d123eb2
6
+ metadata.gz: 7b812126a16490736dda1d3af3b38fec3de5bbcaf674c603f571bee8db5274131c77ea6c6420593e1dc9d19a335d0197eb91daa210735935a45d06b075eaf929
7
+ data.tar.gz: 8d2efd4a4972f0e2a17a0f8fac8b4f403b5d495ef0c94c700914bd1bf5706bad0b901092c1ff591c8e04373f48c741288c731203812320c0bfb82420f787b8d8
@@ -168,19 +168,21 @@ Biovision.components.carousel = {
168
168
  */
169
169
  newOffset: function (slider) {
170
170
  const firstSlide = slider.container.querySelector(".carousel-item:first-of-type");
171
- const rightMargin = window.getComputedStyle(firstSlide).marginRight;
172
- const slideWidth = firstSlide.offsetWidth + parseInt(rightMargin);
173
- let newMargin = -(slideWidth * slider.current);
174
- const slidesLength = slideWidth * slider.items.length;
175
- const maxOffset = slidesLength - slider.container.offsetWidth;
176
- const delta = newMargin + maxOffset;
171
+ if (firstSlide) {
172
+ const rightMargin = window.getComputedStyle(firstSlide).marginRight;
173
+ const slideWidth = firstSlide.offsetWidth + parseInt(rightMargin);
174
+ let newMargin = -(slideWidth * slider.current);
175
+ const slidesLength = slideWidth * slider.items.length;
176
+ const maxOffset = slidesLength - slider.container.offsetWidth;
177
+ const delta = newMargin + maxOffset;
177
178
 
178
- if (delta < 0) {
179
- newMargin -= delta;
180
- slider["current"] = slider["maxItem"];
181
- }
179
+ if (delta < 0) {
180
+ newMargin -= delta;
181
+ slider["current"] = slider["maxItem"];
182
+ }
182
183
 
183
- firstSlide.style.marginLeft = String(newMargin) + "px";
184
+ firstSlide.style.marginLeft = String(newMargin) + "px";
185
+ }
184
186
  },
185
187
  /**
186
188
  * Determine maximum item number so that right margin remains minimal
@@ -189,10 +191,12 @@ Biovision.components.carousel = {
189
191
  */
190
192
  setMaxItem: function (slider) {
191
193
  const firstSlide = slider.container.querySelector(".carousel-item:first-of-type");
192
- const rightMargin = window.getComputedStyle(firstSlide).marginRight;
193
- const slideWidth = firstSlide.offsetWidth + parseInt(rightMargin);
194
- const maxCount = slider.container.offsetWidth / slideWidth;
195
- slider["maxItem"] = slider.items.length - Math.floor(maxCount);
194
+ if (firstSlide) {
195
+ const rightMargin = window.getComputedStyle(firstSlide).marginRight;
196
+ const slideWidth = firstSlide.offsetWidth + parseInt(rightMargin);
197
+ const maxCount = slider.container.offsetWidth / slideWidth;
198
+ slider["maxItem"] = slider.items.length - Math.floor(maxCount);
199
+ }
196
200
  },
197
201
  /**
198
202
  * Handler for start of swipe
@@ -42,9 +42,9 @@ class BiovisionComponent < ApplicationRecord
42
42
  end
43
43
 
44
44
  # @param [String] slug
45
- # @param [String] value
45
+ # @param value
46
46
  def []=(slug, value)
47
- parameters[slug.to_s] = value.to_s
47
+ parameters[slug.to_s] = value
48
48
  save!
49
49
  end
50
50
  end
@@ -7,7 +7,8 @@ module Biovision
7
7
  # @param [Hash] parameters
8
8
  # @param [Code] code
9
9
  def handle(parameters, code)
10
- @user = User.new(parameters)
10
+ @user = User.new(parameters)
11
+ set_email_as_login if email_as_login?
11
12
  @manager = CodeManager::Invitation.new(code)
12
13
 
13
14
  use_invites? ? use_code : persist_user
@@ -31,8 +32,12 @@ module Biovision
31
32
  @component.settings['confirm_email']
32
33
  end
33
34
 
35
+ def email_as_login?
36
+ @component.settings['email_as_login']
37
+ end
38
+
34
39
  def require_email?
35
- @component.settings['require_email']
40
+ @component.settings['require_email'] || email_as_login?
36
41
  end
37
42
 
38
43
  protected
@@ -41,7 +46,10 @@ module Biovision
41
46
  # @return [Hash]
42
47
  def normalize_settings(data)
43
48
  result = {}
44
- flags = %w[open invite_only use_invites confirm_email require_email]
49
+ flags = %w[
50
+ open invite_only use_invites confirm_email email_as_login
51
+ require_email
52
+ ]
45
53
  flags.each { |f| result[f] = data[f].to_i == 1 }
46
54
  numbers = %w[invite_count]
47
55
  numbers.each { |f| result[f] = data[f].to_i }
@@ -88,11 +96,17 @@ module Biovision
88
96
 
89
97
  parameters = {
90
98
  code_type: CodeManager::Invitation.code_type,
91
- user: @user,
92
- quantity: quantity,
99
+ user: @user,
100
+ quantity: quantity,
93
101
  }
94
102
  Code.create(parameters)
95
103
  end
104
+
105
+ def set_email_as_login
106
+ @user.foreign_slug = true
107
+ @user.screen_name = @user.email
108
+ @user.slug = @user.email
109
+ end
96
110
  end
97
111
  end
98
112
  end
@@ -4,6 +4,6 @@
4
4
  <%= render 'admin/index/dashboard/editorial' %>
5
5
  <%= render 'admin/index/dashboard/biovision_links' if LinkBlock.table_exists? && LinkBlock.any? %>
6
6
  <%= render 'admin/index/dashboard/biovision_feedback' %>
7
- <% %w[partners post vote poll comment].each do |part| %>
7
+ <% %w[partners post vote poll comment testimonials].each do |part| %>
8
8
  <%= render "admin/index/dashboard/biovision_#{part}" if Gem.loaded_specs.key?("biovision-#{part}") %>
9
9
  <% end %>
@@ -1,4 +1,4 @@
1
1
  <%= render 'index/index/custom_dashboard' %>
2
- <% %w[post partners].each do |component| %>
2
+ <% %w[post testimonials partners].each do |component| %>
3
3
  <%= render "index/dashboard/biovision_#{component}" if Gem.loaded_specs.key?("biovision-#{component}") %>
4
4
  <% end %>
@@ -1,9 +1,10 @@
1
1
  <%=
2
2
  form_with(
3
- url: my_profile_path,
4
- method: :patch,
3
+ url: my_profile_path,
4
+ method: :patch,
5
5
  multipart: true,
6
- id: 'user-form'
6
+ id: 'user-form',
7
+ class: 'profile-form'
7
8
  ) do
8
9
  %>
9
10
  <%= render partial: 'shared/list_of_errors', locals: { entity: entity } %>
@@ -27,7 +28,7 @@
27
28
  file_field_tag(
28
29
  'user[image]',
29
30
  accept: 'image/jpeg,image/png',
30
- data: { image: 'user-image' }
31
+ data: { image: 'user-image' }
31
32
  )
32
33
  %>
33
34
  </figcaption>
@@ -85,9 +86,9 @@
85
86
  email_field_tag(
86
87
  'user[email]',
87
88
  entity.email,
88
- size: nil,
89
+ size: nil,
89
90
  maxlength: User::EMAIL_LIMIT,
90
- required: true
91
+ required: true
91
92
  )
92
93
  %>
93
94
  </dd>
@@ -100,7 +101,7 @@
100
101
  telephone_field_tag(
101
102
  'user[phone]',
102
103
  entity.phone,
103
- size: nil,
104
+ size: nil,
104
105
  maxlength: User::PHONE_LIMIT
105
106
  )
106
107
  %>
@@ -1,33 +1,57 @@
1
- <% model_name = entity.class.to_s.underscore %>
1
+ <%
2
+ component_handler ||= Biovision::Components::BaseComponent.handler('registration')
3
+ model_name = entity.class.to_s.underscore
4
+ %>
2
5
  <%=
3
6
  form_with(
4
7
  model: entity,
5
8
  scope: model_name,
6
- url: my_profile_path,
9
+ url: my_profile_path,
7
10
  class: 'new-my-profile',
8
- id: "#{model_name}-form",
9
- data: { check_url: check_my_profile_path }
11
+ id: "#{model_name}-form",
12
+ data: { check_url: check_my_profile_path }
10
13
  ) do |f|
11
14
  %>
12
15
  <%= render partial: 'shared/list_of_errors', locals: { entity: entity } %>
13
16
  <dl>
17
+ <% unless component_handler.email_as_login? %>
18
+ <dt>
19
+ <%= f.label :screen_name, t('activerecord.attributes.user.screen_name') %>
20
+ </dt>
21
+ <dd>
22
+ <%=
23
+ f.text_field(
24
+ :screen_name,
25
+ id: "#{model_name}_screen_name",
26
+ required: true,
27
+ maxlength: User::SCREEN_NAME_LIMIT,
28
+ pattern: User::SCREEN_NAME_PATTERN_HTML,
29
+ title: t('.guidelines.screen_name'),
30
+ data: { check: :screen_name }
31
+ )
32
+ %>
33
+ <div class="check-result-error" data-field="screen_name"></div>
34
+ <div class="guideline"><%= t('.guidelines.screen_name') %></div>
35
+ </dd>
36
+ <% end %>
14
37
  <dt>
15
- <%= f.label :screen_name, t('activerecord.attributes.user.screen_name') %>
38
+ <%= f.label :email, t('activerecord.attributes.user.email') %>
16
39
  </dt>
17
40
  <dd>
18
41
  <%=
19
- f.text_field(
20
- :screen_name,
21
- id: "#{model_name}_screen_name",
22
- required: true,
23
- maxlength: User::SCREEN_NAME_LIMIT,
24
- pattern: User::SCREEN_NAME_PATTERN_HTML,
25
- title: t('.guidelines.screen_name'),
26
- data: { check: :screen_name }
42
+ f.email_field(
43
+ :email,
44
+ id: "#{model_name}_email",
45
+ size: nil,
46
+ maxlength: User::EMAIL_LIMIT,
47
+ required: component_handler.require_email?,
48
+ data: { check: :email }
27
49
  )
28
50
  %>
29
- <div class="check-result-error hidden" data-field="screen_name"></div>
30
- <div class="guideline"><%= t('.guidelines.screen_name') %></div>
51
+ <div class="check-result-error" data-field="email"></div>
52
+ <% unless component_handler.email_as_login? %>
53
+ <div class="guideline"><%= t('.guidelines.email') %></div>
54
+ <% end %>
31
55
  </dd>
32
56
 
33
57
  <dt>
@@ -37,14 +61,14 @@
37
61
  <%=
38
62
  f.password_field(
39
63
  :password,
40
- id: "#{model_name}_password",
41
- required: true,
42
- size: nil,
64
+ id: "#{model_name}_password",
65
+ required: true,
66
+ size: nil,
43
67
  maxlength: 70,
44
- data: { check: :password }
68
+ data: { check: :password }
45
69
  )
46
70
  %>
47
- <div class="check-result-error hidden" data-field="password"></div>
71
+ <div class="check-result-error" data-field="password"></div>
48
72
  <div class="guideline"><%= t('.guidelines.password') %></div>
49
73
  </dd>
50
74
 
@@ -55,36 +79,18 @@
55
79
  <%=
56
80
  f.password_field(
57
81
  :password_confirmation,
58
- id: "#{model_name}_password_confirmation",
59
- required: true,
60
- size: nil,
82
+ id: "#{model_name}_password_confirmation",
83
+ required: true,
84
+ size: nil,
61
85
  maxlength: 70,
62
- data: { check: :password_confirmation }
86
+ data: { check: :password_confirmation }
63
87
  )
64
88
  %>
65
- <div class="check-result-error hidden" data-field="password_confirmation"></div>
89
+ <div class="check-result-error" data-field="password_confirmation"></div>
66
90
  <div class="guideline"><%= t('.guidelines.password_confirmation') %></div>
67
91
  </dd>
68
92
 
69
- <dt>
70
- <%= f.label :email, t('activerecord.attributes.user.email') %>
71
- </dt>
72
- <dd>
73
- <%=
74
- f.email_field(
75
- :email,
76
- id: "#{model_name}_email",
77
- size: nil,
78
- maxlength: User::EMAIL_LIMIT,
79
- required: local_assigns[:component_handler] && component_handler.require_email?,
80
- data: { check: :email }
81
- )
82
- %>
83
- <div class="check-result-error hidden" data-field="email"></div>
84
- <div class="guideline"><%= t('.guidelines.email') %></div>
85
- </dd>
86
-
87
- <% if local_assigns[:component_handler] && component_handler.use_invites? %>
93
+ <% if component_handler.use_invites? %>
88
94
  <dt>
89
95
  <%= label_tag :code, t('.invitation_code') %>
90
96
  </dt>
@@ -101,7 +107,7 @@
101
107
  }
102
108
  )
103
109
  %>
104
- <div class="check-result-error hidden" data-field="code"></div>
110
+ <div class="check-result-error" data-field="code"></div>
105
111
  </dd>
106
112
  <% end %>
107
113
  </dl>
@@ -40,10 +40,11 @@ ru:
40
40
  registration:
41
41
  name: "Регистрация"
42
42
  settings:
43
- open: "Открыта"
44
- invite_only: "Только по приглашениям"
45
43
  confirm_email: "Отправлять письмо для подтверждения почты сразу"
46
- use_invites: "Использовать приглашения"
47
- require_email: "Электронная почта обязательна при регистрации"
44
+ email_as_login: "Использовать электронную почту в качестве логина"
48
45
  invite_count: "Количество кодов приглашения после регистрации"
46
+ invite_only: "Только по приглашениям"
47
+ open: "Открыта"
48
+ require_email: "Электронная почта обязательна при регистрации"
49
+ use_invites: "Использовать приглашения"
49
50
  invalid_code: "указан неверно"
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Biovision
4
4
  module Base
5
- VERSION = '0.36.190526.0'
5
+ VERSION = '0.37.190607.0'
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: biovision-base
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.36.190526.0
4
+ version: 0.37.190607.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Maxim Khan-Magomedov
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-05-25 00:00:00.000000000 Z
11
+ date: 2019-06-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails