109 Commits

Author SHA1 Message Date
174f702e3e Merge pull request 'dev' (#66) from dev into main
Reviewed-on: #66
2025-03-21 17:54:29 +03:00
f6f4bfa2ab reklama code insert 2025-03-21 17:53:06 +03:00
f625537b6f reklama code insert 2025-03-21 17:52:35 +03:00
794d5e810d reklama code insert 2025-03-21 16:58:12 +03:00
a5c0985093 reklama code insert 2025-03-21 16:54:43 +03:00
70b481480f reklama code insert 2025-03-21 16:53:40 +03:00
a37e009109 reklama code insert 2025-03-21 16:52:37 +03:00
191ceaca36 reklama code insert 2025-03-21 16:51:46 +03:00
53ec69d27c reklama code insert 2025-03-21 16:50:03 +03:00
26f29e4353 reklama code insert 2025-03-21 16:47:19 +03:00
e1f239d6ee reklama code insert 2025-03-21 16:44:30 +03:00
9cf25e37ed Merge pull request 'yandex code insert' (#65) from dev into main
Reviewed-on: #65
2025-03-21 16:41:05 +03:00
355abb1add yandex code insert 2025-03-21 16:40:27 +03:00
0c8db13341 Merge pull request 'dev' (#64) from dev into main
Reviewed-on: #64
2025-03-21 15:38:29 +03:00
a3795dd267 tik tok code insert 2025-03-21 15:37:40 +03:00
90ffcd090c tik tok code insert 2025-03-21 15:37:05 +03:00
e5575398a3 Merge pull request 'dev' (#63) from dev into main
Reviewed-on: #63
2025-03-11 11:01:01 +03:00
acb52aef73 Merge remote-tracking branch 'origin/dev' into dev 2025-03-11 10:59:50 +03:00
fa04e5275f google code insert 2025-03-11 10:59:39 +03:00
b31f99aa94 Merge pull request 'correct registration js metrics' (#62) from dev into main
Reviewed-on: #62
2025-03-05 15:04:55 +03:00
SBD
0288c05e2b correct registration js metrics 2025-03-05 15:03:41 +03:00
c5baa2d9ab Merge pull request 'pixel code replace' (#61) from dev into main
Reviewed-on: #61
2025-02-24 13:33:01 +03:00
9c96d8c253 pixel code replace 2025-02-24 13:31:54 +03:00
3aecf2eb08 Merge pull request '0.0.165 routes' (#60) from dev into main
Reviewed-on: #60
2025-02-18 08:37:26 +03:00
SBD
423394a9d9 0.0.165 routes 2025-02-17 22:53:58 +03:00
4c28c17088 Merge pull request '2.1.39 fix users_notify_by_result_search_matches' (#59) from dev into main
Reviewed-on: #59
2025-02-17 18:25:32 +03:00
SDE
3b0e1f6524 2.1.39 fix users_notify_by_result_search_matches 2025-02-17 18:22:23 +03:00
f376656937 Merge pull request 'dev' (#58) from dev into main
Reviewed-on: #58
2025-02-12 15:02:23 +03:00
c57eec05c9 pixel code replace 2025-02-12 15:01:47 +03:00
197f910b82 pixel code replace 2025-02-12 15:00:30 +03:00
a5cca5f23e Merge pull request 'pixel code replace' (#57) from dev into main
Reviewed-on: #57
2025-02-10 17:17:39 +03:00
a940f2ff0d pixel code replace 2025-02-10 17:17:09 +03:00
e454fd2343 Merge pull request 'pixel code replace' (#56) from dev into main
Reviewed-on: #56
2025-02-10 15:00:27 +03:00
66a1170221 pixel code replace 2025-02-10 14:59:53 +03:00
8a175ee357 Merge pull request 'pixel code replace' (#55) from dev into main
Reviewed-on: #55
2025-02-09 01:08:13 +03:00
5f403710d1 pixel code replace 2025-02-09 01:07:16 +03:00
6626840fa9 Merge pull request 'pixel code replace' (#54) from dev into main
Reviewed-on: #54
2025-02-07 11:22:43 +03:00
529fb3fc5d pixel code replace 2025-02-07 11:21:34 +03:00
SDE
d1c3e68d6d 2.1.31 check problem send mail 2025-02-03 12:38:50 +03:00
SDE
d816733b0d 2.1.30 check problem send mail 2025-02-03 11:18:53 +03:00
SDE
168ae345d6 2.1.29 check problem send mail 2025-02-03 11:02:42 +03:00
d071458032 Merge pull request 'facebook domain verification add' (#53) from dev into main
Reviewed-on: #53
2025-02-03 00:51:31 +03:00
cae627f0b0 facebook domain verification add 2025-02-03 00:49:56 +03:00
7102af7d2d Merge pull request 'facebook domain verification add' (#52) from dev into main
Reviewed-on: #52
2025-02-03 00:33:26 +03:00
5ff75a4a80 facebook domain verification add 2025-02-03 00:32:03 +03:00
495cc43246 Merge pull request 'facebook domain verification add' (#51) from dev into main
Reviewed-on: #51
2025-02-03 00:12:56 +03:00
80deab3c42 facebook domain verification add 2025-02-03 00:12:08 +03:00
360493e564 Merge pull request 'facebook domain verification add' (#50) from dev into main
Reviewed-on: #50
2025-01-29 09:46:44 +03:00
6030998018 facebook domain verification add 2025-01-29 09:45:18 +03:00
faac300903 Merge pull request 'facebook domain verification add' (#49) from dev into main
Reviewed-on: #49
2025-01-27 23:17:18 +03:00
abaff023cd facebook domain verification add 2025-01-27 23:16:40 +03:00
a6d7a8c8e0 Merge pull request 'meta pixel add' (#48) from dev into main
Reviewed-on: #48
2025-01-24 18:07:20 +03:00
4dbe424f84 meta pixel add 2025-01-24 18:05:48 +03:00
2f94bf20be Merge pull request 'telegram link fix' (#47) from dev into main
Reviewed-on: #47
2025-01-17 14:54:41 +03:00
7488a9f8c8 telegram link fix 2025-01-17 14:52:56 +03:00
ee1107c976 Merge pull request '2.1.23 fix send support mail' (#46) from dev into main
Reviewed-on: #46
2025-01-16 15:29:18 +03:00
SDE
b759ce2d5a 2.1.23 fix send support mail 2025-01-16 15:28:06 +03:00
b4c8ffe95d Merge pull request 'telegram link fix' (#45) from dev into main
Reviewed-on: #45
2024-12-13 16:42:28 +03:00
84c88ba406 telegram link fix 2024-12-13 16:41:40 +03:00
86e6a2acc1 Merge pull request 'TRI-303 correct texts mistakes' (#44) from dev into main
Reviewed-on: #44
2024-12-11 14:56:04 +03:00
b2f7612452 TRI-303 correct texts mistakes 2024-12-11 14:54:56 +03:00
432409b3d8 Merge pull request 'TRI-302 add yandex metrika and goals for buttons and urls for landings' (#43) from dev into main
Reviewed-on: #43
2024-12-09 12:21:54 +03:00
09769542f9 TRI-302 add yandex metrika and goals for buttons and urls for landings 2024-12-09 12:19:29 +03:00
fca75a30aa Merge pull request 'TRI-302 add yandex metrika for landings' (#42) from dev into main
Reviewed-on: #42
2024-12-07 16:23:34 +03:00
a90d7c06a9 TRI-302 add yandex metrika for landings 2024-12-07 16:22:23 +03:00
6e342ca021 Merge pull request '1.8.11 fix stat landings' (#41) from dev into main
Reviewed-on: #41
2024-12-05 14:03:47 +03:00
SDE
4ce12a5428 1.8.11 fix stat landings 2024-12-05 14:02:24 +03:00
d89619fe61 Merge pull request 'TRI-283: fix video2' (#40) from dev into main
Reviewed-on: #40
2024-12-04 15:02:39 +03:00
7ba65e73ae TRI-283: fix video2 2024-12-04 15:00:44 +03:00
b0387362b5 Merge pull request 'TRI-283: fix video1' (#39) from dev into main
Reviewed-on: #39
2024-12-04 13:44:40 +03:00
4a58a47a8e TRI-283: fix video1 2024-12-04 10:02:23 +03:00
c284c1a784 Merge pull request 'TRI-297 add facebook pixel' (#38) from dev into main
Reviewed-on: #38
2024-12-03 23:37:36 +03:00
e8506e1b4e TRI-297 add facebook pixel 2024-12-03 23:33:09 +03:00
a7dd676a76 Merge pull request 'dev' (#37) from dev into main
Reviewed-on: #37
2024-12-03 12:49:46 +03:00
61805df66b TRI-297 add facebook pixel 2024-12-03 12:47:18 +03:00
e98d426324 TRI-297 add facebook pixel 2024-12-03 12:46:13 +03:00
6c062ce3c8 TRI-297 add facebook pixel 2024-12-03 12:43:29 +03:00
dd4134f2d7 Merge pull request 'TRI-283: reload images' (#36) from dev into main
Reviewed-on: #36
2024-12-02 13:41:34 +03:00
8f47d4fb65 TRI-283: reload images 2024-12-02 13:38:09 +03:00
c1398284c7 Merge pull request 'TRI-283: reload images + text edit' (#35) from dev into main
Reviewed-on: #35
2024-11-29 22:24:34 +03:00
63e507d0ff TRI-283: reload images + text edit 2024-11-29 13:39:44 +03:00
a9b4fd95c3 Merge pull request 'dev' (#34) from dev into main
Reviewed-on: #34
2024-11-29 10:21:52 +03:00
5a16466766 Merge remote-tracking branch 'origin/dev' into dev 2024-11-28 13:37:30 +03:00
4b0c923ec0 1.3.6 recovery password TRI-261 2024-11-28 13:37:14 +03:00
0fe7aa189c Merge pull request 'TRI-283: fix nags' (#33) from dev into main
Reviewed-on: #33
2024-11-28 11:57:31 +03:00
87f67aa24a TRI-283: fix nags 2024-11-28 07:47:48 +03:00
9133bfd8fa Merge pull request 'dev' (#32) from dev into main
Reviewed-on: #32
2024-11-27 16:45:02 +03:00
93e48f3cbc TRI-283: fix scroll 2024-11-27 16:23:28 +03:00
baadc67fcf Merge remote-tracking branch 'origin/dev' into dev 2024-11-27 16:14:00 +03:00
bc16aea3a4 1.3.5 registration TRI-265 2024-11-27 16:13:50 +03:00
aa1657bd10 Merge pull request 'dev' (#31) from dev into main
Reviewed-on: #31
2024-11-26 22:32:25 +03:00
10411dd714 Merge pull request 'dev' (#30) from dev into main
Reviewed-on: #30
2024-11-18 15:07:50 +03:00
4be3686d2b Merge pull request 'dev' (#29) from dev into main
Reviewed-on: #29
2024-11-14 14:41:27 +03:00
70e1fa2a10 Merge pull request '1.7.19 get_my_routes_ajax log fail' (#28) from dev into main
Reviewed-on: #28
2024-11-12 17:36:48 +03:00
3a14430cd5 Merge pull request 'dev' (#27) from dev into main
Reviewed-on: #27
2024-11-12 16:08:27 +03:00
73621de710 Merge pull request 'dev' (#26) from dev into main
Reviewed-on: #26
2024-11-12 13:10:14 +03:00
5cbae093e9 Merge pull request 'dev' (#25) from dev into main
Reviewed-on: #25
2024-11-11 07:39:53 +03:00
fdaa18c0e6 Merge pull request 'dev' (#24) from dev into main
Reviewed-on: #24
2024-11-06 17:30:10 +03:00
ff6ee93497 Merge pull request 'dev' (#23) from dev into main
Reviewed-on: #23
2024-11-03 23:44:45 +03:00
d62261066f Merge pull request 'dev' (#22) from dev into main
Reviewed-on: #22
2024-10-24 10:40:47 +03:00
2a852cbb51 Merge pull request 'TRI-274 replace password recovery text' (#21) from dev into main
Reviewed-on: #21
2024-10-23 13:35:45 +03:00
f561c32526 Merge pull request 'dev' (#20) from dev into main
Reviewed-on: #20
2024-10-22 17:41:12 +03:00
cd36747b5c Merge pull request 'dev' (#19) from dev into main
Reviewed-on: #19
2024-10-22 16:50:19 +03:00
d020bdf9d0 TRI-262 replace invocation in subscription mail template 2024-10-18 15:44:38 +03:00
cd323ab66c Merge pull request 'TRI-262 replace invocation in subscription mail template' (#18) from dev into main
Reviewed-on: #18
2024-10-18 00:47:14 +03:00
0ac236d2ff Merge pull request 'dev' (#17) from dev into main
Reviewed-on: #17
2024-10-17 18:20:26 +03:00
769a42ec8b Merge pull request 'dev' (#16) from dev into main
Reviewed-on: #16
2024-10-10 14:37:43 +03:00
60ff29b23f Merge pull request 'fix tiktok link' (#15) from dev into main
Reviewed-on: #15
2024-10-05 11:26:01 +03:00
15ff3d37fc Merge pull request 'dev' (#14) from dev into main
Reviewed-on: #14
2024-10-02 13:52:51 +03:00
41 changed files with 372 additions and 98 deletions

View File

@@ -203,6 +203,8 @@ def mailing_subscribe_ajax(request):
def send_message_ajax(request):
print('send_message_ajax')
if request.method != 'POST':
raise Http404
@@ -311,10 +313,18 @@ def send_message_ajax(request):
f'</p>'
}
print('render html for mail')
html = render_to_string('mail/m_request_offer.html', Dict, request)
from BaseModels.mailSender import admin_send_mail_by_SMTPlib
mail_sets = get_mail_send_options()
to = [mail_sets['sender_email']]
opts = get_options_by_opt_types('support_email', only_vals=True)
print(f'options: {str(opts)}')
if opts and 'support_email' in opts:
to = [opts['support_email']]
else:
to = [mail_sets['sender_email']]
print(f'to: {str(to)}')
res = admin_send_mail_by_SMTPlib(
mail_sets,
subject=subject,

View File

@@ -105,6 +105,7 @@ def admin_send_mail_by_SMTPlib(sets, subject, from_email, to, html_content, atta
def send_mail_by_SMTPlib(sets, subject, from_email, to_init, html_content, smtp_server, smtp_port, smtp_login, smtp_password,
attachments=None):
print('send_mail_by_SMTPlib')
to = to_init
# if not settings.prod_server:
# to = 'web@syncsystems.net'
@@ -123,7 +124,11 @@ def send_mail_by_SMTPlib(sets, subject, from_email, to_init, html_content, smtp_
try:
# context = ssl.create_default_context()
mail_lib = smtplib.SMTP(smtp_server, smtp_port)
print(f'connect to mail server smtp_server={str(smtp_server)} smtp_port={str(smtp_port)}')
mail_lib = smtplib.SMTP(smtp_server, smtp_port, timeout=60)
print('connection established')
res = mail_lib.ehlo()
@@ -139,14 +144,18 @@ def send_mail_by_SMTPlib(sets, subject, from_email, to_init, html_content, smtp_
res = mail_lib.esmtp_features['auth'] = 'LOGIN PLAIN'
# print('mail_lib.esmtp_features = {0}'.format(str(res)))
print('try to login')
res = mail_lib.login(smtp_login, smtp_password)
# print('mail_lib.login = {0}'.format(str(res)))
print('login')
res = None
if type(to) in (list, tuple):
if sets['sender_email'] in to:
to.remove(sets['sender_email'])
# if sets['sender_email'] in to:
# to.remove(sets['sender_email'])
if len(to) > 1:
to_str = u', '.join(to)
@@ -159,6 +168,8 @@ def send_mail_by_SMTPlib(sets, subject, from_email, to_init, html_content, smtp_
to = []
to.append(to_str)
print(f'send mail to {str(to)}')
if type(subject) != str:
try:
subject = subject.decode('utf-8')
@@ -168,6 +179,8 @@ def send_mail_by_SMTPlib(sets, subject, from_email, to_init, html_content, smtp_
except:
pass
print(f'add context')
msg = MIMEMultipart()
from email.headerregistry import Address
msg['From'] = from_email
@@ -192,13 +205,17 @@ def send_mail_by_SMTPlib(sets, subject, from_email, to_init, html_content, smtp_
res = msg.attach(attachments)
# print('else attach file complete = {0}'.format(str(res)))
print(f'send mail')
res = mail_lib.sendmail(from_email, to, msg.as_string())
msg = mail_lib.quit()
# print('mail_lib.quit = {0}'.format(str(msg)))
except Exception as e:
msg = 'send_mail_by_SMTPlib error = {0}'.format(str(e))
import traceback
msg = (f'send_mail_by_SMTPlib error = {str(e)}\n<br>'
f'{str(traceback.format_exc())}')
print(msg)
try:
mail_lib.quit()

View File

@@ -1,6 +1,6 @@
import json
from django.http import HttpResponse, Http404, FileResponse
from django.http import HttpResponse, Http404, FileResponse, HttpResponseRedirect
from django.template import loader, RequestContext
from django.contrib.auth.decorators import login_required
@@ -15,6 +15,7 @@ from django.views.decorators.csrf import csrf_exempt
from webpush import send_user_notification
import json
from datetime import datetime, timedelta
from django.urls import reverse
def generate_routes(request, routes_count):
if (not request.user
@@ -73,7 +74,7 @@ def test_code(request):
from RoutesApp.search_matches import search_matches
from RoutesApp.models import Route
search_matches(Route.objects.filter(id=16))
search_matches(Route.objects.filter(id=17158))
# from RoutesApp.funcs import get_city_by_type_transport_and_address_point
# from RoutesApp.models import Route
@@ -248,6 +249,12 @@ def StaticPageView(request, url):
'route_form': RouteForm(),
'owner_type': 'mover'
})
elif url in ['landing_customer', 'landing_mover']:
raise Http404
# return HttpResponseRedirect(reverse('customer_landing_page'))
# elif url == 'landing_mover':
# return HttpResponseRedirect(reverse('mover_landing_page'))
# elif url == 'works':
# return WorksPage(request)
elif url in ['main']:

View File

@@ -30,6 +30,6 @@ class Admin_Route(Admin_Trans_BaseModel):
search_fields = [
'owner__first_name', 'owner__last_name', 'from_city__name', 'to_city__name', 'owner__email'
]
raw_id_fields = ['from_city', 'to_city']
raw_id_fields = ['from_city', 'to_city', 'owner']
admin.site.register(Route,Admin_Route)
admin.site.register(Route, Admin_Route)

View File

@@ -47,7 +47,7 @@ def send_push_message_for_found_matches_routes(route, data_Dict):
def send_mail_found_matches_routes(route, data_Dict):
def send_mail_found_matches_routes(route, matched_route, data_Dict):
print(f'send_mail_found_matches_routes to route id = {route.id}')
Dict = {
@@ -67,7 +67,9 @@ def send_mail_found_matches_routes(route, data_Dict):
from_email=mail_sets['sender_email'], to=to,
html_content=html
)
to = ['web@syncsystems.net']
subject = f'route matches {route.id} <> {matched_route.id} send to {route.owner.email}'
to = ['web@syncsystems.net', 'sa@a3-global.com']
res = admin_send_mail_by_SMTPlib(
mail_sets,
subject=subject,
@@ -78,6 +80,56 @@ def send_mail_found_matches_routes(route, data_Dict):
return res
def user_notify_by_result_search_matches(route_for_send, founded_route, params):
log = ''
data_Dict = None
try:
data_Dict = get_Dict_for_send_msgs(params, founded_route.owner_type)
except Exception as e:
msg = f'<br>\n! search_matches Error get_Dict_for_send_msgs = {str(e)}'
print(msg)
log += msg
if data_Dict and check_option_in_cur_user_subscribe(
route_for_send.owner, 'push уведомления'
):
try:
msg = send_push_message_for_found_matches_routes(route_for_send, data_Dict)
if msg:
log += msg
except Exception as e:
msg = f'<br>\n! search_matches Error send_push_message_for_found_matches_routes = {str(e)}'
print(msg)
log += msg
if data_Dict and check_option_in_cur_user_subscribe(
route_for_send.owner,
'уведомление на e-mail о появлении перевозчика по заданным критериям'
):
try:
msg = send_mail_found_matches_routes(route_for_send, founded_route, data_Dict)
if msg:
log += msg
except Exception as e:
msg = f'<br>\n! search_matches Error send_mail_found_matches_routes = {str(e)}'
print(msg)
log += msg
return log
def users_notify_by_result_search_matches(source_route, found_routes, params):
log = ''
log += user_notify_by_result_search_matches(source_route, found_routes[0], params)
for route in found_routes:
log += user_notify_by_result_search_matches(route, source_route, params)
return log
def search_matches(for_routes=None):
print('search_matches')
@@ -147,39 +199,9 @@ def search_matches(for_routes=None):
if found_routes:
msg = f'found routes for send messages = {found_routes.count()}'
print(msg)
data_Dict = None
try:
data_Dict = get_Dict_for_send_msgs(params, found_routes[0].owner_type)
except Exception as e:
msg = f'<br>\n! search_matches Error get_Dict_for_send_msgs = {str(e)}'
print(msg)
log += msg
if data_Dict and check_option_in_cur_user_subscribe(
route.owner, 'push уведомления'
):
try:
msg = send_push_message_for_found_matches_routes(route, data_Dict)
if msg:
log += msg
except Exception as e:
msg = f'<br>\n! search_matches Error send_push_message_for_found_matches_routes = {str(e)}'
print(msg)
log += msg
if data_Dict and check_option_in_cur_user_subscribe(
route.owner,
'уведомление на e-mail о появлении перевозчика по заданным критериям'
):
try:
msg = send_mail_found_matches_routes(route, data_Dict)
if msg:
log += msg
except Exception as e:
msg = f'<br>\n! search_matches Error send_mail_found_matches_routes = {str(e)}'
print(msg)
log += msg
log += users_notify_by_result_search_matches(route, found_routes, params)
except Exception as e:
msg = f'<br>\n! search_matches Error = {str(e)}'

View File

@@ -0,0 +1,14 @@
# Generated by Django 4.2.2 on 2025-02-17 17:48
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('SubscribesApp', '0004_alter_subscribe_bg_color_alter_subscribe_text_color'),
('SubscribesApp', '0007_subscribeoption_route_highlight_hours'),
]
operations = [
]

View File

@@ -1,5 +1,5 @@
User-agent: *
Disallow: /
Allow: /
Disallow: */admin/*
Host: dev.tripwb.com
Host: tripwb.com

File diff suppressed because one or more lines are too long

View File

@@ -1 +1 @@
.chatterbox{margin-bottom:160px}@media (min-width: 1720px){.chatterbox{margin-bottom:180px}}@media (max-width: 1304.98px){.chatterbox{margin-bottom:142px}}@media (max-width: 991.98px){.chatterbox{margin-left:-50vw;margin-right:-50vw;margin-bottom:122px}}@media (max-width: 767.98px){.chatterbox{max-width:100vw;margin:0 auto 121px;position:relative}}.chatterbox__slider{max-width:1200px;margin:0 auto}@media (min-width: 1720px){.chatterbox__slider{max-width:1640px}}@media (max-width: 1304.98px){.chatterbox__slider{max-width:1100px}}@media (max-width: 991.98px){.chatterbox__slider{max-width:720px}}@media (max-width: 767.98px){.chatterbox__slider{max-width:830px;width:830px;left:50%;transform:translateX(-50%)}}@media (max-width: 479.98px){.chatterbox__slider{max-width:initial}}.chatterbox__slide{width:335px;height:615px;background:url("/static/img/webp/phone-border.webp") center no-repeat;transition:scale 0.2s ease-in-out;margin:auto;position:relative}@media (min-width: 1720px){.chatterbox__slide{width:456px;height:836px;background-size:456px 836px}}@media (max-width: 1304.98px){.chatterbox__slide{width:308px;height:565px;background-size:308px 565px}}@media (max-width: 991.98px){.chatterbox__slide{width:206px;height:377px;background-size:206px 377px}}@media (max-width: 767.98px){.chatterbox__slide{width:234px;height:429px;background-size:234px 429px}}.chatterbox__slide.loaded video{opacity:1}.chatterbox__slide.loaded img{z-index:-10}.chatterbox__slide video{max-width:100%;opacity:0;transition:opacity 0.2s ease-in-out;pointer-events:none}@media (max-width: 767.98px){.chatterbox__slide video{position:relative;top:-4px}}.chatterbox__slide img{position:absolute;scale:1.32;top:11%}.chatterbox__wrap{position:absolute;left:8px;right:8px;top:8px;bottom:8px;border-radius:25px;background-color:grey;overflow:hidden}@media (min-width: 1720px){.chatterbox__wrap{border-radius:50px}}.chatterbox__vbtn{position:absolute;left:0;right:0;top:0;bottom:0;opacity:0;transition:opacity 0.2s ease-in-out;pointer-events:none}.loaded .chatterbox__vbtn{display:none}.chatterbox__vbtn::before{width:80px;height:80px;display:flex;align-items:center;justify-content:center;background:var(--color-primary);border:0;border-radius:50%;transition:opacity 100ms linear}@media (min-width: 1720px){.chatterbox__vbtn::before{width:109px;height:109px}}@media (max-width: 991.98px){.chatterbox__vbtn::before{width:48px;height:48px}}@media (max-width: 767.98px){.chatterbox__vbtn::before{width:55px;height:55px}}.chatterbox__vbtn::before,.chatterbox__vbtn::after{content:"";position:absolute;left:50%;top:50%;transform:translate(-50%, -50%);cursor:pointer}.chatterbox__vbtn::after{border-color:transparent transparent transparent #ffffff;border-style:solid;border-width:15px 0 15px 25px;display:inline-block;margin-left:2px}@media (min-width: 1720px){.chatterbox__vbtn::after{border-width:23px 0 23px 35px;margin-left:4px}}@media (max-width: 991.98px){.chatterbox__vbtn::after{border-width:10px 0 10px 14px}}.chatterbox__vbox{position:relative;display:flex;justify-content:center;align-items:center;height:600px}@media (min-width: 1720px){.chatterbox__vbox{height:827px}}@media (max-width: 1304.98px){.chatterbox__vbox{height:530px}}@media (max-width: 991.98px){.chatterbox__vbox{height:370px}}.chatterbox__mbtns{position:absolute;top:58%;transform:translateY(-50%);left:0;right:0}@media (max-width: 479.98px){.chatterbox__mbtns{top:61.6%}}.chatterbox .title{margin-bottom:60px}@media (max-width: 1304.98px){.chatterbox .title{margin-bottom:39px}}@media (max-width: 767.98px){.chatterbox .title{margin-bottom:50px}}.chatterbox .slick-next{right:-40px}@media (max-width: 1304.98px){.chatterbox .slick-next{right:-10px}}@media (max-width: 991.98px){.chatterbox .slick-next{width:40px;height:40px;background-size:32%;right:5%}}@media (max-width: 479.98px){.chatterbox .slick-next{right:0}}.chatterbox .slick-prev{left:-40px}@media (max-width: 1304.98px){.chatterbox .slick-prev{left:-10px}}@media (max-width: 991.98px){.chatterbox .slick-prev{width:40px;height:40px;background-size:32%;left:5%}}@media (max-width: 479.98px){.chatterbox .slick-prev{left:0}}@media (max-width: 991.98px){.chatterbox .slick-list{overflow:visible}}.slick-slide:not(.slick-center) .chatterbox__slide{scale:0.72}@media (max-width: 1304.98px){.slick-slide:not(.slick-center) .chatterbox__slide{scale:0.69}}@media (max-width: 991.98px){.slick-slide:not(.slick-center) .chatterbox__slide{scale:0.8}}@media (max-width: 479.98px){.slick-slide:not(.slick-center) .chatterbox__slide{scale:0.85}}.slick-center .chatterbox__vbtn{opacity:1;pointer-events:initial;z-index:1}.slick-center .chatterbox__vbox video{pointer-events:initial;cursor:pointer}
.chatterbox{margin-bottom:160px}@media (min-width: 1720px){.chatterbox{margin-bottom:180px}}@media (max-width: 1304.98px){.chatterbox{margin-bottom:142px}}@media (max-width: 991.98px){.chatterbox{margin-left:-50vw;margin-right:-50vw;margin-bottom:122px}}@media (max-width: 767.98px){.chatterbox{max-width:100vw;margin:0 auto 121px;position:relative}}.chatterbox__slider{max-width:1200px;margin:0 auto}@media (min-width: 1720px){.chatterbox__slider{max-width:1640px}}@media (max-width: 1304.98px){.chatterbox__slider{max-width:1100px}}@media (max-width: 991.98px){.chatterbox__slider{max-width:720px}}@media (max-width: 767.98px){.chatterbox__slider{max-width:830px;width:830px;left:50%;transform:translateX(-50%)}}@media (max-width: 479.98px){.chatterbox__slider{max-width:initial}}.chatterbox__slide{width:335px;height:615px;background:url("/static/img/webp/phone-border.webp") center no-repeat;transition:scale 0.2s ease-in-out;margin:auto;position:relative}@media (min-width: 1720px){.chatterbox__slide{width:456px;height:836px;background-size:456px 836px}}@media (max-width: 1304.98px){.chatterbox__slide{width:308px;height:565px;background-size:308px 565px}}@media (max-width: 991.98px){.chatterbox__slide{width:206px;height:377px;background-size:206px 377px}}@media (max-width: 767.98px){.chatterbox__slide{width:234px;height:429px;background-size:234px 429px}}.chatterbox__slide.loaded video{opacity:1}.chatterbox__slide.loaded img{z-index:-10}.chatterbox__slide video{max-width:100%;opacity:0;transition:opacity 0.2s ease-in-out;pointer-events:none;position:relative}@media (min-width: 1720px){.chatterbox__slide video{top:-2px}}@media (max-width: 1304.98px){.chatterbox__slide video{top:10px}}@media (max-width: 991.98px){.chatterbox__slide video{top:-4px}}@media (max-width: 767.98px){.chatterbox__slide video{top:22px}}.chatterbox__slide img{position:absolute;scale:1.32;top:11%}.chatterbox__wrap{position:absolute;left:8px;right:8px;top:8px;bottom:8px;border-radius:25px;background-color:grey;overflow:hidden}@media (min-width: 1720px){.chatterbox__wrap{border-radius:50px}}.chatterbox__vbtn{position:absolute;left:0;right:0;top:0;bottom:0;opacity:0;transition:opacity 0.2s ease-in-out;pointer-events:none}.loaded .chatterbox__vbtn{display:none}.chatterbox__vbtn::before{width:80px;height:80px;display:flex;align-items:center;justify-content:center;background:var(--color-primary);border:0;border-radius:50%;transition:opacity 100ms linear}@media (min-width: 1720px){.chatterbox__vbtn::before{width:109px;height:109px}}@media (max-width: 991.98px){.chatterbox__vbtn::before{width:48px;height:48px}}@media (max-width: 767.98px){.chatterbox__vbtn::before{width:55px;height:55px}}.chatterbox__vbtn::before,.chatterbox__vbtn::after{content:"";position:absolute;left:50%;top:50%;transform:translate(-50%, -50%);cursor:pointer}.chatterbox__vbtn::after{border-color:transparent transparent transparent #ffffff;border-style:solid;border-width:15px 0 15px 25px;display:inline-block;margin-left:2px}@media (min-width: 1720px){.chatterbox__vbtn::after{border-width:23px 0 23px 35px;margin-left:4px}}@media (max-width: 991.98px){.chatterbox__vbtn::after{border-width:10px 0 10px 14px}}.chatterbox__vbox{position:relative;display:flex;justify-content:center;align-items:center;height:600px}@media (min-width: 1720px){.chatterbox__vbox{height:827px}}@media (max-width: 1304.98px){.chatterbox__vbox{height:530px}}@media (max-width: 991.98px){.chatterbox__vbox{height:370px}}.chatterbox__mbtns{position:absolute;top:58%;transform:translateY(-50%);left:0;right:0}@media (max-width: 479.98px){.chatterbox__mbtns{top:61.6%}}.chatterbox .title{margin-bottom:60px}@media (max-width: 1304.98px){.chatterbox .title{margin-bottom:39px}}@media (max-width: 767.98px){.chatterbox .title{margin-bottom:50px}}.chatterbox .slick-next{right:-40px}@media (max-width: 1304.98px){.chatterbox .slick-next{right:-10px}}@media (max-width: 991.98px){.chatterbox .slick-next{width:40px;height:40px;background-size:32%;right:5%}}@media (max-width: 479.98px){.chatterbox .slick-next{right:0}}.chatterbox .slick-prev{left:-40px}@media (max-width: 1304.98px){.chatterbox .slick-prev{left:-10px}}@media (max-width: 991.98px){.chatterbox .slick-prev{width:40px;height:40px;background-size:32%;left:5%}}@media (max-width: 479.98px){.chatterbox .slick-prev{left:0}}@media (max-width: 991.98px){.chatterbox .slick-list{overflow:visible}}.slick-slide:not(.slick-center) .chatterbox__slide{scale:0.72}@media (max-width: 1304.98px){.slick-slide:not(.slick-center) .chatterbox__slide{scale:0.69}}@media (max-width: 991.98px){.slick-slide:not(.slick-center) .chatterbox__slide{scale:0.8}}@media (max-width: 479.98px){.slick-slide:not(.slick-center) .chatterbox__slide{scale:0.85}}.slick-center .chatterbox__vbtn{opacity:1;pointer-events:initial;z-index:1}.slick-center .chatterbox__vbox video{pointer-events:initial;cursor:pointer}

View File

@@ -1 +1 @@
.header{margin-top:0;position:fixed;display:block;left:0;top:0;width:100vw;padding:15px 5px;transition:all 0.1s ease-in-out;background-color:white}@media (max-width: 991.98px){.header{padding-top:7px;padding-bottom:7px}}.header.scrolled{padding-top:20px;padding-bottom:20px;box-shadow:var(--box-shadow-primary);border-bottom:1px solid var(--color-grey)}.header__grid,.header__list{display:flex;align-items:center;justify-content:space-between}.header__logo{width:48px;height:48px;position:relative;left:5px}@media (max-width: 1304.98px){.header__logo{left:6px}}@media (max-width: 991.98px){.header__logo{left:0}}@media (max-width: 767.98px){.header__logo{left:-3px}}.header__nav{flex-grow:1;max-width:41%;margin-left:auto}@media (min-width: 1720px){.header__nav{max-width:34%}}@media (max-width: 1304.98px){.header__nav{max-width:46.5%}}.header__link{color:var(--color-black2);text-decoration:none}.header__btn{padding:8px 0 6px;font-size:16px;margin-left:61px;margin-right:-3px}@media (min-width: 1720px){.header__btn{margin-left:81px}}@media (max-width: 1304.98px){.header__btn{margin-right:0}}@media (max-width: 991.98px){.header__btn{display:none}}.header .dropdown{left:-4px}@media (max-width: 767.98px){.header .dropdown{left:-8px}}.header .dropdown-content{right:0;height:initial}@media (max-width: 575px){.header .dropdown-content{right:0;left:initial}}
.header{margin-top:0;position:fixed;display:block;left:0;top:0;width:100vw;padding:15px 5px;transition:all 0.1s ease-in-out;background-color:white}@media (max-width: 991.98px){.header{padding-top:7px;padding-bottom:7px}}.header.scrolled{padding-top:7px;padding-bottom:7px;box-shadow:var(--box-shadow-primary);border-bottom:1px solid var(--color-grey)}.header__grid,.header__list{display:flex;align-items:center;justify-content:space-between}.header__logo{width:48px;height:48px;position:relative;left:5px}@media (max-width: 1304.98px){.header__logo{left:6px}}@media (max-width: 991.98px){.header__logo{left:0}}@media (max-width: 767.98px){.header__logo{left:-3px}}.header__nav{flex-grow:1;max-width:41%;margin-left:auto}@media (min-width: 1720px){.header__nav{max-width:34%}}@media (max-width: 1304.98px){.header__nav{max-width:46.5%}}.header__link{color:var(--color-black2);text-decoration:none}.header__btn{padding:8px 0 6px;font-size:16px;margin-left:61px;margin-right:-3px}@media (min-width: 1720px){.header__btn{margin-left:81px}}@media (max-width: 1304.98px){.header__btn{margin-right:0}}@media (max-width: 991.98px){.header__btn{display:none}}.header .dropdown{left:-4px}@media (max-width: 767.98px){.header .dropdown{left:-8px}}.header .dropdown-content{right:0;height:initial}@media (max-width: 575px){.header .dropdown-content{right:0;left:initial}}

View File

@@ -1,2 +1,2 @@
.container{margin:0 auto;width:1280px;position:relative}@media (min-width: 1720px){.container{width:1720px}}@media (max-width: 1304.98px){.container{width:1120px;max-width:88vw}}@media (max-width: 991.98px){.container{width:640px;max-width:100vw}}@media (max-width: 767.98px){.container{margin:0 16px;width:auto}}:root{--color-primary: #FF613A;--color-white: #FFFFFF;--color-black: #000000;--color-black2: #272424;--color-grey: #F1F1F1;--color-grey2: #7A7979;--color-orange: #FF613A;--box-shadow-primary: -1px 4px 10px 0 rgba(198, 199, 203, 0.20),
0 -1px 10px 0 rgba(198, 199, 203, 0.20);text-align:center;color:var(--color-black2)}html,body{max-width:100vw;overflow-x:hidden;max-height:initial}body{height:100%;position:relative}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-weight:700}h1,.h1{font-size:44px;line-height:52px}@media (min-width: 1720px){h1,.h1{font-size:48px;line-height:52px}}h2,.h2{font-size:24px;line-height:36px;margin-bottom:10px}@media (min-width: 1720px){h2,.h2{font-size:28px;margin-bottom:20px}}h3,.h3{font-size:20px;line-height:28px;margin-bottom:12px}@media (max-width: 1304.98px){h3,.h3{margin-bottom:13px}}h4,.h4{font-size:18px;line-height:26px;margin-bottom:20px}p{line-height:22px;margin-bottom:20px}@media (min-width: 1720px){p{font-size:20px;line-height:26px}}@media (max-width: 991.98px){p{margin-bottom:18px}}@media (max-width: 479.98px){p{margin-bottom:14px}}b{font-weight:500}@media (max-width: 991.98px){b{font-size:16px;line-height:22px}}.btn{display:inline-flex;text-decoration:none;color:black;line-height:22px;border-radius:10px;padding:20px 76px 18px;justify-content:center;align-items:center;margin:0 3px;letter-spacing:0.2px;font-size:18px}.btn--primary{background:var(--color-primary);color:var(--color-white)}.title{font-size:44px;font-weight:700;line-height:52px;margin-bottom:13px;margin-left:auto;margin-right:auto}@media (min-width: 1720px){.title{font-size:48px;margin-bottom:22px}}@media (max-width: 1304.98px){.title{margin-bottom:20px}}@media (max-width: 991.98px){.title{font-size:32px;line-height:38.73px}}@media (max-width: 767.98px){.title{margin-bottom:14px}}.subtitle{margin-bottom:81px;line-height:22px}@media (min-width: 1720px){.subtitle{font-size:20px;margin-bottom:105px}}@media (max-width: 1304.98px){.subtitle{margin-bottom:71px}}.hide{display:none}.hide__xxl{display:inline-flex}@media (min-width: 1720px){.hide__xxl{display:none}}@media (max-width: 991.98px){.hide__md{display:none}}@media (max-width: 479.98px){.hide__xs{display:none}}.show__xxl{display:none}@media (min-width: 1720px){.show__xxl{display:block}}.show__md{display:none}@media (max-width: 991.98px){.show__md{display:initial}}@media (min-width: 480px){.show__xs{display:none}}@media (min-width: 1440px){.br--xxl{display:none}}@media (max-width: 991.98px){.br--md{display:none}}@media (max-width: 767.98px){.br--sm{display:none}}.is-container.wrapper_main>.container{padding-top:129px}@media (max-width: 1304.98px){.is-container.wrapper_main>.container{padding-top:126px}}@media (max-width: 991.98px){.is-container.wrapper_main>.container{padding-top:85px}}@media (max-width: 767.98px){.is-container.wrapper_main>.container{padding-top:57px}}@media (min-width: 1440px){.is-container.wrapper_main{max-width:initial}}.is-container.wrapper_main>.container{position:relative;left:15px}@media (min-width: 1720px){.is-container.wrapper_main>.container{left:17px}}@media (max-width: 767.98px){.is-container.wrapper_main>.container{left:0}}
0 -1px 10px 0 rgba(198, 199, 203, 0.20);text-align:center;color:var(--color-black2)}html,body{max-width:100vw;max-height:initial}body{height:100%;position:relative}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-weight:700}h1,.h1{font-size:44px;line-height:52px}@media (min-width: 1720px){h1,.h1{font-size:48px;line-height:52px}}h2,.h2{font-size:24px;line-height:36px;margin-bottom:10px}@media (min-width: 1720px){h2,.h2{font-size:28px;margin-bottom:20px}}h3,.h3{font-size:20px;line-height:28px;margin-bottom:12px}@media (max-width: 1304.98px){h3,.h3{margin-bottom:13px}}h4,.h4{font-size:18px;line-height:26px;margin-bottom:20px}p{line-height:22px;margin-bottom:20px}@media (min-width: 1720px){p{font-size:20px;line-height:26px}}@media (max-width: 991.98px){p{margin-bottom:18px}}@media (max-width: 479.98px){p{margin-bottom:14px}}b{font-weight:500}@media (max-width: 991.98px){b{font-size:16px;line-height:22px}}.btn{display:inline-flex;text-decoration:none;color:black;line-height:22px;border-radius:10px;padding:20px 76px 18px;justify-content:center;align-items:center;margin:0 3px;letter-spacing:0.2px;font-size:18px}.btn--primary{background:var(--color-primary);color:var(--color-white)}.title{font-size:44px;font-weight:700;line-height:52px;margin-bottom:13px;margin-left:auto;margin-right:auto}@media (min-width: 1720px){.title{font-size:48px;margin-bottom:22px}}@media (max-width: 1304.98px){.title{margin-bottom:20px}}@media (max-width: 991.98px){.title{font-size:32px;line-height:38.73px}}@media (max-width: 767.98px){.title{margin-bottom:14px}}.subtitle{margin-bottom:81px;line-height:22px}@media (min-width: 1720px){.subtitle{font-size:20px;margin-bottom:105px}}@media (max-width: 1304.98px){.subtitle{margin-bottom:71px}}.hide{display:none}.hide__xxl{display:inline-flex}@media (min-width: 1720px){.hide__xxl{display:none}}@media (max-width: 991.98px){.hide__md{display:none}}@media (max-width: 479.98px){.hide__xs{display:none}}.show__xxl{display:none}@media (min-width: 1720px){.show__xxl{display:block}}.show__md{display:none}@media (max-width: 991.98px){.show__md{display:initial}}@media (min-width: 480px){.show__xs{display:none}}@media (min-width: 1440px){.br--xxl{display:none}}@media (max-width: 991.98px){.br--md{display:none}}@media (max-width: 767.98px){.br--sm{display:none}}.is-container.wrapper_main{overflow-x:hidden}.is-container.wrapper_main>.container{padding-top:129px}@media (max-width: 1304.98px){.is-container.wrapper_main>.container{padding-top:126px}}@media (max-width: 991.98px){.is-container.wrapper_main>.container{padding-top:85px}}@media (max-width: 767.98px){.is-container.wrapper_main>.container{padding-top:57px}}@media (min-width: 1440px){.is-container.wrapper_main{max-width:initial}}.is-container.wrapper_main>.container{position:relative;left:15px}@media (min-width: 1720px){.is-container.wrapper_main>.container{left:17px}}@media (max-width: 767.98px){.is-container.wrapper_main>.container{left:0}}

View File

@@ -3382,6 +3382,11 @@ details[open] summary ~ *{
display: none;
}
input.error::placeholder {
color: red;
font-weight: bold;
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 327 KiB

After

Width:  |  Height:  |  Size: 326 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 502 KiB

After

Width:  |  Height:  |  Size: 467 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 63 KiB

After

Width:  |  Height:  |  Size: 605 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 76 KiB

After

Width:  |  Height:  |  Size: 706 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 128 KiB

After

Width:  |  Height:  |  Size: 884 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 75 KiB

After

Width:  |  Height:  |  Size: 689 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 130 KiB

After

Width:  |  Height:  |  Size: 1.3 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 168 KiB

After

Width:  |  Height:  |  Size: 1.7 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 257 KiB

After

Width:  |  Height:  |  Size: 2.6 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 172 KiB

After

Width:  |  Height:  |  Size: 1.7 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 141 KiB

After

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 381 KiB

After

Width:  |  Height:  |  Size: 380 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 502 KiB

After

Width:  |  Height:  |  Size: 501 KiB

View File

@@ -27,11 +27,12 @@ function SendLoginForm(el){
if(url === '/user_account/login/'){
if(url === '/user_account/login/') {
localStorage.setItem('needed_fbq', true)
location.href = data.redirect_url//`/profile/page/dashboard/`
window.sessionStorage.removeItem('mailingSubscribeRequired')
window.sessionStorage.removeItem('email')
} else if(url === '/user_account/password_recovery/'){
} else if (url === '/user_account/password_recovery/'){
document.getElementById('password_recovery').innerHTML = data.message
}

View File

@@ -36,26 +36,26 @@ function SendRegistrationForm(el, user_id){
window.sessionStorage.removeItem('mailingSubscribeRequired')
window.sessionStorage.removeItem('email')
fbq('track', 'Contact');
fbq('track', 'Contact');
ttq.identify({
"email": "<hashed_email_address>", // string. The email of the customer if available. It must be hashed with SHA-256 on the client side.
"phone_number": "<hashed_phone_number>", // string. The phone number of the customer if available. It must be hashed with SHA-256 on the client side.
"external_id": "<hashed_extenal_id>" // string. Any unique identifier, such as loyalty membership IDs, user IDs, and external cookie IDs.It must be hashed with SHA-256 on the client side.
});
// ttq.identify({
// "email": "<hashed_email_address>", // string. The email of the customer if available. It must be hashed with SHA-256 on the client side.
// "phone_number": "<hashed_phone_number>", // string. The phone number of the customer if available. It must be hashed with SHA-256 on the client side.
// "external_id": "<hashed_extenal_id>" // string. Any unique identifier, such as loyalty membership IDs, user IDs, and external cookie IDs.It must be hashed with SHA-256 on the client side.
// });
ttq.track('CompleteRegistration', {
"contents": [
{
"content_id": "<content_identifier>", // string. ID of the product. Example: "1077218".
"content_type": "<content_type>", // string. Either product or product_group.
"content_name": "<content_name>" // string. The name of the page or product. Example: "shirt".
}
],
"value": "<content_value>", // number. Value of the order or items sold. Example: 100.
"currency": "<content_currency>" // string. The 4217 currency code. Example: "USD".
});
// ttq.track('CompleteRegistration', {
// "contents": [
// {
// "content_id": "<content_identifier>", // string. ID of the product. Example: "1077218".
// "content_type": "<content_type>", // string. Either product or product_group.
// "content_name": "<content_name>" // string. The name of the page or product. Example: "shirt".
// }
// ],
// "value": "<content_value>", // number. Value of the order or items sold. Example: 100.
// "currency": "<content_currency>" // string. The 4217 currency code. Example: "USD".
// });
@@ -68,9 +68,22 @@ function SendRegistrationForm(el, user_id){
},
error: function (data, exception){
document.querySelector(".register").innerHTML = data.responseText
if(data.responseJSON.html){
document.querySelector(".register").innerHTML = data.responseJSON.html
} else if(data.responseJSON.error){
const passwordInput = document.querySelector('input[name="pass"]');
if (passwordInput && data.responseJSON.error) {
passwordInput.placeholder = data.responseJSON.error;
passwordInput.value = '';
passwordInput.classList.add('error');
}
}
}
});
}

View File

@@ -96,10 +96,22 @@
opacity: 0;
transition: opacity 0.2s ease-in-out;
pointer-events: none;
position: relative;
@media (min-width: 1720px) {
top: -2px;
}
@media (max-width: 1304.98px) {
top: 10px;
}
@media (max-width: 991.98px) {
top: -4px;
}
@media (max-width: 767.98px) {
position: relative;
top: -4px;
top: 22px;
}
}

View File

@@ -15,8 +15,8 @@
}
&.scrolled {
padding-top: 20px;
padding-bottom: 20px;
padding-top: 7px;
padding-bottom: 7px;
box-shadow: var(--box-shadow-primary);
border-bottom: 1px solid var(--color-grey);
}

View File

@@ -51,7 +51,7 @@
html,
body {
max-width: 100vw;
overflow-x: hidden;
//overflow-x: hidden;
max-height: initial;
}
@@ -264,6 +264,7 @@ b {
}
.is-container.wrapper_main {
overflow-x: hidden;
> .container {
padding-top: 129px;

View File

@@ -22,7 +22,7 @@
<a href="https://vk.com/club226251027" target="_blank"><img class="svg" src="/static/img/svg/vk.svg"></a>
<a href="https://www.tiktok.com/@tripwithbonus?_t=8qHingfQWNq" target="_blank"><img class="svg" src="/static/img/svg/tiktok.svg"></a>
<a href="https://youtube.com/@tripwb?si=oiNZrtiOqx6OePJv" target="_blank"><img class="svg" src="/static/img/svg/Youtube.svg"></a>
<a href="https://t.me/+XA6A8Ls7fYw2Yzli" target="_blank"><img class="svg" src="/static/img/svg/Telegram.svg"></a>
<a href="https://t.me/tripWB" target="_blank"><img class="svg" src="/static/img/svg/Telegram.svg"></a>
</div>
</div>
<div class="second-column">

View File

@@ -18,7 +18,7 @@
<span id="sub_title_static">{% trans "Быстро, без посредников, без ограничений" %}</span>
{% endif %}
{% if page.url == 'for_movers' %}
<span id="sub_title_static">{% trans "Общайся, перевози послылки и получай бонусы" %}</span>
<span id="sub_title_static">{% trans "Общайся, перевози посылки и получай бонусы" %}</span>
{% endif %}
<div class="button_container">

View File

@@ -94,5 +94,15 @@
<option value="last" {% if route_form.initial.sort == item.0 %} selected{% endif %}>{% translate "По последним" %}</option>
</select>
</div>
<div><!-- Yandex.RTB R-A-14631137-1 -->
<div id="yandex_rtb_R-A-14631137-1"></div>
<script>
window.yaContextCb.push(() => {
Ya.Context.AdvManager.render({
"blockId": "R-A-14631137-1",
"renderTo": "yandex_rtb_R-A-14631137-1"
})
})
</script></div>
{#</div>#}

View File

@@ -649,7 +649,7 @@
<meta property="og:type" content="website">
<meta property="og:title" content="Партнерская программа доставки посылок в СНГ | TWB">
<meta property="og:description" content="Хотите стать партнером? ✓ Выгодные условия нашим партнерам ✓ Действует система бонусов и накоплений ➡️ Становитесь нашим партнерам">
<meta property="og:description" content="Хотите стать партнером? ✓ Выгодные условия нашим партнерам ✓ Действует система бонусов и накоплений ➡️ Становитесь нашим партнером">
<meta property="og:url" content="https://tripwb.com/ru/page/partners/">
<meta property="og:image" content="https://tripwb.com/static/img/png/finlogo.png">
<meta property="og:site_name" content="TWB">
@@ -657,7 +657,7 @@
<meta property="fb:app_id" content="tripwithbonus">
<meta name="twitter:title" content="Партнерская программа доставки посылок в СНГ | TWB">
<meta name="twitter:description" content="Хотите стать партнером? ✓ Выгодные условия нашим партнерам ✓ Действует система бонусов и накоплений ➡️ Становитесь нашим партнерам">
<meta name="twitter:description" content="Хотите стать партнером? ✓ Выгодные условия нашим партнерам ✓ Действует система бонусов и накоплений ➡️ Становитесь нашим партнером">
<meta name="twitter:card" content="summary">
<script type="application/ld+json">

View File

@@ -7,9 +7,63 @@
<link rel="stylesheet" href="{% static "css/slick.css" %}">
<script src="{% static "js/slick.min.js" %}"></script>
<script src="{% static "js/push/lazyload.min.js" %}"></script>
<!-- Meta Pixel Code -->
<script>
!function(f,b,e,v,n,t,s)
{if(f.fbq)return;n=f.fbq=function(){n.callMethod?
n.callMethod.apply(n,arguments):n.queue.push(arguments)};
if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';
n.queue=[];t=b.createElement(e);t.async=!0;
t.src=v;s=b.getElementsByTagName(e)[0];
s.parentNode.insertBefore(t,s)}(window, document,'script',
'https://connect.facebook.net/en_US/fbevents.js');
fbq('init', '1123814969330706');
fbq('track', 'PageView');
</script>
<noscript><img height="1" width="1" style="display:none"
src="https://www.facebook.com/tr?id=1123814969330706&ev=PageView&noscript=1"
/></noscript>
<!-- End Meta Pixel Code -->
<!-- TikTok Pixel Code Start -->
<script>
!function (w, d, t) {
w.TiktokAnalyticsObject=t;var ttq=w[t]=w[t]||[];ttq.methods=["page","track","identify","instances","debug","on","off","once","ready","alias","group","enableCookie","disableCookie","holdConsent","revokeConsent","grantConsent"],ttq.setAndDefer=function(t,e){t[e]=function(){t.push([e].concat(Array.prototype.slice.call(arguments,0)))}};for(var i=0;i<ttq.methods.length;i++)ttq.setAndDefer(ttq,ttq.methods[i]);ttq.instance=function(t){for(
var e=ttq._i[t]||[],n=0;n<ttq.methods.length;n++)ttq.setAndDefer(e,ttq.methods[n]);return e},ttq.load=function(e,n){var r="https://analytics.tiktok.com/i18n/pixel/events.js",o=n&&n.partner;ttq._i=ttq._i||{},ttq._i[e]=[],ttq._i[e]._u=r,ttq._t=ttq._t||{},ttq._t[e]=+new Date,ttq._o=ttq._o||{},ttq._o[e]=n||{};n=document.createElement("script")
;n.type="text/javascript",n.async=!0,n.src=r+"?sdkid="+e+"&lib="+t;e=document.getElementsByTagName("script")[0];e.parentNode.insertBefore(n,e)};
ttq.load('CVE2FBRC77U60E3J820G');
ttq.page();
}(window, document, 'ttq');
</script>
<!-- TikTok Pixel Code End -->
{% endblock %}
{% block content %}
<!-- Yandex.Metrika counter -->
<script type="text/javascript" >
(function(m,e,t,r,i,k,a){m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)};
m[i].l=1*new Date();
for (var j = 0; j < document.scripts.length; j++) {if (document.scripts[j].src === r) { return; }}
k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)})
(window, document, "script", "https://mc.yandex.ru/metrika/tag.js", "ym");
ym(97070898, "init", {
clickmap:true,
trackLinks:true,
accurateTrackBounce:true,
webvisor:true,
ecommerce:"dataLayer"
});
</script>
<noscript><div><img src="https://mc.yandex.ru/watch/97070898" style="position:absolute; left:-9999px;" alt="" /></div></noscript>
<!-- /Yandex.Metrika counter -->
<section class="presentation">
<div class="presentation__top">
<h1 class="presentation__title">
@@ -165,7 +219,7 @@
<div class="subtitle">
{% translate "Чтобы разместить объявление - зарегистрируйтесь" %}
</div>
<a href="{% url "registration_page" %}"
<a href="{% url "registration_page" %}" onclick="ym(97070898,'reachGoal','Registration'); return true;"
class="easy__btn btn btn--primary">{% translate "Разместить объявление" %}</a>
</section>
@@ -183,9 +237,9 @@
<div class="h3">
{% translate "Хотите перевезти посылку и окупить стоимость дороги, топлива?" %}
</div>
<a href="{% url "registration_page" %}" class="use__btn btn btn--primary">{% translate "Найти посылку" %}</a>
<a href="{% url "registration_page" %}" onclick="ym(97070898,'reachGoal','Registration'); return true;" class="use__btn btn btn--primary">{% translate "Найти посылку" %}</a>
<br/>
<a href="{% url "registration_page" %}" class="use__link">{% translate "Зарегистрироваться" %}</a>
<a href="{% url "registration_page" %}" onclick="ym(97070898,'reachGoal','Registration'); return true;" class="use__link">{% translate "Зарегистрироваться" %}</a>
</section>
<section class="benefits" id="benefits">
@@ -244,6 +298,7 @@
<video
data-src="{{ MEDIA_URL }}{{ media_item.video }}"
poster="{{ MEDIA_URL }}{{ media_item.picture }}"
playsinline="false"
controls
autoplay
></video>
@@ -377,9 +432,9 @@
{% translate "Хочешь вернуть стоимость билета, топлива или окупить свое путешествие?" %}
</div>
<div class="subtitle">
{% translate "Зарегистрируйся на&nbsp;<a href='#' class='animate__link'>Trip With Bonus</a> прямо сейчас, размести бесплатно объявление и&nbsp;получи отклики от&nbsp;людей с&nbsp;посылками" %}
{% translate "Зарегистрируйся на&nbsp;<a href='https://tripwb.com/' class='animate__link'>Trip With Bonus</a> прямо сейчас, размести бесплатно объявление и&nbsp;получи отклики от&nbsp;людей с&nbsp;посылками" %}
</div>
<a href="{% url "registration_page" %}"
<a href="{% url "registration_page" %}" onclick="ym(97070898,'reachGoal','Registration'); return true;"
class="use__btn btn btn--primary">{% translate "Разместить объявление" %}</a>
<script>
document.addEventListener("DOMContentLoaded", () => {
@@ -462,7 +517,7 @@
<div class="title">
{% translate "Размести свое объявление какую посылку ты можешь перевезти прямо сейчас " %}
</div>
<a href="{% url "registration_page" %}"
<a href="{% url "registration_page" %}" onclick="ym(97070898,'reachGoal','Registration'); return true;"
class="use__btn btn btn--primary">{% translate "Разместить объявление" %}</a>
</section>
@@ -483,7 +538,7 @@
<div class="h3">
{% translate "Зарегистрируйся бесплатно прямо сейчас и начни размещать объявления о перевозки посылки" %}
</div>
<a href="{% url "registration_page" %}"
<a href="{% url "registration_page" %}" onclick="ym(97070898,'reachGoal','Registration'); return true;"
class="sore__btn btn btn--primary">{% translate "Зарегистрироваться" %}</a>
<br/>
</div>

View File

@@ -9,6 +9,8 @@
{% endblock %}
{% block content %}
<meta name="facebook-domain-verification" content="e9xtao0o9fvuc3gbturkp57qi2upqb" />
<div class="top_block_static_wrapper_main">
<div class="top_block_static">

View File

@@ -7,9 +7,64 @@
<link rel="stylesheet" href="{% static "css/slick.css" %}">
<script src="{% static "js/slick.min.js" %}"></script>
<script src="{% static "js/push/lazyload.min.js" %}"></script>
<!-- Meta Pixel Code -->
<script>
!function(f,b,e,v,n,t,s)
{if(f.fbq)return;n=f.fbq=function(){n.callMethod?
n.callMethod.apply(n,arguments):n.queue.push(arguments)};
if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';
n.queue=[];t=b.createElement(e);t.async=!0;
t.src=v;s=b.getElementsByTagName(e)[0];
s.parentNode.insertBefore(t,s)}(window, document,'script',
'https://connect.facebook.net/en_US/fbevents.js');
fbq('init', '1009253847591455');
fbq('track', 'PageView');
</script>
<noscript><img height="1" width="1" style="display:none"
src="https://www.facebook.com/tr?id=1009253847591455&ev=PageView&noscript=1"
/></noscript>
<!-- End Meta Pixel Code -->
<!-- TikTok Pixel Code Start -->
<script>
!function (w, d, t) {
w.TiktokAnalyticsObject=t;var ttq=w[t]=w[t]||[];ttq.methods=["page","track","identify","instances","debug","on","off","once","ready","alias","group","enableCookie","disableCookie","holdConsent","revokeConsent","grantConsent"],ttq.setAndDefer=function(t,e){t[e]=function(){t.push([e].concat(Array.prototype.slice.call(arguments,0)))}};for(var i=0;i<ttq.methods.length;i++)ttq.setAndDefer(ttq,ttq.methods[i]);ttq.instance=function(t){for(
var e=ttq._i[t]||[],n=0;n<ttq.methods.length;n++)ttq.setAndDefer(e,ttq.methods[n]);return e},ttq.load=function(e,n){var r="https://analytics.tiktok.com/i18n/pixel/events.js",o=n&&n.partner;ttq._i=ttq._i||{},ttq._i[e]=[],ttq._i[e]._u=r,ttq._t=ttq._t||{},ttq._t[e]=+new Date,ttq._o=ttq._o||{},ttq._o[e]=n||{};n=document.createElement("script")
;n.type="text/javascript",n.async=!0,n.src=r+"?sdkid="+e+"&lib="+t;e=document.getElementsByTagName("script")[0];e.parentNode.insertBefore(n,e)};
ttq.load('CVE2H93C77U83BE8I4U0');
ttq.page();
}(window, document, 'ttq');
</script>
<!-- TikTok Pixel Code End -->
<meta name="facebook-domain-verification" content="e9xtao0o9fvuc3gbturkp57qi2upqb" />
{% endblock %}
{% block content %}
<!-- Yandex.Metrika counter -->
<script type="text/javascript" >
(function(m,e,t,r,i,k,a){m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)};
m[i].l=1*new Date();
for (var j = 0; j < document.scripts.length; j++) {if (document.scripts[j].src === r) { return; }}
k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)})
(window, document, "script", "https://mc.yandex.ru/metrika/tag.js", "ym");
ym(97070898, "init", {
clickmap:true,
trackLinks:true,
accurateTrackBounce:true,
webvisor:true,
ecommerce:"dataLayer"
});
</script>
<noscript><div><img src="https://mc.yandex.ru/watch/97070898" style="position:absolute; left:-9999px;" alt="" /></div></noscript>
<!-- /Yandex.Metrika counter -->
<section class="presentation">
<div class="presentation__top">
<h1 class="presentation__title">
@@ -166,7 +221,7 @@
<div class="subtitle">
{% translate "Чтобы разместить объявление - зарегистрируйтесь" %}
</div>
<a href="{% url "registration_page" %}"
<a href="{% url "registration_page" %}" onclick="ym(97070898,'reachGoal','Registration'); return true;"
class="easy__btn btn btn--primary">{% translate "Разместить объявление" %}</a>
</section>
<section class="use">
@@ -184,9 +239,9 @@
<div class="h3">
{% translate "Нужно отправить посылку партнеру, родителям или знакомым?" %}
</div>
<a href="{% url "registration_page" %}" class="use__btn btn btn--primary">{% translate "Найти перевозчика" %}</a>
<a href="{% url "registration_page" %}" onclick="ym(97070898,'reachGoal','Registration'); return true;" class="use__btn btn btn--primary">{% translate "Найти перевозчика" %}</a>
<br/>
<a href="{% url "registration_page" %}" class="use__link">{% translate "Зарегистрироваться" %}</a>
<a href="{% url "registration_page" %}" onclick="ym(97070898,'reachGoal','Registration'); return true;" class="use__link">{% translate "Зарегистрироваться" %}</a>
</section>
<section class="diff">
<div class="title">{% translate "Чем мы отличаемся от классических почтовых сервисов" %}</div>
@@ -258,6 +313,7 @@
<video
data-src="{{ MEDIA_URL }}{{ media_item.video }}"
poster="{{ MEDIA_URL }}{{ media_item.picture }}"
playsinline="false"
controls
autoplay
></video>
@@ -389,9 +445,9 @@
{% translate "Хочешь отправить посылку партнеру, родным или знакомым людям быстро и недорого?" %}
</div>
<div class="subtitle">
{% translate "Зарегистрируйся на <a href='#' class='animate__link'>Trip With Bonus</a> прямо сейчас, размести бесплатно объявление и получи запросы на перевозку твоей посылки" %}
{% translate "Зарегистрируйся на <a href='https://tripwb.com/' class='animate__link'>Trip With Bonus</a> прямо сейчас, размести бесплатно объявление и получи запросы на перевозку твоей посылки" %}
</div>
<a href="{% url "registration_page" %}"
<a href="{% url "registration_page" %}" onclick="ym(97070898,'reachGoal','Registration'); return true;"
class="use__btn btn btn--primary">{% translate "Разместить объявление" %}</a>
<script>
document.addEventListener("DOMContentLoaded", () => {
@@ -468,11 +524,11 @@
</div>
<div class="benefits__third">
<div class="benefits__item">
<h2>{% translate "Уведомления" %}</h2>
<h2>{% translate "Удобный поиск" %}</h2>
<p>{% translate "Можешь самостоятельно найти перевозчиков или разместить объявление на&nbsp;сайте." %}</p>
</div>
<div class="benefits__item">
<h2>{% translate "Удобный поиск" %}</h2>
<h2>{% translate "Уведомления" %}</h2>
<p>{% translate "Как только по&nbsp;твоему объявлению найдется перевозчик мы&nbsp;сообщим на&nbsp;E-mail." %}</p>
</div>
<div class="benefits__item">
@@ -531,7 +587,7 @@
<div class="subtitle">
{% translate "Достаточно просто зайти на сайт, разместить объявление в пару кликов и дождаться откликов от попутчиков." %}
</div>
<a href="{% url "registration_page" %}"
<a href="{% url "registration_page" %}" onclick="ym(97070898,'reachGoal','Registration'); return true;"
class="use__btn btn btn--primary">{% translate "Разместить объявление" %}</a>
</section>
<section class="sore">
@@ -539,7 +595,7 @@
{% translate "О наболевшем..." %}
</div>
<div class="subtitle">
{% translate "Мы&nbsp;знаем, каково это без конца и&nbsp;края закидывать сообщения в&nbsp;чаты и&nbsp;группы в&nbsp;социальных сетях, в&nbsp;надежде найти человека, который едет или летит в&nbsp;нужном направлении, чтобы передать посылоку своим родным или близким. Очень часто ещё и&nbsp;стоимость пересылки в&nbsp;обычных почтовых сервисах выше стоимости самой посылки." %}
{% translate "Мы&nbsp;знаем, каково это без конца и&nbsp;края закидывать сообщения в&nbsp;чаты и&nbsp;группы в&nbsp;социальных сетях, в&nbsp;надежде найти человека, который едет или летит в&nbsp;нужном направлении, чтобы передать посылку своим родным или близким. Очень часто ещё и&nbsp;стоимость пересылки в&nbsp;обычных почтовых сервисах выше стоимости самой посылки." %}
</div>
<picture>
<source srcset="{% static "img/png/mover/sore-1720.png" %}" media="(min-width: 1720px)"/>
@@ -551,7 +607,7 @@
<div class="h3">
{% translate "Зарегистрируйте бесплатно прямо сейчас и&nbsp;размести свое первое объявление об&nbsp;отправке посылки" %}
</div>
<a href="{% url "registration_page" %}"
<a href="{% url "registration_page" %}" onclick="ym(97070898,'reachGoal','Registration'); return true;"
class="sore__btn btn btn--primary">{% translate "Зарегистрироваться и разместить" %}</a>
<br/>
</div>

View File

@@ -5,7 +5,6 @@
{% block meta %}
<script src='{% static "js/authorization.js" %}'></script>
<script src='{% static "js/registration.js" %}'></script>
{% endblock %}
{% block content %}

View File

@@ -3,8 +3,29 @@
{% block meta %}
<script src='{% static "js/registration.js" %}'></script>
<script>fbq('track', 'Contact');</script>
{% endblock %}
{% block content %}
<!-- Meta Pixel Code -->
<script>
!function(f,b,e,v,n,t,s)
{if(f.fbq)return;n=f.fbq=function(){n.callMethod?
n.callMethod.apply(n,arguments):n.queue.push(arguments)};
if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';
n.queue=[];t=b.createElement(e);t.async=!0;
t.src=v;s=b.getElementsByTagName(e)[0];
s.parentNode.insertBefore(t,s)}(window, document,'script',
'https://connect.facebook.net/en_US/fbevents.js');
fbq('init', '1123814969330706');
fbq('track', 'PageView');
</script>
<noscript><img height="1" width="1" style="display:none"
src="https://www.facebook.com/tr?id=1123814969330706&ev=PageView&noscript=1"
/></noscript>
<!-- End Meta Pixel Code -->
{% include 'forms/f_registration.html' %}
{% endblock %}

View File

@@ -33,6 +33,27 @@
<script defer src='{% static "js/check_new_messages.js" %}'></script>
<script>
!function(f,b,e,v,n,t,s)
{if(f.fbq)return;n=f.fbq=function(){n.callMethod?
n.callMethod.apply(n,arguments):n.queue.push(arguments)};
if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';
n.queue=[];t=b.createElement(e);t.async=!0;
t.src=v;s=b.getElementsByTagName(e)[0];
s.parentNode.insertBefore(t,s)}(window, document,'script',
'https://connect.facebook.net/en_US/fbevents.js');
fbq('init', '1123814969330706');
fbq('track', 'PageView');
</script>
<noscript><img height="1" width="1" style="display:none"
src="https://www.facebook.com/tr?id=1123814969330706&ev=PageView&noscript=1"
/></noscript>
<script>
if (localStorage.getItem("needed_fbq")){
fbq('track', 'Contact');
localStorage.removeItem("needed_fbq")
}
</script>
{% endblock %}

View File

@@ -17,6 +17,14 @@
{% webpush_header %}
<meta name="google-site-verification" content="4V4upJSK2_4MBrr5ZXjcCLw3bBwXc4_gsnKudJAaWqI" />
<meta name="yandex-verification" content="b8a976575e41fbbc" />
<meta name="google-adsense-account" content="ca-pub-3479005276839542">
<!-- Yandex.RTB -->
<script>window.yaContextCb=window.yaContextCb||[]</script>
<script src="https://yandex.ru/ads/system/context.js" async></script>
<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-3479005276839542"
crossorigin="anonymous"></script>
{% include "inter/meta_OpenGraph_Schema.html" %}