Skip to content
This repository was archived by the owner on Feb 22, 2024. It is now read-only.

negar/send_referrer #5383

Merged
merged 10 commits into from
Apr 30, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import {
Route } from 'react-router-dom';
import { redirectToLogin } from '_common/base/login';
import BinarySocket from '_common/base/socket_base';
import Language from '_common/language';
import routes from 'Constants/routes';
import GTM from 'Utils/gtm';
import LoginPrompt from '../Elements/login-prompt.jsx';
Expand All @@ -30,6 +31,7 @@ const RouteWithSubRoutes = route => {
);
}

Language.setCookie();
const title = route.title ? `${route.title} | ` : '';
document.title = `${ title }${ default_title }`;
BinarySocket.wait('website_status').then(() => {
Expand Down
73 changes: 25 additions & 48 deletions src/root_files/app/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
'de': 'de|at|li',
'es': 'ar|bo|cl|co|cr|cu|do|ec|sv|gt|hn|mx|ni|pa|py|pr|es|uy|ve',
'fr': 'fr|ad|bj|bf|cf|cg|ga|gn|ml|mc|ne|sn|tg',
'id': 'id',
'it': 'it',
'ko': 'kr',
'pl': 'po',
Expand All @@ -48,30 +49,13 @@
var loginid = localStorage.getItem('active_loginid');
var client_info = JSON.parse(localStorage.getItem('client.accounts') || '{}')[loginid];
var is_logged_in = client_info && client_info['token'];
window.location.href = (lang || 'en').toLowerCase() + '/' + (is_logged_in ? 'trading' : 'home') + '.html' + window.location.search;
}
function isDelayedRedirect() {
if (isGtmApplicable() && !redirectTimeOut) {
redirectTimeOut = setTimeout(redirect, 5000);
} else {
clearTimeout(redirectTimeOut);
redirect();
}
}
function isGtmApplicable() {
return /(www|staging)\.binary\.(com|me)/i.test(window.location.hostname);
}
function pushEvent() {
if (isGtmApplicable()) {
dataLayer.push({
'event': 'page_load',
'eventCallback': function() {
isDelayedRedirect();
}
});
} else {
isDelayedRedirect();
}

var search = window.location.search ? window.location.search : '';
var has_external_referrer = document.referrer && !/\.binary\.(com|me)/.test(document.referrer);
var has_utm_source = /utm_source/.test(search);
var utm_source = has_external_referrer && !has_utm_source ? ((search ? '&' : '?') + 'utm_source=' + new URL(document.referrer).hostname) : '';

window.location.href = (lang || 'en').toLowerCase() + '/' + (is_logged_in ? 'trading' : 'home') + '.html' + search + utm_source;
}

if (/^https:\/\/staging\.binary\.com\/translations\//i.test(window.location.href)) {
Expand All @@ -81,32 +65,25 @@
localStorage.setItem('index_referrer', document.referrer);
}
lang = getCookieItem('language');
var ws = new WebSocket('wss://ws.binaryws.com/websockets/v3?app_id=1');
ws.onopen = function(e) {
ws.send(JSON.stringify({'website_status': '1'}));
};
ws.onmessage = function(msg) {
var response = JSON.parse(msg.data);
if (response.msg_type === 'website_status') {
if (!lang && !response.error && response.hasOwnProperty('website_status')) {
lang = getLanguage(response.website_status.clients_country);
if (lang) {
redirect();
} else {
var ws = new WebSocket('wss://ws.binaryws.com/websockets/v3?app_id=1');
ws.onopen = function(e) {
ws.send(JSON.stringify({'website_status': '1'}));
};
ws.onmessage = function(msg) {
var response = JSON.parse(msg.data);
if (response.msg_type === 'website_status') {
if (!response.error && response.hasOwnProperty('website_status')) {
lang = getLanguage(response.website_status.clients_country);
}
ws.close();
redirect();
}
ws.close();
pushEvent(); // we need website_status.clients_country
}
};
};
}
}
</script>
</head>
<body>
<!-- Google Tag Manager -->
<noscript><iframe src="//www.googletagmanager.com/ns.html?id=GTM-MZWFF7"
height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
<script data-cfasync="false">(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-MZWFF7');</script>
<!-- End Google Tag Manager -->
</body>
</html>
36 changes: 8 additions & 28 deletions src/root_files/app_2/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
'de': 'de|at|li',
'es': 'ar|bo|cl|co|cr|cu|do|ec|sv|gt|hn|mx|ni|pa|py|pr|es|uy|ve',
'fr': 'fr|ad|bj|bf|cf|cg|ga|gn|ml|mc|ne|sn|tg',
'id': 'id',
'it': 'it',
'ko': 'kr',
'pl': 'po',
Expand All @@ -47,23 +48,14 @@
var loginid = localStorage.getItem('active_loginid');
var client_info = JSON.parse(localStorage.getItem('client.accounts') || '{}')[loginid];
var is_logged_in = client_info && client_info['token'];
window.location.href = (/\/app\//.test(window.location.pathname) ? '' : 'app/') + (lang || 'en').toLowerCase() + '/trade' + window.location.search;

var search = window.location.search ? window.location.search : '';
var has_external_referrer = document.referrer && !/\.binary\.(com|me)/.test(document.referrer);
var has_utm_source = /utm_source/.test(search);
var utm_source = has_external_referrer && !has_utm_source ? ((search ? '&' : '?') + 'utm_source=' + new URL(document.referrer).hostname) : '';

window.location.href = (/\/app\//.test(window.location.pathname) ? '' : 'app/') + (lang || 'en').toLowerCase() + '/trade' + search + utm_source;
}
// function isGtmApplicable() {
// return /(www|staging)\.binary\.(com|me)/i.test(window.location.hostname);
// }
// function pushEvent() {
// if (isGtmApplicable()) {
// dataLayer.push({
// 'event': 'page_load',
// 'eventCallback': function() {
// redirect();
// }
// });
// } else {
// redirect();
// }
// }

if (document.referrer) {
localStorage.setItem('index_referrer', document.referrer);
Expand All @@ -84,21 +76,9 @@
}
ws.close();
redirect();
// pushEvent(); // we need website_status.clients_country
}
};
}
</script>
</head>
<body>
<!--&lt;!&ndash; Google Tag Manager &ndash;&gt;-->
<!--<noscript><iframe src="//www.googletagmanager.com/ns.html?id=GTM-MZWFF7"-->
<!--height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>-->
<!--<script data-cfasync="false">(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':-->
<!--new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],-->
<!--j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=-->
<!--'//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);-->
<!--})(window,document,'script','dataLayer','GTM-MZWFF7');</script>-->
<!--&lt;!&ndash; End Google Tag Manager &ndash;&gt;-->
</body>
</html>