digital_heroes_startkit 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (189) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +20 -0
  3. data/README.md +37 -0
  4. data/Rakefile +36 -0
  5. data/app/assets/config/digital_heroes_startkit_manifest.js +0 -0
  6. data/app/assets/javascripts/authorization.coffee +79 -0
  7. data/app/assets/javascripts/avatar.coffee +16 -0
  8. data/app/assets/javascripts/datepicker.js +2 -0
  9. data/app/assets/javascripts/digital_heroes_startkit/cable.js +13 -0
  10. data/app/assets/javascripts/digital_heroes_startkit/channels/pills.coffee +23 -0
  11. data/app/assets/javascripts/digital_heroes_startkit/input.coffee +5 -0
  12. data/app/assets/javascripts/digital_heroes_startkit/pills.coffee +2 -0
  13. data/app/assets/javascripts/digital_heroes_startkit/snap.svg-min.js +21 -0
  14. data/app/assets/javascripts/digital_heroes_startkit.js +26 -0
  15. data/app/assets/javascripts/profile.coffee +53 -0
  16. data/app/assets/javascripts/profile_geodata.coffee +68 -0
  17. data/app/assets/javascripts/reg_fields_checkup.coffee +96 -0
  18. data/app/assets/javascripts/registration.coffee +35 -0
  19. data/app/assets/javascripts/resurrection.coffee +20 -0
  20. data/app/channels/application_cable/channel.rb +4 -0
  21. data/app/channels/application_cable/connection.rb +4 -0
  22. data/app/channels/pills_channel.rb +10 -0
  23. data/app/controllers/avatars_controller.rb +11 -0
  24. data/app/controllers/clients_controller.rb +62 -0
  25. data/app/controllers/email_access_cards_controller.rb +28 -0
  26. data/app/controllers/geodata_controller.rb +84 -0
  27. data/app/controllers/nickname_access_cards_controller.rb +30 -0
  28. data/app/controllers/oauth_controller.rb +178 -0
  29. data/app/controllers/openid_controller.rb +124 -0
  30. data/app/controllers/phone_access_cards_controller.rb +28 -0
  31. data/app/controllers/profile_controller.rb +114 -0
  32. data/app/controllers/response_controller.rb +17 -0
  33. data/app/controllers/start_kit_controller.rb +86 -0
  34. data/app/controllers/user_cards_controller.rb +305 -0
  35. data/app/jobs/log_analyzer_job.rb +50 -0
  36. data/app/jobs/password_resurrection_kill_job.rb +9 -0
  37. data/app/mailers/admin_mailer.rb +9 -0
  38. data/app/mailers/client_mailer.rb +3 -0
  39. data/app/mailers/kreator_mailer.rb +9 -0
  40. data/app/mailers/manager_mailer.rb +9 -0
  41. data/app/mailers/prometeus_mailer.rb +16 -0
  42. data/app/mailers/user_cards_mailer.rb +9 -0
  43. data/app/models/admin.rb +3 -0
  44. data/app/models/avatar.rb +23 -0
  45. data/app/models/city.rb +7 -0
  46. data/app/models/client.rb +31 -0
  47. data/app/models/country.rb +7 -0
  48. data/app/models/delayed_job.rb +20 -0
  49. data/app/models/email_access_card.rb +30 -0
  50. data/app/models/kreator.rb +3 -0
  51. data/app/models/log_error.rb +56 -0
  52. data/app/models/log_error_type.rb +3 -0
  53. data/app/models/manager.rb +3 -0
  54. data/app/models/nickname_access_card.rb +18 -0
  55. data/app/models/oauth_access_card.rb +38 -0
  56. data/app/models/phone_access_card.rb +19 -0
  57. data/app/models/prometeus.rb +50 -0
  58. data/app/models/user_card.rb +158 -0
  59. data/app/views/admin_mailer/greetings_email.html.erb +191 -0
  60. data/app/views/client_mailer/greetings_email.html.erb +191 -0
  61. data/app/views/kreator_mailer/greetings_email.html.erb +191 -0
  62. data/app/views/manager_mailer/greetings_email.html.erb +191 -0
  63. data/app/views/oauth/verify.slim +1 -0
  64. data/app/views/profile/_add_avatar.slim +12 -0
  65. data/app/views/profile/_user_profile.slim +95 -0
  66. data/app/views/profile/index.slim +12 -0
  67. data/app/views/user_cards/authorization.slim +72 -0
  68. data/app/views/user_cards/confirmation_but_access_code.slim +7 -0
  69. data/app/views/user_cards/confirmation_complete.slim +7 -0
  70. data/app/views/user_cards/registration.slim +86 -0
  71. data/app/views/user_cards/resurrection.slim +19 -0
  72. data/app/views/user_cards/resurrection_but_access_code.slim +7 -0
  73. data/app/views/user_cards/resurrection_no_access_code.slim +7 -0
  74. data/app/views/user_cards_mailer/email.html.erb +191 -0
  75. data/app/views/user_cards_mailer/resurrection.html.erb +191 -0
  76. data/config/initializers/session_manager.rb +2 -0
  77. data/config/routes.rb +53 -0
  78. data/lib/access_control.rb +3 -0
  79. data/lib/digital_heroes_startkit/engine.rb +25 -0
  80. data/lib/digital_heroes_startkit/version.rb +3 -0
  81. data/lib/digital_heroes_startkit.rb +5 -0
  82. data/lib/generators/digital_heroes_startkit/install_generator.rb +61 -0
  83. data/lib/generators/project/Capfile +36 -0
  84. data/lib/generators/project/Procfile +3 -0
  85. data/lib/generators/project/app/assets/stylesheets/application.scss +16 -0
  86. data/lib/generators/project/app/assets/stylesheets/base/_auth.scss +37 -0
  87. data/lib/generators/project/app/assets/stylesheets/base/_buttons.scss +62 -0
  88. data/lib/generators/project/app/assets/stylesheets/base/_checkbox.scss +71 -0
  89. data/lib/generators/project/app/assets/stylesheets/base/_datepicker.scss +620 -0
  90. data/lib/generators/project/app/assets/stylesheets/base/_form.scss +81 -0
  91. data/lib/generators/project/app/assets/stylesheets/base/_notice.scss +14 -0
  92. data/lib/generators/project/app/assets/stylesheets/base/_pills.scss +39 -0
  93. data/lib/generators/project/app/assets/stylesheets/base/_profile.scss +67 -0
  94. data/lib/generators/project/app/assets/stylesheets/base/_reset.scss +49 -0
  95. data/lib/generators/project/app/assets/stylesheets/base/_social.scss +52 -0
  96. data/lib/generators/project/app/assets/stylesheets/base/_user.scss +0 -0
  97. data/lib/generators/project/app/assets/stylesheets/base/_user_avatar.scss +18 -0
  98. data/lib/generators/project/app/assets/stylesheets/base/styles.scss.txt +35 -0
  99. data/lib/generators/project/app/assets/stylesheets/plugins/sumoselect.scss +296 -0
  100. data/lib/generators/project/app/controllers/application_controller.rb +3 -0
  101. data/lib/generators/project/app/views/layouts/_counts.html.erb +29 -0
  102. data/lib/generators/project/app/views/layouts/_footer.slim +6 -0
  103. data/lib/generators/project/app/views/layouts/_head.slim +7 -0
  104. data/lib/generators/project/app/views/layouts/_header.slim +47 -0
  105. data/lib/generators/project/app/views/layouts/_mobile_menu.slim +11 -0
  106. data/lib/generators/project/app/views/layouts/application.slim +26 -0
  107. data/lib/generators/project/app/views/layouts/mailer.html.erb +13 -0
  108. data/lib/generators/project/app/views/layouts/mailer.text.erb +1 -0
  109. data/lib/generators/project/config/application.access.yml +66 -0
  110. data/lib/generators/project/config/application.db.yml +5 -0
  111. data/lib/generators/project/config/application.google.yml +3 -0
  112. data/lib/generators/project/config/application.oauth.yml +135 -0
  113. data/lib/generators/project/config/application.robokassa.yml +10 -0
  114. data/lib/generators/project/config/application.sendgrid.yml +3 -0
  115. data/lib/generators/project/config/application.telegram.yml +22 -0
  116. data/lib/generators/project/config/application.yml +28 -0
  117. data/lib/generators/project/config/cable.yml +6 -0
  118. data/lib/generators/project/config/capistrano.yml +78 -0
  119. data/lib/generators/project/config/database.yml +52 -0
  120. data/lib/generators/project/config/deploy/application.secrets.yml +4 -0
  121. data/lib/generators/project/config/deploy/domain.crt +92 -0
  122. data/lib/generators/project/config/deploy/domain.key +51 -0
  123. data/lib/generators/project/config/deploy/nginx.conf +50 -0
  124. data/lib/generators/project/config/deploy/production.rb +67 -0
  125. data/lib/generators/project/config/deploy/secrets.yml +32 -0
  126. data/lib/generators/project/config/deploy/secrets.yml.enc +1 -0
  127. data/lib/generators/project/config/deploy/secrets.yml.key +1 -0
  128. data/lib/generators/project/config/deploy/staging.rb +61 -0
  129. data/lib/generators/project/config/deploy/virgin_conf/database.yml +42 -0
  130. data/lib/generators/project/config/deploy/virgin_conf/nginx_site.conf +47 -0
  131. data/lib/generators/project/config/deploy/virgin_conf/nginx_site_ssl.conf +57 -0
  132. data/lib/generators/project/config/deploy/virgin_conf/postfix.cf +685 -0
  133. data/lib/generators/project/config/deploy/virgin_conf/production.rb +67 -0
  134. data/lib/generators/project/config/deploy/virgin_conf/puma.rb +66 -0
  135. data/lib/generators/project/config/deploy/virgin_sh/capistrano.sh +18 -0
  136. data/lib/generators/project/config/deploy/virgin_sh/foreman.sh +19 -0
  137. data/lib/generators/project/config/deploy/virgin_sh/rvm_install.sh +10 -0
  138. data/lib/generators/project/config/deploy.rb +377 -0
  139. data/lib/generators/project/config/environments/development.rb +91 -0
  140. data/lib/generators/project/config/environments/production.rb +142 -0
  141. data/lib/generators/project/config/initializers/session_store.rb +3 -0
  142. data/lib/generators/project/config/locales/ru.yml +444 -0
  143. data/lib/generators/project/db/migrate/10_create_user_cards.rb +19 -0
  144. data/lib/generators/project/db/migrate/12_create_email_access_cards.rb +15 -0
  145. data/lib/generators/project/db/migrate/13_create_nickname_access_cards.rb +15 -0
  146. data/lib/generators/project/db/migrate/14_create_phone_access_cards.rb +16 -0
  147. data/lib/generators/project/db/migrate/15_create_oauth_access_cards.rb +19 -0
  148. data/lib/generators/project/db/migrate/1_create_kreators.rb +9 -0
  149. data/lib/generators/project/db/migrate/21_create_avatars.rb +12 -0
  150. data/lib/generators/project/db/migrate/30_create_countries.rb +12 -0
  151. data/lib/generators/project/db/migrate/32_create_cities.rb +12 -0
  152. data/lib/generators/project/db/migrate/3_create_admins.rb +9 -0
  153. data/lib/generators/project/db/migrate/44_add_sessions_table.rb +12 -0
  154. data/lib/generators/project/db/migrate/4_create_managers.rb +10 -0
  155. data/lib/generators/project/db/migrate/5_create_clients.rb +17 -0
  156. data/lib/generators/project/db/migrate/60_create_log_error_types.rb +9 -0
  157. data/lib/generators/project/db/migrate/61_create_log_errors.rb +12 -0
  158. data/lib/generators/project/db/migrate/78_create_delayed_jobs.rb +22 -0
  159. data/lib/generators/project/db/seeds.rb +27 -0
  160. data/lib/generators/project/geodata/cities.csv +25305 -0
  161. data/lib/generators/project/geodata/countries.csv +250 -0
  162. data/lib/generators/project/public/401.html +75 -0
  163. data/lib/generators/project/public/404.html +67 -0
  164. data/lib/generators/project/public/422.html +67 -0
  165. data/lib/generators/project/public/500.html +66 -0
  166. data/lib/generators/project/public/_receiver.html +10 -0
  167. data/lib/generators/project/public/apple-touch-icon-precomposed.png +0 -0
  168. data/lib/generators/project/public/apple-touch-icon.png +0 -0
  169. data/lib/generators/project/public/favicon.ico +0 -0
  170. data/lib/generators/project/public/robots.txt +1 -0
  171. data/lib/happy_birthday.rb +5 -0
  172. data/lib/link.rb +16 -0
  173. data/lib/oauth/oauth.rb +72 -0
  174. data/lib/oauth/oauth_fb.rb +48 -0
  175. data/lib/oauth/oauth_gg.rb +50 -0
  176. data/lib/oauth/oauth_im.rb +51 -0
  177. data/lib/oauth/oauth_mr.rb +53 -0
  178. data/lib/oauth/oauth_vk.rb +3 -0
  179. data/lib/oauth/oauth_yx.rb +51 -0
  180. data/lib/openid/openid.rb +46 -0
  181. data/lib/openid/openid_st.rb +2 -0
  182. data/lib/phone_cutter.rb +9 -0
  183. data/lib/response.rb +51 -0
  184. data/lib/session_manager.rb +47 -0
  185. data/lib/sms_lib.rb +30 -0
  186. data/lib/social_networks.rb +328 -0
  187. data/lib/tasks/digital_heroes_startkit_tasks.rake +83 -0
  188. data/lib/telegram.rb +33 -0
  189. metadata +497 -0
@@ -0,0 +1,12 @@
1
+ - content_for :head do
2
+ = javascript_include_tag 'avatar', 'data-turbolinks-track': 'reload'
3
+
4
+ .user-avatar
5
+ label for="add-user-avatar" class="add-avatar"
6
+ span id="user-avatar"
7
+ - if @avatar.nil?
8
+ = image_tag 'svg/add-avatar.svg', class: 'user-avatar__img', id: 'state-img'
9
+ - else
10
+ = image_tag @avatar.uploaded_file.url(:default), class: 'user-avatar__img img-present', id: 'state-img'
11
+
12
+ input type="file" class="avatar-input" id="add-user-avatar" name="add-user-avatar" accept="image/*"
@@ -0,0 +1,95 @@
1
+
2
+ //= render 'user_cards/add_avatar'
3
+
4
+ h3 Редактирование профиля
5
+
6
+ / .fl.fw
7
+ / .checkbox-button
8
+ / = check_box_tag 'juridical', @current_user.juridical, (@current_user.juridical ? 'checked' : false), class: 'checkboxes'
9
+ / label for="juridical" Я - представитель компании
10
+ .form.form--profile.js-profile
11
+ .profile__avatar.fl.tc
12
+ = render 'profile/add_avatar'
13
+
14
+ .profile__data.fr
15
+
16
+ - if @current_user.whoami == 'client'
17
+
18
+ #country-notice.form__input.form--profile_country.fl
19
+ i.dn.input-ok
20
+ label Страна
21
+ .ui-widget
22
+ input type="text" data-type="country" id="js-autocomplete-countries" value="#{@country.name if @country.present?}" class="default-form"
23
+ .fl.fw.warning-notice
24
+ | Введите страну
25
+ .fl.fw.error-notice
26
+ | Такого страны нет в базе
27
+
28
+ #city-notice.form__input.form--profile_city.fl
29
+ i.dn.input-ok
30
+ label Город
31
+ .ui-widget
32
+ input type="text" data-type="city" id="js-autocomplete-cities" value="#{@city.name if @city.present?}" class="default-form"
33
+ .fl.fw.warning-notice
34
+ | Введите город
35
+ .fl.fw.error-notice
36
+ | Такого города нет в базе
37
+
38
+ #name-notice.form__input.form--profile_name.fl.fw
39
+ i.dn.input-ok
40
+ label Представьтесь пожалуйста
41
+ input type="text" id="name" name="field-name" maxlength="64" value="#{@name}" class="default-form fields"
42
+
43
+ - if @current_user.whoami == 'client'
44
+
45
+ #birthday-notice.form__input.form--profile_birthday.fl.fw
46
+ label День рождения
47
+ input type="text" id="birthday" name="field-birthday" data-date="#{@birthday}" data-default-view="#{@birthday_default_view}" class="default-form date-input datepicker-here fields"
48
+
49
+ #sex-notice.form__input.form--profile_gender.fl.fw
50
+ label Пол
51
+ = select_tag 'sex_all', options_for_select(@sex_all.collect {|sex| [sex[:name], sex[:id]]}, @sex), class: 'select select-lists', id: 'sex'
52
+
53
+ .signin-inputs
54
+ .signin-inputs__notice
55
+ | Данные этих полей можно использовать при входе на сайт
56
+ - @access_cards.each do |access_card_pack|
57
+ .form__input.fl.fw id="#{access_card_pack[:by]}-notice" class="form--profile_#{access_card_pack[:by]}"
58
+ i.dn.input-ok
59
+ label #{I18n.t(access_card_pack[:by], scope: 'access_cards').capitalize}
60
+ - if access_card_pack[:cards].any?
61
+ - access_card_pack[:cards].each do |access_card|
62
+ input type="text" data-name="#{access_card_pack[:by]}" name="field-#{access_card_pack[:by]}" data-id="#{access_card.id}" value="#{access_card.value}" class="default-form #{'phone-num' if access_card_pack[:by] == 'phone'}"
63
+ .fl.fw.error-notice
64
+ | #{CONFIG[:access_cards][access_card_pack[:by].to_sym][:error_notice]}
65
+ .fl.fw.warning-notice
66
+ | #{CONFIG[:access_cards][access_card_pack[:by].to_sym][:warning_notice]}
67
+ .fl.fw.enter-notice
68
+ | #{CONFIG[:access_cards][access_card_pack[:by].to_sym][:enter_notice]}
69
+ - else
70
+ input type="text" data-name="#{access_card_pack[:by]}" name="field-#{access_card_pack[:by]}" data-id="0" value="" placeholder="Введите ваш #{I18n.t(access_card_pack[:by], scope: 'access_cards').capitalize}" class="default-form #{'phone-num' if access_card_pack[:by] == 'phone'}"
71
+ .fl.fw.error-notice
72
+ | #{CONFIG[:access_cards][access_card_pack[:by].to_sym][:error_notice]}
73
+ .fl.fw.warning-notice
74
+ | #{CONFIG[:access_cards][access_card_pack[:by].to_sym][:warning_notice]}
75
+ .fl.fw.enter-notice
76
+ | #{CONFIG[:access_cards][access_card_pack[:by].to_sym][:enter_notice]}
77
+ - if access_card_pack[:add]
78
+ .add-access_card data-type="#{access_card_pack[:by]}"
79
+ | кнопка добавить
80
+
81
+ #password-notice.form__input.form--profile_password.fl.fw
82
+ i.dn.input-ok
83
+ label Новый пароль
84
+ input type="password" data-name="password" name="field-password" id="password" value="" class="default-form"
85
+ .fl.fw.warning-notice
86
+ | #{CONFIG[:access_cards_info][:password_disclaimer]}
87
+ .fl.fw.error-notice
88
+ | Пароль слишком простой, используйте буквы и цифры
89
+ .fl.fw.enter-notice
90
+ | Придумайте пароль
91
+ i.tsm Оставьте поле пустым, если не нужно менять пароль
92
+
93
+ .form__input.fl.fw.tc
94
+ #save-profile.btn.btn--submit data-user-card-id="#{@current_user_card.id}"
95
+ | Сохранить
@@ -0,0 +1,12 @@
1
+ - set_meta_tags title: 'Профиль'
2
+
3
+ - content_for :head do
4
+ = javascript_include_tag 'reg_fields_checkup', 'data-turbolinks-track': 'reload'
5
+ = javascript_include_tag 'profile', 'data-turbolinks-track': 'reload'
6
+ - if @current_user.whoami == 'client'
7
+ = javascript_include_tag 'profile_geodata', 'data-turbolinks-track': 'reload'
8
+ = javascript_include_tag 'datepicker', 'data-turbolinks-track': 'reload'
9
+
10
+ .user-profile
11
+ .block.block--profile
12
+ = render "profile/user_profile"
@@ -0,0 +1,72 @@
1
+ - content_for :head do
2
+ = javascript_include_tag 'authorization', 'data-turbolinks-track': 'reload'
3
+
4
+ - set_meta_tags title: 'Вход на сайт'
5
+
6
+ .user-input
7
+ .block.block--auth.block--signin
8
+ h3 Вход
9
+ - unless @current_user
10
+
11
+ .fl.fw.registration-main-fields
12
+ input autocomplete="off" autofocus="" name="field-login" type="login" placeholder="Логин (#{@access_cards_placeholder})" class="default-form"
13
+ #login-notice
14
+ .fl.fw.error-notice
15
+ | privet kak dela
16
+ .fl.fw.warning-notice
17
+ | Это не является почтовым ящиком
18
+
19
+ #signin-password.fl.fw
20
+ input autocomplete="off" name="field-password" type="password" placeholder="Пароль" class="default-form"
21
+ #password-notice
22
+ .fl.fw.error-notice
23
+ | Логин и пароль не совпадают
24
+ .fl.fw.warning-notice
25
+ | Пароль не верен, восстановить пароль?
26
+
27
+ #signin-sign.fl.fw
28
+ #sign-button.btn.btn--submit.fl.fw
29
+ | Войти
30
+ = link_to 'Регистрация', registration_path, class: 'btn btn--default-border btn--sm fl fw', data: {turbolinks: 'false'}
31
+
32
+ #signin-resurrection.fl.fw.dn
33
+ = link_to 'Вход', authorization_path, class: 'btn btn--success btn--sm fl fw', data: {turbolinks: 'false'}
34
+ #resurrection-button.btn.btn--default.btn--sm.fl.fw
35
+ | Воcстановить пароль
36
+ #signin-resurrection-link.fl.fw.dn
37
+ a.btn.btn--default.btn--sm.fw
38
+ | Восстановить пароль
39
+
40
+ .resurrection.js-resurrection-ok.fl.fw.tc.dn
41
+ .resurrection__inner
42
+ .resurrection__message
43
+ svg width="56px" height="56px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="resurrection-ok" x="0px" y="0px" viewBox="0 0 56 56" style="enable-background:new 0 0 56 56;" xml:space="preserve"
44
+ g fill="#2DBB68"
45
+ rect id="rect-1" height="4px" transform="rotate(-45)" transform-origin="center" width="24px" x="21" y="28"
46
+ rect id="rect-2" height="4px" transform="rotate(45)" transform-origin="center" width="16px" x="16" y="34"
47
+ p
48
+ | На вашу почту отправлено письмо для восстановления пароля
49
+ = link_to 'Вернуться на главную', root_path, class: 'btn btn--default-border btn--sm', data: {turbolinks: 'false'}
50
+
51
+ .resurrection.js-resurrection-fail.fl.fw.tc.dn
52
+ .resurrection__inner
53
+ .resurrection__message
54
+ svg width="56px" height="56px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="resurrection-fail" x="0px" y="0px" viewBox="0 0 56 56" style="enable-background:new 0 0 56 56;" xml:space="preserve"
55
+ g fill="#db3727"
56
+ rect id="rect-3" height="4px" transform="rotate(-45)" transform-origin="center" width="28px" x="14" y="26"
57
+ rect id="rect-4" height="4px" transform="rotate(45)" transform-origin="center" width="28px" x="14" y="26"
58
+ p
59
+ | Не удалось отправить письмо
60
+ a.btn.btn--success.btn--sm
61
+ | Попробовать еще раз
62
+
63
+ .enter-social.fl.fw
64
+ | или войдите с помощью
65
+ .enter-social__inner.fl.fw
66
+ .btn-social.btn-social--vk.js-enter-social data-social="vk" data-type="oauth"
67
+ .btn-social.btn-social--fb.js-enter-social data-social="fb" data-type="oauth"
68
+ .btn-social.btn-social--gg.js-enter-social data-social="gg" data-type="oauth"
69
+ .btn-social.btn-social--yx.js-enter-social data-social="yx" data-type="oauth"
70
+ .btn-social.btn-social--mr.js-enter-social data-social="mr" data-type="oauth"
71
+ .btn-social.btn-social--st.js-enter-social data-social="st" data-type="openid"
72
+ .btn-social.btn-social--im.js-enter-social data-social="im" data-type="oauth"
@@ -0,0 +1,7 @@
1
+ - set_meta_tags title: 'Невозможно подтвердить регистрацию'
2
+
3
+ .user-input
4
+ .block.block--auth.block--confirmation-fail
5
+ h3 Невозможно подтвердить регистрацию
6
+ p Bероятно срок действия ссылки истёк, она уже использована или вовсе неверная.
7
+ = link_to 'На главную', root_path, class: 'btn btn--default fl fw', data: {turbolinks: 'false'}
@@ -0,0 +1,7 @@
1
+ - set_meta_tags title: 'Регистрация подтверждена'
2
+
3
+ .user-input
4
+ .block.block--auth.block--confirmation-ok
5
+ h3 Регистрация подтверждена
6
+ p Благодарим вас за подтверждение регистрации.
7
+ = link_to 'Перейти в профиль', profile_path, class: 'btn btn--default fl fw', data: {turbolinks: 'false'}
@@ -0,0 +1,86 @@
1
+ - content_for :head do
2
+ = javascript_include_tag 'reg_fields_checkup', 'data-turbolinks-track': 'reload'
3
+ = javascript_include_tag 'registration', 'data-turbolinks-track': 'reload'
4
+
5
+ - set_meta_tags title: 'Регистрация'
6
+
7
+ .user-input
8
+ .block.block--auth.block--registration
9
+ h3
10
+ | Регистрация
11
+ - unless @current_user
12
+
13
+ / .fl.fw
14
+ / .checkbox-button
15
+ / input type="checkbox" id="juridical" value="0" name="juridical" class="checkboxes"
16
+ / label for="juridical" Я - представитель компании
17
+
18
+ #nickname-notice.form__input.fl.fw
19
+ i.dn.input-ok
20
+ input autocomplete="off" autofocus="" data-name="nickname" name="field-nickname" type="text" placeholder="Придумайте Никнейм" class="default-form fields"
21
+ .fl.fw.warning-notice
22
+ | Такой Никнейм уже существует
23
+ .fl.fw.error-notice
24
+ | Это не является нинеймом
25
+ .fl.fw.enter-notice
26
+ | Введите ваш никнейм корректно
27
+ i.fa.fa-envelope-o aria-hidden="true"
28
+
29
+ #email-notice.form__input.fl.fw
30
+ i.dn.input-ok
31
+ input autocomplete="off" data-name="email" name="field-email" type="text" placeholder="Ваш Email" class="default-form fields"
32
+ .fl.fw.error-notice
33
+ | Это не является почтовым ящиком
34
+ .fl.fw.warning-notice
35
+ | Этот адрес занят другим пользователем
36
+ .fl.fw.enter-notice
37
+ | Введите ваш Email
38
+ i.fa.fa-envelope-o aria-hidden="true"
39
+
40
+ #phone-notice.form__input.fl.fw
41
+ i.dn.input-ok
42
+ input autocomplete="off" data-name="phone" name="field-phone" placeholder="Телефон" type="tel" class="default-form phone-num fields"
43
+ .fl.fw.error-notice
44
+ | Введите номер полностью
45
+ .fl.fw.warning-notice
46
+ | Этот номер занят другим пользователем
47
+ .fl.fw.enter-notice
48
+ | Введите ваш телефон
49
+
50
+ #password-notice.form__input.fl.fw
51
+ i.dn.input-ok
52
+ input autocomplete="off" type="password" data-name="password" name="field-password" placeholder="Придумайте пароль" class="default-form fields"
53
+ .fl.fw.warning-notice
54
+ | Придумайте пароль не менее 8 символов
55
+ .fl.fw.error-notice
56
+ | Пароль слишком простой, используйте буквы и цифры, не менее 8 символов
57
+ .fl.fw.enter-notice
58
+ | Придумайте пароль
59
+ .phone-confirm.dn
60
+ #confirm-phone.btn Отправить СМС с кодом
61
+ input#field-confirm maxlength="4" placeholder=("Код из СМС") type="text" class="default-form fields"
62
+
63
+ .copyright.fl.fw.tc.tsm
64
+ | Регистрируясь, вы соглашаетесь с
65
+ br
66
+ a href="/copyright" title="Пользовательское соглашение" target="_blank"
67
+ | пользовательским соглашением
68
+
69
+ #reg-button.btn.btn--submit.fl.fw
70
+ | Зарегистрироваться
71
+
72
+ = link_to 'Вход', authorization_path, class: 'btn btn--default-border btn--sm fl fw', data: {turbolinks: 'false'}
73
+
74
+ .enter-social.fl.fw
75
+ | или войдите с помощью
76
+ .enter-social__inner.fl.fw
77
+ .btn-social.btn-social--vk.js-enter-social data-social="vk" data-type="oauth"
78
+ .btn-social.btn-social--fb.js-enter-social data-social="fb" data-type="oauth"
79
+ .btn-social.btn-social--gg.js-enter-social data-social="gg" data-type="oauth"
80
+ .btn-social.btn-social--yx.js-enter-social data-social="yx" data-type="oauth"
81
+ .btn-social.btn-social--mr.js-enter-social data-social="mr" data-type="oauth"
82
+ .btn-social.btn-social--st.js-enter-social data-social="st" data-type="openid"
83
+ .btn-social.btn-social--im.js-enter-social data-social="im" data-type="oauth"
84
+
85
+ .fl.fw.tc.tsm
86
+ p Ваши персональные данные под надежной защитой и доступны только вам.
@@ -0,0 +1,19 @@
1
+ - content_for :head do
2
+ = javascript_include_tag 'resurrection', 'data-turbolinks-track': 'reload'
3
+
4
+ - set_meta_tags title: 'Восстановление доступа на сайт'
5
+
6
+ .user-input
7
+ .block.block--auth.block--resurrection
8
+ h3
9
+ | Восстановление пароля
10
+ p Придумайте и введите новый пароль не менее 8 символов
11
+ - unless @current_user
12
+ .fl.fw
13
+ input autocomplete="off" name="resurrection-code" type="hidden" value="#{@resurrection_code}"
14
+ input autocomplete="off" name="field-password" type="password" placeholder="Придумайте пароль" class="default-form"
15
+ #password-notice
16
+ .fl.fw.enter-notice
17
+ | Придумайте пароль не менее 8 символов
18
+ #sign-resurrection-button.fl.fw.btn.btn--success
19
+ | Сохранить и войти
@@ -0,0 +1,7 @@
1
+ - set_meta_tags title: 'Восстановление доступа на сайт'
2
+
3
+ .user-input
4
+ .block.block--auth.block--access-code
5
+ h3
6
+ | Bероятно срок действия ссылки истёк, или она уже использована.
7
+ = link_to 'На главную', root_path, class: 'btn btn--default fl fw', data: {turbolinks: 'false'}
@@ -0,0 +1,7 @@
1
+ - set_meta_tags title: 'Восстановление доступа на сайт'
2
+
3
+ .user-input
4
+ .block.block--auth.block--no-access-code
5
+ h3
6
+ | У Вас нет кода доступа
7
+ = link_to 'На главную', root_path, class: 'btn btn--default fl fw', data: {turbolinks: 'false'}
@@ -0,0 +1,191 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
+ <html style="width:100%;font-family:arial, 'helvetica neue', helvetica, sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;padding:0;Margin:0;">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta content="width=device-width, initial-scale=1" name="viewport">
6
+ <meta name="x-apple-disable-message-reformatting">
7
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
8
+ <meta content="telephone=no" name="format-detection">
9
+ <title></title>
10
+ <!--[if (mso 16)]>
11
+ <style type="text/css">
12
+ a {text-decoration: none;}
13
+ </style>
14
+ <![endif]-->
15
+ <!--[if gte mso 9]><style>sup { font-size: 100% !important; }</style><![endif]-->
16
+ <style>
17
+ @media only screen and (max-width: 600px) {p, ul li, ol li, a { font-size: 16px } h1 { font-size: 30px; text-align: center } h2 { font-size: 26px; text-align: center } h3 { font-size: 20px; text-align: center } h1 a { font-size: 30px } h2 a { font-size: 26px } h3 a { font-size: 20px } .es-menu td a { font-size: 16px !important } .es-header-body p, .es-header-body ul li, .es-header-body ol li, .es-header-body a { font-size: 16px } .es-footer-body p, .es-footer-body ul li, .es-footer-body ol li, .es-footer-body a { font-size: 16 px } .es-infoblock p, .es-infoblock ul li, .es-infoblock ol li, .es-infoblock a { font-size: 12px } *[class="gmail-fix"] { display: none !important } .es-m-txt-c, .es-m-txt-c h1, .es-m-txt-c h2, .es-m-txt-c h3 { text-align: center !important } .es-m-txt-r, .es-m-txt-r h1, .es-m-txt-r h2, .es-m-txt-r h3 { text-align: right !important } .es-m-txt-l, .es-m-txt-l h1, .es-m-txt-l h2, .es-m-txt-l h3 { text-align: left !important } .es-m-txt-r a img, .es-m-txt-c a img, .es-m-txt-l a img { display: inline !important } .es-button-border { display: block !important } .es-button { font-size: 20px !important; display: block !important; border-width: 10px 0px 10px 0px !important } .es-btn-fw { border-width: 10px 0px !important; text-align: center !important } .es-adaptive table, .es-btn-fw, .es-btn-fw-brdr, .es-left, .es-right { width: 100% !important } .es-content table, .es-header table, .es-footer table, .es-content, .es-footer, .es-header { width: 100% !important; max-width: 600px !important } .es-adapt-td { display: block !important; width: 100% !important } .adapt-img { width: 100% !important; height: auto !important } .es-m-p0 { padding: 0px !important } .es-m-p0r { padding-right: 0px !important } .es-m-p0l { padding-left: 0px !important } .es-m-p0t { padding-top: 0px !important } .es-m-p0b { padding-bottom: 0 !important } .es-m-p20b { padding-bottom: 20px !important } .es-hidden { display: none !important } table.es-table-not-adapt, .esd-block-html table { width: auto !important } table.es-social { display: inline-block !important } table.es-social td { display: inline-block !important } }
18
+
19
+ </style>
20
+ <style>
21
+ #outlook a { padding: 0; } .ExternalClass { width: 100%; } .ExternalClass, .ExternalClass p, .ExternalClass span, .ExternalClass font, .ExternalClass td, .ExternalClass div { line-height: 100%; } .es-button { mso-style-priority: 100 !important; text-decoration: none !important; } a[x-apple-data-detectors] { color: inherit !important; text-decoration: none !important; font-size: inherit !important; font-family: inherit !important; font-weight: inherit !important; line-height: inherit !important; } @-ms-viewport { width: device-width; }
22
+ </style>
23
+ </head>
24
+ <body style="width:100%;font-family:arial, 'helvetica neue', helvetica, sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;padding:0;Margin:0;">
25
+ <div class="es-wrapper-color" style="background-color:rgb(246, 246, 246);">
26
+ <!--[if gte mso 9]>
27
+ <v:background xmlns:v="urn:schemas-microsoft-com:vml" fill="t">
28
+ <v:fill type="tile" src="" color="#f6f6f6"></v:fill>
29
+ </v:background>
30
+ <![endif]-->
31
+ <table cellpadding="0" cellspacing="0" class="es-wrapper" width="100%" style="mso-table-lspace:0pt;mso-table-rspace:0pt;border-collapse:collapse;border-spacing:0px;padding:0;Margin:0;width:100%;height:100%;background-repeat:repeat;background-position:center top;">
32
+ <tbody>
33
+ <tr style="border-collapse:collapse;">
34
+ <td valign="top" style="padding:0;Margin:0;">
35
+ <table cellpadding="0" cellspacing="0" class="es-content" align="center" style="mso-table-lspace:0pt;mso-table-rspace:0pt;border-collapse:collapse;border-spacing:0px;table-layout:fixed !important;width:100%;">
36
+ <tbody>
37
+ <tr style="border-collapse:collapse;">
38
+ <td align="center" style="padding:0;Margin:0;">
39
+ <table class="es-content-body" align="center" cellpadding="0" cellspacing="0" width="600" style="mso-table-lspace:0pt;mso-table-rspace:0pt;border-collapse:collapse;border-spacing:0px;background-color:transparent;">
40
+ <tbody>
41
+ <tr style="border-collapse:collapse;">
42
+ <td class="es-p20t es-p20b es-p20r es-p20l" align="left" style="Margin:0;padding-top:20px;padding-bottom:20px;padding-left:20px;padding-right:20px;">
43
+ <!--[if mso]><table width="560" cellpadding="0" cellspacing="0"><tr><td width="356" valign="top"><![endif]-->
44
+ <table cellpadding="0" cellspacing="0" class="es-left" align="left" style="mso-table-lspace:0pt;mso-table-rspace:0pt;border-collapse:collapse;border-spacing:0px;float:left;">
45
+ <tbody>
46
+ <tr style="border-collapse:collapse;">
47
+ <td width="356" class="es-m-p0r es-m-p20b" valign="top" align="center" style="padding:0;Margin:0;">
48
+ <table cellpadding="0" cellspacing="0" width="100%" style="mso-table-lspace:0pt;mso-table-rspace:0pt;border-collapse:collapse;border-spacing:0px;">
49
+ <tbody>
50
+ <tr style="border-collapse:collapse;">
51
+ <td align="left" class="es-infoblock es-m-txt-c" style="padding:0;Margin:0;line-height:120%;font-size:12px;color:rgb(204, 204, 204);"> <p style="Margin:0;-webkit-text-size-adjust:none;-ms-text-size-adjust:none;mso-line-height-rule:exactly;font-size:24px;font-family:arial, 'helvetica neue', helvetica, sans-serif;line-height:120%;color:rgb(204, 204, 204);">motorsportparts.ru</p></td>
52
+ </tr>
53
+ </tbody>
54
+ </table> </td>
55
+ </tr>
56
+ </tbody>
57
+ </table>
58
+ <!--[if mso]></td><td width="20"></td><td width="184" valign="top"><![endif]-->
59
+ <table cellpadding="0" cellspacing="0" align="right" style="mso-table-lspace:0pt;mso-table-rspace:0pt;border-collapse:collapse;border-spacing:0px;">
60
+ <tbody>
61
+ <tr style="border-collapse:collapse;">
62
+ <td width="184" align="left" style="padding:0;Margin:0;">
63
+ <table cellpadding="0" cellspacing="0" width="100%" style="mso-table-lspace:0pt;mso-table-rspace:0pt;border-collapse:collapse;border-spacing:0px;">
64
+ <tbody>
65
+ <tr style="border-collapse:collapse;">
66
+ <td align="center" style="padding:0;Margin:0;display:none;"></td>
67
+ </tr>
68
+ </tbody>
69
+ </table> </td>
70
+ </tr>
71
+ </tbody>
72
+ </table>
73
+ <!--[if mso]></td></tr></table><![endif]--> </td>
74
+ </tr>
75
+ </tbody>
76
+ </table> </td>
77
+ </tr>
78
+ </tbody>
79
+ </table>
80
+ <table cellpadding="0" cellspacing="0" class="es-content" align="center" style="mso-table-lspace:0pt;mso-table-rspace:0pt;border-collapse:collapse;border-spacing:0px;table-layout:fixed !important;width:100%;">
81
+ <tbody>
82
+ <tr style="border-collapse:collapse;">
83
+ <td align="center" style="padding:0;Margin:0;">
84
+ <table bgcolor="#ffffff" class="es-content-body" align="center" cellpadding="0" cellspacing="0" width="600" style="mso-table-lspace:0pt;mso-table-rspace:0pt;border-collapse:collapse;border-spacing:0px;background-color:rgb(255, 255, 255);">
85
+ <tbody>
86
+ <tr style="border-collapse:collapse;">
87
+ <td class="es-p40t es-p20b es-p40r es-p40l" align="left" style="Margin:0;padding-bottom:20px;padding-top:40px;padding-left:40px;padding-right:40px;">
88
+ <table cellpadding="0" cellspacing="0" width="100%" style="mso-table-lspace:0pt;mso-table-rspace:0pt;border-collapse:collapse;border-spacing:0px;">
89
+ <tbody>
90
+ <tr style="border-collapse:collapse;">
91
+ <td width="520" align="center" valign="top" style="padding:0;Margin:0;">
92
+ <table cellpadding="0" cellspacing="0" width="100%" style="mso-table-lspace:0pt;mso-table-rspace:0pt;border-collapse:collapse;border-spacing:0px;">
93
+ <tbody>
94
+ <tr style="border-collapse:collapse;">
95
+ <td align="left" class="es-p15t es-p15b" style="padding:0;Margin:0;padding-top:15px;padding-bottom:15px;"><h2 style="Margin:0;line-height:120%;mso-line-height-rule:exactly;font-family:arial, 'helvetica neue', helvetica, sans-serif;font-size:24px;font-style:normal;font-weight:normal;color:rgb(51, 51, 51);">Добро пожаловать!</h2></td>
96
+ </tr>
97
+ <tr style="border-collapse:collapse;">
98
+ <td align="left" class="es-p20t" style="padding:0;Margin:0;padding-top:20px;"><p style="Margin:0;-webkit-text-size-adjust:none;-ms-text-size-adjust:none;mso-line-height-rule:exactly;font-size:14px;font-family:arial, 'helvetica neue', helvetica, sans-serif;line-height:150%;color:rgb(51, 51, 51);">Первый абзац.</p></td>
99
+ </tr>
100
+ <tr style="border-collapse:collapse;">
101
+ <td align="left" class="es-p15t" style="padding:0;Margin:0;padding-top:15px;"><p style="Margin:0;-webkit-text-size-adjust:none;-ms-text-size-adjust:none;mso-line-height-rule:exactly;font-size:14px;font-family:arial, 'helvetica neue', helvetica, sans-serif;line-height:150%;color:rgb(51, 51, 51);">Второй абзац.</p></td>
102
+ </tr>
103
+ <tr style="border-collapse:collapse;">
104
+ <td align="center" class="es-p30t es-p15b es-p10r es-p10l" style="Margin:0;padding-left:10px;padding-right:10px;padding-bottom:15px;padding-top:30px;"> <span class="es-button-border" style="border-style:solid;border-color:rgb(44, 181, 67);background:rgb(219, 55, 39);border-width:0px 0px 2px 0px;display:inline-block;border-radius:4px;width:auto;border-bottom-width:0px;"> <a href="" class="es-button" target="_blank" style="mso-style-priority:100 !important;text-decoration:none !important;-webkit-text-size-adjust:none;-ms-text-size-adjust:none;mso-line-height-rule:exactly;font-family:arial, 'helvetica neue', helvetica, sans-serif;font-size:14px;color:rgb(255, 255, 255);border-style:solid;border-color:rgb(219, 55, 39);border-width:15px 25px;display:inline-block;background:rgb(219, 55, 39);border-radius:4px;font-weight:normal;font-style:normal;line-height:120%;width:auto;text-align:center;"> Кнопка </a> </span> </td>
105
+ </tr>
106
+ </tbody>
107
+ </table> </td>
108
+ </tr>
109
+ </tbody>
110
+ </table> </td>
111
+ </tr>
112
+ </tbody>
113
+ </table> </td>
114
+ </tr>
115
+ </tbody>
116
+ </table>
117
+ <table cellpadding="0" cellspacing="0" class="es-footer" align="center" style="mso-table-lspace:0pt;mso-table-rspace:0pt;border-collapse:collapse;border-spacing:0px;table-layout:fixed !important;width:100%;background-color:transparent;background-repeat:repeat;background-position:center top;">
118
+ <tbody>
119
+ <tr style="border-collapse:collapse;">
120
+ <td align="center" style="padding:0;Margin:0;">
121
+ <table class="es-footer-body" align="center" cellpadding="0" cellspacing="0" width="600" style="mso-table-lspace:0pt;mso-table-rspace:0pt;border-collapse:collapse;border-spacing:0px;background-color:transparent;">
122
+ <tbody>
123
+ <tr style="border-collapse:collapse;">
124
+ <td class="es-p20t es-p20b es-p20r es-p20l" align="left" style="Margin:0;padding-top:20px;padding-bottom:20px;padding-left:20px;padding-right:20px;">
125
+ <table cellpadding="0" cellspacing="0" width="100%" style="mso-table-lspace:0pt;mso-table-rspace:0pt;border-collapse:collapse;border-spacing:0px;">
126
+ <tbody>
127
+ <tr style="border-collapse:collapse;">
128
+ <td width="560" align="center" valign="top" style="padding:0;Margin:0;">
129
+ <table cellpadding="0" cellspacing="0" width="100%" style="mso-table-lspace:0pt;mso-table-rspace:0pt;border-collapse:collapse;border-spacing:0px;">
130
+ <tbody>
131
+ <tr style="border-collapse:collapse;">
132
+ <td align="center" class="es-p10t es-p10b" style="padding:0;Margin:0;padding-top:10px;padding-bottom:10px;"> <p style="Margin:0;-webkit-text-size-adjust:none;-ms-text-size-adjust:none;mso-line-height-rule:exactly;font-size:11px;font-family:arial, 'helvetica neue', helvetica, sans-serif;line-height:150%;color:rgb(51, 51, 51);">Информация о футере может быть размещена здесь</p> </td>
133
+ </tr>
134
+ <tr style="border-collapse:collapse;">
135
+ <td align="center" class="es-p10t es-p10b" style="padding:0;Margin:0;padding-top:10px;padding-bottom:10px;"><p style="Margin:0;-webkit-text-size-adjust:none;-ms-text-size-adjust:none;mso-line-height-rule:exactly;font-size:11px;font-family:arial, 'helvetica neue', helvetica, sans-serif;line-height:150%;color:rgb(51, 51, 51);">© 2018 Название Вашей компании</p></td>
136
+ </tr>
137
+ </tbody>
138
+ </table> </td>
139
+ </tr>
140
+ <tr style="border-collapse:collapse;">
141
+ <td width="560" align="left" style="padding:0;Margin:0;">
142
+ <table cellpadding="0" cellspacing="0" width="100%" style="mso-table-lspace:0pt;mso-table-rspace:0pt;border-collapse:collapse;border-spacing:0px;">
143
+ <tbody>
144
+ <tr style="border-collapse:collapse;">
145
+ <td align="center" class="es-infoblock es-m-txt-c es-p10t es-p10b" style="padding:0;Margin:0;padding-top:10px;padding-bottom:10px;line-height:120%;font-size:12px;color:rgb(204, 204, 204);"><p style="Margin:0;-webkit-text-size-adjust:none;-ms-text-size-adjust:none;mso-line-height-rule:exactly;font-size:12px;font-family:arial, 'helvetica neue', helvetica, sans-serif;line-height:120%;color:rgb(204, 204, 204);"><a target="_blank" href="http://stripo.email" style="-webkit-text-size-adjust:none;-ms-text-size-adjust:none;mso-line-height-rule:exactly;font-family:arial, 'helvetica neue', helvetica, sans-serif;font-size:12px;text-decoration:underline;color:rgb(44, 181, 67);">Просмотреть в браузере</a></p></td>
146
+ </tr>
147
+ </tbody>
148
+ </table> </td>
149
+ </tr>
150
+ </tbody>
151
+ </table> </td>
152
+ </tr>
153
+ </tbody>
154
+ </table> </td>
155
+ </tr>
156
+ </tbody>
157
+ </table>
158
+ <table cellpadding="0" cellspacing="0" class="es-content" align="center" style="mso-table-lspace:0pt;mso-table-rspace:0pt;border-collapse:collapse;border-spacing:0px;table-layout:fixed !important;width:100%;">
159
+ <tbody>
160
+ <tr style="border-collapse:collapse;">
161
+ <td align="center" style="padding:0;Margin:0;">
162
+ <table class="es-content-body" align="center" cellpadding="0" cellspacing="0" width="600" style="mso-table-lspace:0pt;mso-table-rspace:0pt;border-collapse:collapse;border-spacing:0px;background-color:transparent;">
163
+ <tbody>
164
+ <tr style="border-collapse:collapse;">
165
+ <td class="es-p30b es-p20r es-p20l" align="left" style="padding:0;Margin:0;padding-left:20px;padding-right:20px;padding-bottom:30px;">
166
+ <table cellpadding="0" cellspacing="0" width="100%" style="mso-table-lspace:0pt;mso-table-rspace:0pt;border-collapse:collapse;border-spacing:0px;">
167
+ <tbody>
168
+ <tr style="border-collapse:collapse;">
169
+ <td width="560" align="center" valign="top" style="padding:0;Margin:0;">
170
+ <table cellpadding="0" cellspacing="0" width="100%" style="mso-table-lspace:0pt;mso-table-rspace:0pt;border-collapse:collapse;border-spacing:0px;">
171
+ <tbody>
172
+ <tr style="border-collapse:collapse;">
173
+ <td align="center" style="padding:0;Margin:0;display:none;"></td>
174
+ </tr>
175
+ </tbody>
176
+ </table> </td>
177
+ </tr>
178
+ </tbody>
179
+ </table> </td>
180
+ </tr>
181
+ </tbody>
182
+ </table> </td>
183
+ </tr>
184
+ </tbody>
185
+ </table> </td>
186
+ </tr>
187
+ </tbody>
188
+ </table>
189
+ </div>
190
+ </body>
191
+ </html>