mirror of
https://github.com/Athou/commafeed.git
synced 2026-03-21 21:37:29 +00:00
google analytics support
This commit is contained in:
@@ -19,6 +19,10 @@ public class ApplicationSettings extends AbstractModel {
|
||||
* Wether registrations are open
|
||||
*/
|
||||
private boolean allowRegistrations = false;
|
||||
|
||||
private String googleAnalyticsTrackingCode;
|
||||
private String googleAnalyticsDomainName;
|
||||
|
||||
private String googleClientId;
|
||||
private String googleClientSecret;
|
||||
private int backgroundThreads = 3;
|
||||
@@ -109,4 +113,21 @@ public class ApplicationSettings extends AbstractModel {
|
||||
this.smtpPassword = smtpPassword;
|
||||
}
|
||||
|
||||
public String getGoogleAnalyticsTrackingCode() {
|
||||
return googleAnalyticsTrackingCode;
|
||||
}
|
||||
|
||||
public void setGoogleAnalyticsTrackingCode(
|
||||
String googleAnalyticsTrackingCode) {
|
||||
this.googleAnalyticsTrackingCode = googleAnalyticsTrackingCode;
|
||||
}
|
||||
|
||||
public String getGoogleAnalyticsDomainName() {
|
||||
return googleAnalyticsDomainName;
|
||||
}
|
||||
|
||||
public void setGoogleAnalyticsDomainName(String googleAnalyticsDomainName) {
|
||||
this.googleAnalyticsDomainName = googleAnalyticsDomainName;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,10 +1,16 @@
|
||||
package com.commafeed.frontend.pages;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
import javax.inject.Inject;
|
||||
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.apache.wicket.markup.head.IHeaderResponse;
|
||||
import org.apache.wicket.markup.head.JavaScriptHeaderItem;
|
||||
import org.apache.wicket.markup.head.filter.HeaderResponseContainer;
|
||||
import org.apache.wicket.markup.html.WebPage;
|
||||
import org.apache.wicket.model.Model;
|
||||
import org.apache.wicket.resource.TextTemplateResourceReference;
|
||||
|
||||
import com.commafeed.backend.dao.FeedCategoryDAO;
|
||||
import com.commafeed.backend.dao.FeedDAO;
|
||||
@@ -14,7 +20,10 @@ import com.commafeed.backend.dao.FeedSubscriptionDAO;
|
||||
import com.commafeed.backend.dao.UserDAO;
|
||||
import com.commafeed.backend.dao.UserRoleDAO;
|
||||
import com.commafeed.backend.dao.UserSettingsDAO;
|
||||
import com.commafeed.backend.model.ApplicationSettings;
|
||||
import com.commafeed.backend.services.ApplicationSettingsService;
|
||||
import com.commafeed.frontend.references.bootstrap.BootstrapReference;
|
||||
import com.google.api.client.util.Maps;
|
||||
|
||||
@SuppressWarnings("serial")
|
||||
public abstract class BasePage extends WebPage {
|
||||
@@ -43,6 +52,9 @@ public abstract class BasePage extends WebPage {
|
||||
@Inject
|
||||
protected UserRoleDAO userRoleDAO;
|
||||
|
||||
@Inject
|
||||
ApplicationSettingsService applicationSettingsService;
|
||||
|
||||
public BasePage() {
|
||||
add(new HeaderResponseContainer("footer-container", "footer-container"));
|
||||
}
|
||||
@@ -51,5 +63,16 @@ public abstract class BasePage extends WebPage {
|
||||
public void renderHead(IHeaderResponse response) {
|
||||
super.renderHead(response);
|
||||
BootstrapReference.renderHead(response);
|
||||
|
||||
final ApplicationSettings settings = applicationSettingsService.get();
|
||||
if (StringUtils.isNotBlank(settings.getGoogleAnalyticsTrackingCode())) {
|
||||
Map<String, Object> vars = Maps.newHashMap();
|
||||
vars.put("trackingCode", settings.getGoogleAnalyticsTrackingCode());
|
||||
vars.put("domainName", settings.getGoogleAnalyticsDomainName());
|
||||
response.render(JavaScriptHeaderItem
|
||||
.forReference(new TextTemplateResourceReference(
|
||||
BasePage.class, "analytics.js", Model.ofMap(vars))));
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,13 +1,10 @@
|
||||
package com.commafeed.frontend.pages;
|
||||
|
||||
import javax.inject.Inject;
|
||||
|
||||
import org.apache.wicket.markup.head.CssHeaderItem;
|
||||
import org.apache.wicket.markup.head.IHeaderResponse;
|
||||
import org.apache.wicket.markup.head.JavaScriptHeaderItem;
|
||||
import org.apache.wicket.request.mapper.parameter.PageParameters;
|
||||
|
||||
import com.commafeed.backend.dao.UserSettingsDAO;
|
||||
import com.commafeed.backend.model.UserRole.Role;
|
||||
import com.commafeed.backend.model.UserSettings;
|
||||
import com.commafeed.frontend.CommaFeedSession;
|
||||
@@ -30,9 +27,6 @@ import com.commafeed.frontend.references.spinjs.SpinJSReference;
|
||||
@SecurityCheck(Role.USER)
|
||||
public class HomePage extends BasePage {
|
||||
|
||||
@Inject
|
||||
UserSettingsDAO userSettingsDAO;
|
||||
|
||||
@Override
|
||||
public void renderHead(IHeaderResponse response) {
|
||||
super.renderHead(response);
|
||||
|
||||
13
src/main/java/com/commafeed/frontend/pages/analytics.js
Normal file
13
src/main/java/com/commafeed/frontend/pages/analytics.js
Normal file
@@ -0,0 +1,13 @@
|
||||
(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');
|
||||
|
||||
ga('create', '${trackingCode}', '${domainName}');
|
||||
ga('send', 'pageview');
|
||||
Reference in New Issue
Block a user