biovision-base 0.11.180127 → 0.14.180326

Sign up to get free protection for your applications and to get access to all the features.
Files changed (149) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +23 -0
  3. data/app/assets/javascripts/biovision/base/biovision-sliders.js +12 -9
  4. data/app/assets/javascripts/biovision/base/biovision.js +187 -2
  5. data/app/assets/stylesheets/biovision/base/admin.scss +84 -40
  6. data/app/assets/stylesheets/biovision/base/biovision.scss +104 -44
  7. data/app/assets/stylesheets/biovision/base/buttons/buttons-common.scss +95 -0
  8. data/app/assets/stylesheets/biovision/base/buttons/buttons-rounded.scss +26 -0
  9. data/app/assets/stylesheets/biovision/base/default.scss +2 -2
  10. data/app/assets/stylesheets/biovision/base/default_admin.scss +1 -1
  11. data/app/assets/stylesheets/biovision/base/default_application.scss +1 -1
  12. data/app/assets/stylesheets/biovision/base/themes/simple-layout.scss +115 -0
  13. data/app/assets/stylesheets/biovision/base/users.scss +15 -0
  14. data/app/controllers/agents_controller.rb +3 -3
  15. data/app/controllers/authentication_controller.rb +4 -4
  16. data/app/controllers/browsers_controller.rb +3 -3
  17. data/app/controllers/codes_controller.rb +2 -2
  18. data/app/controllers/editable_pages_controller.rb +6 -5
  19. data/app/controllers/index_controller.rb +1 -1
  20. data/app/controllers/media_files_controller.rb +3 -3
  21. data/app/controllers/media_folders_controller.rb +3 -3
  22. data/app/controllers/metrics_controller.rb +1 -1
  23. data/app/controllers/my/index_controller.rb +2 -0
  24. data/app/controllers/my/profiles_controller.rb +15 -9
  25. data/app/controllers/privilege_groups_controller.rb +2 -2
  26. data/app/controllers/privileges_controller.rb +3 -3
  27. data/app/controllers/stored_values_controller.rb +2 -2
  28. data/app/controllers/tokens_controller.rb +2 -2
  29. data/app/controllers/users_controller.rb +26 -10
  30. data/app/helpers/biovision_helper.rb +13 -2
  31. data/app/helpers/biovision_users_helper.rb +20 -5
  32. data/app/helpers/codes_helper.rb +1 -1
  33. data/app/helpers/editable_pages_helper.rb +1 -1
  34. data/app/helpers/languages_helper.rb +18 -0
  35. data/app/helpers/media_helper.rb +2 -2
  36. data/app/helpers/privileges_helper.rb +2 -2
  37. data/app/helpers/stored_values_helper.rb +1 -1
  38. data/app/helpers/tracking_helper.rb +2 -2
  39. data/app/models/editable_page.rb +10 -1
  40. data/app/models/user.rb +17 -23
  41. data/app/services/user_manager.rb +15 -18
  42. data/app/services/user_profile_handler.rb +28 -0
  43. data/app/uploaders/avatar_uploader.rb +1 -5
  44. data/app/uploaders/editable_page_image_uploader.rb +1 -1
  45. data/app/views/admin/agents/entity/_in_list.html.erb +3 -3
  46. data/app/views/admin/agents/show.html.erb +10 -2
  47. data/app/views/admin/browsers/entity/_in_list.html.erb +3 -3
  48. data/app/views/admin/browsers/show.html.erb +2 -2
  49. data/app/views/admin/codes/entity/_in_list.html.erb +1 -1
  50. data/app/views/admin/codes/show.html.erb +1 -1
  51. data/app/views/admin/editable_pages/entity/_in_list.html.erb +7 -1
  52. data/app/views/admin/editable_pages/show.html.erb +26 -19
  53. data/app/views/admin/feedback_requests/entity/_in_list.html.erb +1 -1
  54. data/app/views/admin/index/_biovision_base.html.erb +1 -0
  55. data/app/views/admin/media_files/entity/_in_list.html.erb +1 -1
  56. data/app/views/admin/media_files/show.html.erb +2 -2
  57. data/app/views/admin/media_folders/entity/_in_list.html.erb +2 -2
  58. data/app/views/admin/media_folders/files.html.erb +1 -1
  59. data/app/views/admin/media_folders/show.html.erb +6 -4
  60. data/app/views/admin/metrics/_list.html.erb +2 -2
  61. data/app/views/admin/metrics/show.html.erb +2 -2
  62. data/app/views/admin/privilege_groups/entity/_in_list.html.erb +1 -1
  63. data/app/views/admin/privilege_groups/show.html.erb +1 -1
  64. data/app/views/admin/privileges/entity/_in_list.html.erb +4 -4
  65. data/app/views/admin/privileges/show.html.erb +4 -4
  66. data/app/views/admin/privileges/users.html.erb +1 -1
  67. data/app/views/admin/stored_values/entity/_in_list.html.erb +1 -1
  68. data/app/views/admin/stored_values/show.html.erb +1 -1
  69. data/app/views/admin/tokens/entity/_in_list.html.erb +2 -2
  70. data/app/views/admin/tokens/show.html.erb +2 -2
  71. data/app/views/admin/users/codes.html.erb +1 -1
  72. data/app/views/admin/users/entity/_in_list.html.erb +3 -2
  73. data/app/views/admin/users/entity/_privilege.html.erb +1 -1
  74. data/app/views/admin/users/entity/_profile.html.erb +17 -0
  75. data/app/views/admin/users/privileges.html.erb +1 -1
  76. data/app/views/admin/users/search.jbuilder +2 -2
  77. data/app/views/admin/users/show.html.erb +34 -49
  78. data/app/views/admin/users/tokens.html.erb +1 -1
  79. data/app/views/agents/_agent.jbuilder +1 -1
  80. data/app/views/agents/edit.html.erb +1 -1
  81. data/app/views/authentication/_form.html.erb +1 -1
  82. data/app/views/authentication/create.jbuilder +10 -0
  83. data/app/views/browsers/edit.html.erb +1 -1
  84. data/app/views/codes/edit.html.erb +1 -1
  85. data/app/views/editable_pages/_form.html.erb +116 -61
  86. data/app/views/editable_pages/edit.html.erb +1 -1
  87. data/app/views/index/index.html.erb +8 -6
  88. data/app/views/index/index/_custom_dashboard.html.erb +0 -0
  89. data/app/views/index/index/_default_dashboard.html.erb +2 -0
  90. data/app/views/index/index/_editable.html.erb +9 -0
  91. data/app/views/layouts/admin/_header.html.erb +1 -1
  92. data/app/views/layouts/application/_header.html.erb +1 -1
  93. data/app/views/layouts/application/header/authentication/_links.html.erb +3 -3
  94. data/app/views/layouts/application/header/authentication/_plate.html.erb +1 -1
  95. data/app/views/layouts/profile.html.erb +23 -0
  96. data/app/views/layouts/profile/_footer.html.erb +11 -0
  97. data/app/views/layouts/profile/_header.html.erb +9 -0
  98. data/app/views/layouts/profile/header/_navigation.html.erb +0 -0
  99. data/app/views/media_files/edit.html.erb +1 -1
  100. data/app/views/media_folders/_form.html.erb +0 -2
  101. data/app/views/media_folders/edit.html.erb +1 -1
  102. data/app/views/media_folders/new.html.erb +1 -1
  103. data/app/views/metrics/edit.html.erb +2 -2
  104. data/app/views/my/index/index.html.erb +9 -14
  105. data/app/views/my/index/index/_dashboard.html.erb +12 -0
  106. data/app/views/my/index/index/_sidebar.html.erb +11 -0
  107. data/app/views/my/login_attempts/index.html.erb +1 -1
  108. data/app/views/my/profiles/_nav_item.html.erb +1 -1
  109. data/app/views/my/profiles/edit.js.erb +1 -0
  110. data/app/views/my/profiles/edit/_form.html.erb +130 -116
  111. data/app/views/my/profiles/edit/form/_profile_data.html.erb +53 -0
  112. data/app/views/my/profiles/new.js.erb +1 -0
  113. data/app/views/my/profiles/new/_form.html.erb +100 -53
  114. data/app/views/my/tokens/_toggleable.html.erb +1 -1
  115. data/app/views/my/tokens/index.html.erb +1 -1
  116. data/app/views/privilege_groups/edit.html.erb +1 -1
  117. data/app/views/privileges/edit.html.erb +1 -1
  118. data/app/views/profiles/_profile.html.erb +5 -6
  119. data/app/views/shared/_pagination.jbuilder +4 -0
  120. data/app/views/shared/admin/_list_with_priority.html.erb +6 -1
  121. data/app/views/shared/forms/_list_of_errors.js.erb +2 -0
  122. data/app/views/shared/forms/_wysiwyg.html.erb +11 -0
  123. data/app/views/shared/forms/errors.js.erb +5 -0
  124. data/app/views/stored_values/edit.html.erb +1 -1
  125. data/app/views/tokens/edit.html.erb +1 -1
  126. data/app/views/users/_form.html.erb +141 -83
  127. data/app/views/users/check.jbuilder +4 -0
  128. data/app/views/users/edit.html.erb +1 -1
  129. data/app/views/users/form/_profile_data.html.erb +53 -0
  130. data/app/views/users/new.html.erb +1 -1
  131. data/config/locales/common-en.yml +2 -0
  132. data/config/locales/common-ru.yml +2 -0
  133. data/config/locales/editable-pages-en.yml +5 -4
  134. data/config/locales/editable-pages-ru.yml +5 -4
  135. data/config/locales/users-en.yml +388 -0
  136. data/config/locales/users-ru.yml +8 -3
  137. data/config/routes.rb +127 -103
  138. data/db/migrate/20170302000001_create_users.rb +2 -0
  139. data/db/migrate/20170320000000_create_editable_pages.rb +1 -1
  140. data/db/migrate/20180321000000_add_profile_data_to_users.rb +31 -0
  141. data/lib/biovision/base/base_methods.rb +37 -7
  142. data/lib/biovision/base/engine.rb +1 -1
  143. data/lib/biovision/base/privilege_methods.rb +1 -1
  144. data/lib/biovision/base/version.rb +1 -1
  145. metadata +27 -6
  146. data/app/assets/stylesheets/biovision/base/buttons.scss +0 -195
  147. data/app/assets/stylesheets/biovision/base/layout.scss +0 -193
  148. data/app/views/editable_pages/form/_ckeditor.html.erb +0 -11
  149. data/db/migrate/20170302000002_create_user_profiles.rb +0 -21
@@ -4,7 +4,7 @@
4
4
  <span><%= t(:create) %></span>
5
5
  <% end %>
6
6
 
7
- <article class="user">
7
+ <article>
8
8
  <h1><%= t('.title') %></h1>
9
9
 
10
10
  <ul class="actions">
@@ -127,6 +127,8 @@ en:
127
127
  index: "Main site"
128
128
  index:
129
129
  title: "Home page"
130
+ description: "New site on Biovision CMS"
131
+ heading: "Welcome"
130
132
  application:
131
133
  not_found:
132
134
  title: "Page not found"
@@ -127,6 +127,8 @@ ru:
127
127
  index: "Основной сайт"
128
128
  index:
129
129
  title: "Главная страница"
130
+ description: "Новый сайт на Biovision CMS"
131
+ heading: "Добро пожаловать"
130
132
  application:
131
133
  not_found:
132
134
  title: "Страница не найдена"
@@ -5,14 +5,15 @@ en:
5
5
  stored_value: "Stored value"
6
6
  attributes:
7
7
  editable_page:
8
+ body: "Body"
9
+ description: "Description"
10
+ image: "Image"
11
+ keywords: "Keywords"
8
12
  language: "Language"
13
+ language_id: "Language"
9
14
  name: "Name"
10
15
  slug: "Slug"
11
- image: "Image"
12
16
  title: "Title"
13
- keywords: "Keywords"
14
- description: "Description"
15
- body: "Body"
16
17
  stored_value:
17
18
  description: "Description"
18
19
  name: "Name"
@@ -5,14 +5,15 @@ ru:
5
5
  stored_value: "Хранимое значение"
6
6
  attributes:
7
7
  editable_page:
8
+ body: "Содержимое"
9
+ description: "Метаописание"
10
+ image: "Картинка"
11
+ keywords: "Ключевые слова"
8
12
  language: "Язык"
13
+ language_id: "Язык"
9
14
  name: "Название"
10
15
  slug: "Идентификатор"
11
- image: "Картинка"
12
16
  title: "Заголовок"
13
- keywords: "Ключевые слова"
14
- description: "Метаописание"
15
- body: "Содержимое"
16
17
  stored_value:
17
18
  description: "Описание"
18
19
  name: "Название"
@@ -0,0 +1,388 @@
1
+ en:
2
+ user_count:
3
+ zero: "no users"
4
+ one: "%{count} user"
5
+ few: "%{count} users"
6
+ many: "%{count} users"
7
+ other: "%{count} users"
8
+ code_activation_count:
9
+ zero: "no activations"
10
+ one: "%{count} activation"
11
+ few: "%{count} activations"
12
+ many: "%{count} activations"
13
+ other: "%{count} activations"
14
+ age_year_count:
15
+ zero: "%{count} years"
16
+ one: "%{count} year"
17
+ few: "%{count} years"
18
+ many: "%{count} years"
19
+ other: "%{count} years"
20
+ invalid_code: "Invalid code"
21
+ could_not_log_in: "Could not log in"
22
+ logout: "Log out"
23
+ email_already_confirmed: "Email is already confirmed"
24
+ anonymous: "Anonymous"
25
+ activerecord:
26
+ models:
27
+ user: "User"
28
+ user_profile: "User profile"
29
+ foreign_site: "Foreign site"
30
+ foreign_user: "Foreign user"
31
+ code_type: "Code type"
32
+ code: "Code"
33
+ token: "Access token"
34
+ privilege: "Privilege"
35
+ privilege_group: "Privilege group"
36
+ privilege_group_privilege: "Privilege in group"
37
+ user_privilege: "Privilege for user"
38
+ login_attempt: "Login attempt"
39
+ errors:
40
+ models:
41
+ user:
42
+ attributes:
43
+ email:
44
+ invalid: "does not look like email"
45
+ slug:
46
+ invalid: "must contain 1 to 30 latin letters, numbers of underscores"
47
+ attributes:
48
+ user:
49
+ agent: "User agent at the time if registration"
50
+ allow_login: "Allow logging in"
51
+ allow_mail: "Allow email notifications"
52
+ birthday: "Birthday"
53
+ bot: "It is bot"
54
+ email: "Email"
55
+ email_confirmed: "Email is confirmed"
56
+ foreign_slug: "Foreign slug"
57
+ image: "Image"
58
+ ip: "IP-address at the time of registration"
59
+ language: "Language"
60
+ last_seen: "Last seen"
61
+ notice: "Notice"
62
+ password: "Password"
63
+ password_confirmation: "Password confirmation"
64
+ phone: "Phone"
65
+ phone_confirmed: "Phone is confirmed"
66
+ screen_name: "Screen name"
67
+ search_string: "Search string"
68
+ slug: "Slug"
69
+ user_profile:
70
+ gender: "Gender"
71
+ name: "Name"
72
+ patronymic: "Patronymic"
73
+ surname: "Surname"
74
+ genders:
75
+ female: "Female"
76
+ male: "Male"
77
+ foreign_site:
78
+ slug: "Slug"
79
+ name: "Name"
80
+ foreign_user:
81
+ foreign_site: "Foreign site"
82
+ user: "Inner user"
83
+ agent: "User agent at the time of registration"
84
+ ip: "IP-address at the time of registration"
85
+ slug: "Slug"
86
+ name: "Name"
87
+ email: "Email"
88
+ data: "Data"
89
+ token:
90
+ user: "User"
91
+ user_id: "User"
92
+ last_used: "Last used"
93
+ active: "Active"
94
+ token: "Token"
95
+ code:
96
+ code_type: "Code type"
97
+ code_type_id: "Code type"
98
+ user: "User"
99
+ user_id: "User"
100
+ category: "Category"
101
+ body: "Code"
102
+ payload: "Payload"
103
+ quantity: "Number of activations"
104
+ privilege:
105
+ parent_id: "Parent category"
106
+ priority: "Sorting order"
107
+ regional: "Regional"
108
+ name: "Name"
109
+ slug: "Slug"
110
+ description: "Description"
111
+ parents_cache: "Parents cache"
112
+ children_cache: "Children cache"
113
+ user_privilege:
114
+ privilege: "Privilege"
115
+ user: "User"
116
+ privilege_group:
117
+ name: "Name"
118
+ slug: "Slug"
119
+ description: "Description"
120
+ privilege_group_privilege:
121
+ privilege: "Privilege"
122
+ privilege_group: "Privilege group"
123
+ login_attempt:
124
+ user: "User"
125
+ password: "Password"
126
+ admin:
127
+ users:
128
+ nav_item:
129
+ text: "Users"
130
+ description: "Managing site users"
131
+ index:
132
+ title: "Users, page %{page}"
133
+ heading: "Users"
134
+ show:
135
+ title: "User %{name}"
136
+ privileges: "Privileges"
137
+ authenticate: "Log in as this user"
138
+ tokens:
139
+ title: "Tokens of user %{user], page %{page}"
140
+ heading: "Access tokens"
141
+ codes:
142
+ title: "Codes of user %{user}, page %{page}"
143
+ heading: "Codes"
144
+ privileges:
145
+ title: "Privileges of user %{user}"
146
+ heading: "Privileges of user"
147
+ filter:
148
+ search: "Search"
149
+ tokens:
150
+ nav_item:
151
+ text: "Access tokens (user sessions)"
152
+ description: "Managing session tokens"
153
+ index:
154
+ title: "Access tokens, page %{page}"
155
+ heading: "Access tokens (user sessions)"
156
+ show:
157
+ title: "Token №%{id}"
158
+ codes:
159
+ nav_item:
160
+ text: "Codes"
161
+ description: "Managing codes for resetting password, email confirmation, invitations, etc."
162
+ index:
163
+ title: "Codes, page %{page}"
164
+ heading: "Codes"
165
+ show:
166
+ title: "Code \"%{body}\""
167
+ privileges:
168
+ nav_item:
169
+ text: "Privileges of users"
170
+ description: "Managing privileges of users"
171
+ index:
172
+ title: "Privileges"
173
+ heading: "Privileges of users"
174
+ show:
175
+ title: "Privilege \"%{name}\""
176
+ children: "Child privileges"
177
+ add_child: "Add child privilege"
178
+ users:
179
+ title: "Users with privilege \"%{privilege}\", page %{page}"
180
+ heading: "Users with privilege"
181
+ entity:
182
+ groups:
183
+ heading: "Privilege groups"
184
+ privilege_groups:
185
+ nav_item:
186
+ text: "Privilege groups"
187
+ description: "Managing privilege groups"
188
+ index:
189
+ title: "Privilege groups"
190
+ heading: "Privilege groups"
191
+ show:
192
+ title: "Privilege group \"%{name}\""
193
+ privileges: "Privileges"
194
+ login_attempts:
195
+ index:
196
+ title: "Login attempts, page %{page}"
197
+ heading: "Login attempts for users"
198
+ nav_item:
199
+ text: "Login attempts"
200
+ description: "Failed user login attempts"
201
+ authentication:
202
+ nav_item:
203
+ log_in: "Log in"
204
+ join: "Join"
205
+ logout: "Log out"
206
+ info:
207
+ logout: "Log out"
208
+ new:
209
+ title: "Log in"
210
+ heading: "Log in"
211
+ breadcrumbs: "Log in"
212
+ form:
213
+ log_in: "Log in"
214
+ users:
215
+ create:
216
+ success: "User has been created successfully"
217
+ update:
218
+ success: "User has been updated successfully"
219
+ destroy:
220
+ success: "User has been deleted successfully"
221
+ edit:
222
+ title: "Editing user"
223
+ heading: "Editing user"
224
+ new:
225
+ title: "Adding user"
226
+ heading: "Adding user"
227
+ user:
228
+ account_data: "Account data"
229
+ index:
230
+ title: "Site users, page %{page}"
231
+ heading: "Site users"
232
+ form:
233
+ guidelines:
234
+ notice: "Administrative notice for yourself and other administrators"
235
+ screen_name: "Only latin letters, digits and underscores, 1 to 30 chars."
236
+ profiles:
237
+ profile:
238
+ user_info: "User info"
239
+ registration_date: "Registration date"
240
+ tokens:
241
+ update:
242
+ success: "Token had been updated successfully"
243
+ destroy:
244
+ success: "Token has been deleted successfully"
245
+ new:
246
+ title: "Adding token"
247
+ edit:
248
+ title: "Editing token"
249
+ codes:
250
+ update:
251
+ success: "Code had been updated successfully"
252
+ destroy:
253
+ success: "Code has been deleted successfully"
254
+ edit:
255
+ title: "Editing code"
256
+ new:
257
+ title: "New code"
258
+ form:
259
+ guidelines:
260
+ body: "Maximum 50 characters. Must be unique."
261
+ payload: "Depends on code type. Maximum 250 characters."
262
+ code_sender:
263
+ email:
264
+ subject: "Email confirmation"
265
+ password:
266
+ subject: "Password reset"
267
+ privileges:
268
+ new:
269
+ title: "New privilege"
270
+ edit:
271
+ title: "Editing privilege"
272
+ forbidden: "Editing this privilege is forbidden"
273
+ update:
274
+ success: "Privilege has been updated successfully"
275
+ destroy:
276
+ success: "Privilege has been deleted successfully"
277
+ form:
278
+ guidelines:
279
+ name: "Up to 250 characters."
280
+ slug: "Used in code for determining privilege presence. Up to 250 characters."
281
+ description: "Short privilege description. Up to 350 characters."
282
+ placeholders:
283
+ slug: "administrator"
284
+ privilege_groups:
285
+ new:
286
+ title: "New privilege group"
287
+ heading: "New privilege group"
288
+ edit:
289
+ title: "Editing privilege group"
290
+ heading: "Editing privilege group"
291
+ update:
292
+ success: "Group has been updated successfully"
293
+ destroy:
294
+ success: "Group has been deleted successfully"
295
+ form:
296
+ guidelines:
297
+ slug: "Used in code for users."
298
+ description: "Short group description. Up to 350 characters."
299
+ placeholders:
300
+ name: "Editors"
301
+ slug: "editors"
302
+ my:
303
+ index:
304
+ index:
305
+ title: "Private office"
306
+ heading: "Private office"
307
+ recoveries:
308
+ create:
309
+ impossible: "Password reset for this user is unacailable"
310
+ completed: "Password reset code has been sent to your email"
311
+ update:
312
+ invalid_code: "Invalid code"
313
+ success: "Password has been reset successfully. You have logged in."
314
+ show:
315
+ title: "Password reset"
316
+ got_code: "Have password reset code?"
317
+ update_password: "Change password"
318
+ no_code: "No password reset code?"
319
+ send_code: "Send code"
320
+ receive_code: "Receive code"
321
+ confirmations:
322
+ create:
323
+ set_email: "Please fill in email"
324
+ success: "Confirmation code has been sent"
325
+ update:
326
+ invalid_code: "Invalid code"
327
+ show:
328
+ title: "Confirm email"
329
+ got_code: "Have email confirmation code?"
330
+ confirm: "Confirm email"
331
+ no_code: "No confirmation code?"
332
+ send_code: "Send confirmation code"
333
+ profiles:
334
+ nav_item:
335
+ text: "Private office"
336
+ description: "View and edit your profile"
337
+ new:
338
+ title: "Join"
339
+ heading: "Join"
340
+ form:
341
+ i_am_bot: "DO NOT check this checkbox"
342
+ consent: "I accept terms of service and agree to processing of my personal data"
343
+ guidelines:
344
+ screen_name: "Only latin letters, numbers and underscores. 1 to 30 characters."
345
+ password: "Choose reliable password that is hard to guess."
346
+ password_confirmation: "Repeat password to be sure you entered it correctly."
347
+ email: "Enter email for contact and password reset."
348
+ join: "Join"
349
+ create:
350
+ success: "You have registered and logged in"
351
+ are_you_bot: "You should not have checked that checkbox."
352
+ update:
353
+ success: "Profile has been updated successfully"
354
+ show:
355
+ title: "My profile"
356
+ heading: "My profile"
357
+ edit:
358
+ title: "Editing profile"
359
+ form:
360
+ common_parameters: "Common parameters"
361
+ update_image: "Update image"
362
+ sensitive_parameters: "Sensitive parameters"
363
+ sensitive_parameters_notice: "Enter current password if you want to change sensitive parameters."
364
+ current_password: "Current password"
365
+ leave_blank_if_necessary: "Leave blank, if you do not change this."
366
+ new_password: "New password"
367
+ update: "Update"
368
+ flags: "Flags"
369
+ tokens:
370
+ nav_item:
371
+ text: "Access tokens (sessions)"
372
+ description: "Managing session tokens"
373
+ index:
374
+ title: "Tokens, page %{page}"
375
+ heading: "Access tokens (sessions)"
376
+ login_attempts:
377
+ nav_item:
378
+ text: "Login attempts"
379
+ description: "Login attempts for your account"
380
+ index:
381
+ title: "Login attempts for my account, page %{page}"
382
+ heading: "Login attempts for my account"
383
+ user_mailer:
384
+ login_attempt:
385
+ subject: "Someone is trying to log in to your account"
386
+ greeting: "Hello %{name}"
387
+ message: "Someone is trying to log in to your account. For security reasons logging in for you account is suspended for 15 minutes."
388
+ you_can_recover_password: "If you forgot your password, you can reset it by following this link"