You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openmeetings.apache.org by so...@apache.org on 2020/10/03 17:22:44 UTC
[openmeetings] branch master updated: [OPENMEETINGS-2472] ga.js is
partially migrated to gtag
This is an automated email from the ASF dual-hosted git repository.
solomax pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/openmeetings.git
The following commit(s) were added to refs/heads/master by this push:
new fa86d55 [OPENMEETINGS-2472] ga.js is partially migrated to gtag
fa86d55 is described below
commit fa86d553f22dc09f9a48a01d98e7ef1e6f50a5e3
Author: Maxim Solodovnik <so...@gmail.com>
AuthorDate: Sun Oct 4 00:22:25 2020 +0700
[OPENMEETINGS-2472] ga.js is partially migrated to gtag
---
.../db/dao/basic/ConfigurationDao.java | 4 ++--
.../apache/openmeetings/web/pages/BasePage.java | 11 ++++++++++-
.../org/apache/openmeetings/web/pages/om-ga.js | 22 ++++++++++------------
3 files changed, 22 insertions(+), 15 deletions(-)
diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/basic/ConfigurationDao.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/basic/ConfigurationDao.java
index b81a447..bc5fc77 100644
--- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/basic/ConfigurationDao.java
+++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/basic/ConfigurationDao.java
@@ -631,8 +631,8 @@ public class ConfigurationDao implements IDataProviderDao<Configuration> {
addCspRule(cspConfig, CSPDirective.CONNECT_SRC, app.getWsUrl(), false); // special code for Safari browser
if (!Strings.isEmpty(getGaCode())) {
// https://developers.google.com/tag-manager/web/csp#universal_analytics_google_analytics
- addCspRule(cspConfig, CSPDirective.IMG_SRC, "https://www.google-analytics.com");
- addCspRule(cspConfig, CSPDirective.SCRIPT_SRC, "https://www.google-analytics.com, https://ssl.google-analytics.com");
+ //addCspRule(cspConfig, CSPDirective.IMG_SRC, "https://www.google-analytics.com");
+ addCspRule(cspConfig, CSPDirective.SCRIPT_SRC, "https://www.googletagmanager.com");
}
oauthDao.getActive().forEach(oauth -> {
if (!Strings.isEmpty(oauth.getIconUrl())) {
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/BasePage.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/BasePage.java
index f3d47e1..97f6879 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/BasePage.java
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/BasePage.java
@@ -25,6 +25,7 @@ import static org.apache.openmeetings.web.app.Application.isInstalled;
import static org.apache.wicket.RuntimeConfigurationType.DEVELOPMENT;
import java.util.HashMap;
+import java.util.List;
import java.util.Map;
import org.apache.openmeetings.web.app.Application;
@@ -35,6 +36,7 @@ import org.apache.openmeetings.web.util.OmUrlFragment.AreaKeys;
import org.apache.wicket.AttributeModifier;
import org.apache.wicket.RestartResponseException;
import org.apache.wicket.markup.head.CssHeaderItem;
+import org.apache.wicket.markup.head.HeaderItem;
import org.apache.wicket.markup.head.IHeaderResponse;
import org.apache.wicket.markup.head.JavaScriptHeaderItem;
import org.apache.wicket.markup.head.OnDomReadyHeaderItem;
@@ -130,7 +132,14 @@ public abstract class BasePage extends AsyncUrlFragmentAwarePage {
response.render(CssHeaderItem.forUrl(String.format("css/theme_om/jquery-ui%s.css", suffix)));
response.render(CssHeaderItem.forUrl("css/theme.css"));
if (!Strings.isEmpty(getGaCode())) {
- response.render(new PriorityHeaderItem(JavaScriptHeaderItem.forReference(new JavaScriptResourceReference(BasePage.class, "om-ga.js"))));
+ response.render(new PriorityHeaderItem(JavaScriptHeaderItem.forReference(new JavaScriptResourceReference(BasePage.class, "om-ga.js") {
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ public List<HeaderItem> getDependencies() {
+ return List.of(JavaScriptHeaderItem.forUrl("https://www.googletagmanager.com/gtag/js?id=" + getGaCode()).setAsync(true));
+ }
+ })));
StringBuilder script = new StringBuilder("initGA('");
script.append(getGaCode()).append("');").append(isMainPage() ? "initHash()" : "init()").append(';');
response.render(OnDomReadyHeaderItem.forScript(script));
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/om-ga.js b/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/om-ga.js
index e7e73f4..0752f69 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/om-ga.js
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/om-ga.js
@@ -1,22 +1,20 @@
/* Licensed under the Apache License, Version 2.0 (the "License") http://www.apache.org/licenses/LICENSE-2.0 */
-(function(i,s,o,g,r,a,m){
- i['GoogleAnalyticsObject']=r;
- i[r]=i[r]||function(){
- (i[r].q=i[r].q||[]).push(arguments)
- },i[r].l=1*new Date();
- a=s.createElement(o),m=s.getElementsByTagName(o)[0];
- a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
-})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
function initGA(code) {
- ga('create', code, 'auto');
+ window.dataLayer = window.dataLayer || [];
+ function gtag() {
+ dataLayer.push(arguments);
+ }
+ gtag('js', new Date());
+
+ gtag('config', code);
}
function init() {
- ga('send', 'pageview');
+ gtag('event', 'pageview');
}
function initHash() {
- ga('send', 'pageview', window.location.hash);
+ gtag('event', 'pageview', window.location.hash);
$(window).bind('hashchange', function() {
- ga('send', 'pageview', window.location.hash);
+ gtag('event', 'pageview', window.location.hash);
});
}