digital_heroes_startkit 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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>