Skip to content

Commit

Permalink
add feature flag changes
Browse files Browse the repository at this point in the history
Signed-off-by: ayush-billore <ayush.billore@progress.com>
  • Loading branch information
ayush-billore committed Nov 14, 2023
1 parent b184da0 commit 2b8af23
Show file tree
Hide file tree
Showing 3 changed files with 70 additions and 58 deletions.
12 changes: 10 additions & 2 deletions src/supermarket/app/helpers/feature_flag_helper.rb
Original file line number Diff line number Diff line change
@@ -1,5 +1,13 @@
module FeatureFlagHelper
def air_gapped?
ENV["AIR_GAPPED"] == "true"
def gtag_enabled?
ENV["ENABLE_GTAG"] == "true"
end

def gtm_enabled?
ENV["ENABLE_GTM"] == "true"
end

def onetrust_enabled?
ENV["ENABLE_ONETRUST"] == "true"
end
end
110 changes: 58 additions & 52 deletions src/supermarket/app/views/application/_analytics.html.erb
Original file line number Diff line number Diff line change
@@ -1,70 +1,76 @@
<!-- Google Tag Manager conditional -->
<%= javascript_tag nonce: content_security_policy_nonce do %>
var oneTrustHelper = (function () {
function evalGTMScript() {
var gtmScript = document.getElementById("GTMScript");
gtmScript.type = "text/javascript";
gtmScript.classList.remove("optanon-category-1");
eval(gtmScript.innerHTML);
};
<% if gtm_enabled? %>
<!-- Google Tag Manager conditional -->
<%= javascript_tag nonce: content_security_policy_nonce do %>
var oneTrustHelper = (function () {
function evalGTMScript() {
var gtmScript = document.getElementById("GTMScript");
gtmScript.type = "text/javascript";
gtmScript.classList.remove("optanon-category-1");
eval(gtmScript.innerHTML);
};

return {
gtmFallback: function () {
console.warn('OneTrust not loaded.');
if (document.readyState !== 'loading') {
evalGTMScript();
} else {
document.addEventListener('readystatechange', function () {
if (document.readyState === 'interactive') {
evalGTMScript();
}
});
};
}
};
})();
return {
gtmFallback: function () {
console.warn('OneTrust not loaded.');
if (document.readyState !== 'loading') {
evalGTMScript();
} else {
document.addEventListener('readystatechange', function () {
if (document.readyState === 'interactive') {
evalGTMScript();
}
});
};
}
};
})();
<% end %>
<% end %>
<script async src="https://cdn.cookielaw.org/consent/e231efa5-3ed9-4b92-96bc-f4c0872ca486/otSDKStub.js" type="text/javascript" charset="UTF-8" data-domain-script="e231efa5-3ed9-4b92-96bc-f4c0872ca486" onerror="oneTrustHelper.gtmFallback()"></script>
<% if onetrust_enabled? %>
<script async src="https://cdn.cookielaw.org/consent/e231efa5-3ed9-4b92-96bc-f4c0872ca486/otSDKStub.js" type="text/javascript" charset="UTF-8" data-domain-script="e231efa5-3ed9-4b92-96bc-f4c0872ca486" onerror="oneTrustHelper.gtmFallback()"></script>
<% end %>
<% if ENV['GTM_ID'] %>
<% if gtm_enabled? && ENV['GTM_ID'] %>
<!-- Google Tag Manager -->
<%= javascript_tag type: "text/plain", id: "GTMScript", class: "optanon-category-1" do %>
(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=
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','<%= ENV['GTM_ID'] %>');
<% end %>
<% end %>
<% end %>
<!-- GTag conditional -->
<%= javascript_tag nonce: content_security_policy_nonce do %>
var oneTrustHelper = (function () {
function evalGTagScript() {
var gtScript = document.getElementById("GTagScript");
gtScript.type = "text/javascript";
gtScript.classList.remove("optanon-category-2");
eval(gtScript.innerHTML);
};
return {
gtagFallback: function () {
console.warn('OneTrust not loaded.');
if (document.readyState !== 'loading') {
evalGTagScript();
} else {
document.addEventListener('readystatechange', function () {
if (document.readyState === 'interactive') {
evalGTagScript();
}
});
};
}
};
})();
<% if gtag_enabled? %>
<!-- GTag conditional -->
<%= javascript_tag nonce: content_security_policy_nonce do %>
var oneTrustHelper = (function () {
function evalGTagScript() {
var gtScript = document.getElementById("GTagScript");
gtScript.type = "text/javascript";
gtScript.classList.remove("optanon-category-2");
eval(gtScript.innerHTML);
};
return {
gtagFallback: function () {
console.warn('OneTrust not loaded.');
if (document.readyState !== 'loading') {
evalGTagScript();
} else {
document.addEventListener('readystatechange', function () {
if (document.readyState === 'interactive') {
evalGTagScript();
}
});
};
}
};
})();
<% end %>
<% end %>
<% if ENV['GOOGLE_ANALYTICS_ID'] %>
<% if gtag_enabled? && ENV['GOOGLE_ANALYTICS_ID'] %>
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=<%= ENV['GOOGLE_ANALYTICS_ID'] %>"></script>
<%= javascript_tag nonce: content_security_policy_nonce do %>
Expand Down
6 changes: 2 additions & 4 deletions src/supermarket/app/views/layouts/application.html.erb
Original file line number Diff line number Diff line change
Expand Up @@ -18,12 +18,10 @@
<%= stylesheet_link_tag "//fonts.googleapis.com/css?family=Montserrat:400,700" %>
<% end %>
<%= csrf_meta_tags %>
<% unless air_gapped? %>
<%= render 'application/analytics' %>
<% end %>
<%= render 'application/analytics' %>
</head>
<body class="<%= controller.controller_name %>">
<% if ENV['GTM_ID'] && air_gapped? %>
<% if gtm_enabled? && ENV['GTM_ID'] %>
<!-- Google Tag Manager (noscript) -->
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=<%= ENV['GTM_ID'] %>" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
<!-- End Google Tag Manager (noscript) -->
Expand Down

0 comments on commit 2b8af23

Please sign in to comment.