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 2016/01/22 06:29:17 UTC
svn commit: r1726143 - in /openmeetings/application:
branches/3.1.x/openmeetings-install/src/main/java/org/apache/openmeetings/installation/
branches/3.1.x/openmeetings-server/src/site/xdoc/
branches/3.1.x/openmeetings-util/src/main/java/org/apache/ope...
Author: solomax
Date: Fri Jan 22 05:29:16 2016
New Revision: 1726143
URL: http://svn.apache.org/viewvc?rev=1726143&view=rev
Log:
[OPENMEETINGS-1313] support for google analytics is added
Added:
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/om-ga.js
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/om-ga.js
Modified:
openmeetings/application/branches/3.1.x/openmeetings-install/src/main/java/org/apache/openmeetings/installation/ImportInitvalues.java
openmeetings/application/branches/3.1.x/openmeetings-server/src/site/xdoc/GeneralConfiguration.xml
openmeetings/application/branches/3.1.x/openmeetings-util/src/main/java/org/apache/openmeetings/util/OpenmeetingsVariables.java
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/ActivatePage.java
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/BaseInitedPage.java
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/BaseNotInitedPage.java
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/BasePage.java
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/MainPage.java
openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/NotInitedPage.java
openmeetings/application/trunk/openmeetings-install/src/main/java/org/apache/openmeetings/installation/ImportInitvalues.java
openmeetings/application/trunk/openmeetings-server/src/site/xdoc/GeneralConfiguration.xml
openmeetings/application/trunk/openmeetings-util/src/main/java/org/apache/openmeetings/util/OpenmeetingsVariables.java
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/ActivatePage.java
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/BaseInitedPage.java
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/BaseNotInitedPage.java
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/BasePage.java
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/MainPage.java
openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/NotInitedPage.java
Modified: openmeetings/application/branches/3.1.x/openmeetings-install/src/main/java/org/apache/openmeetings/installation/ImportInitvalues.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-install/src/main/java/org/apache/openmeetings/installation/ImportInitvalues.java?rev=1726143&r1=1726142&r2=1726143&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-install/src/main/java/org/apache/openmeetings/installation/ImportInitvalues.java (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-install/src/main/java/org/apache/openmeetings/installation/ImportInitvalues.java Fri Jan 22 05:29:16 2016
@@ -32,6 +32,7 @@ import static org.apache.openmeetings.ut
import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_DEFAULT_LANG_KEY;
import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_DEFAULT_LDAP_ID;
import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_FRONTEND_REGISTER_KEY;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_GOOGLE_ANALYTICS_CODE;
import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_IGNORE_BAD_SSL;
import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_LOGIN_MIN_LENGTH_KEY;
import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_MAX_UPLOAD_SIZE_KEY;
@@ -410,6 +411,7 @@ public class ImportInitvalues {
cfgDao.add(CONFIG_REDIRECT_URL_FOR_EXTERNAL_KEY, "", null,
"Users entered the room via invitationHash or secureHash will be redirected to this URL on connection lost");
cfgDao.add(CONFIG_CALENDAR_FIRST_DAY, "0", null, "The day that each week begins. The value must be a number that represents the day of the week. Sunday=0, Monday=1, Tuesday=2, etc.");
+ cfgDao.add(CONFIG_GOOGLE_ANALYTICS_CODE, null, null, "Code for Google Analytics");
log.debug("Configurations ADDED");
}
Modified: openmeetings/application/branches/3.1.x/openmeetings-server/src/site/xdoc/GeneralConfiguration.xml
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-server/src/site/xdoc/GeneralConfiguration.xml?rev=1726143&r1=1726142&r2=1726143&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-server/src/site/xdoc/GeneralConfiguration.xml (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-server/src/site/xdoc/GeneralConfiguration.xml Fri Jan 22 05:29:16 2016
@@ -296,6 +296,12 @@
<td> The day that each week begins. The value must be a number that represents the day of the week. Sunday=0, Monday=1, Tuesday=2, etc. </td>
<td> 3.0.4 </td>
</tr>
+ <tr>
+ <td> google.analytics.code </td>
+ <td> </td>
+ <td> Code for Google Analytics. </td>
+ <td> 3.1.0 </td>
+ </tr>
</table>
</section>
Modified: openmeetings/application/branches/3.1.x/openmeetings-util/src/main/java/org/apache/openmeetings/util/OpenmeetingsVariables.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-util/src/main/java/org/apache/openmeetings/util/OpenmeetingsVariables.java?rev=1726143&r1=1726142&r2=1726143&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-util/src/main/java/org/apache/openmeetings/util/OpenmeetingsVariables.java (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-util/src/main/java/org/apache/openmeetings/util/OpenmeetingsVariables.java Fri Jan 22 05:29:16 2016
@@ -44,6 +44,7 @@ public class OpenmeetingsVariables {
public static final String CONFIG_SCREENSHARING_ALLOW_REMOTE = "screensharing.allow.remote";
public static final String CONFIG_CALENDAR_FIRST_DAY = "calendar.firstday";
public static final String CONFIG_DEFAULT_GROUP_ID = "default_group_id";
+ public static final String CONFIG_GOOGLE_ANALYTICS_CODE = "google.analytics.code";
public static int DEFAULT_MINUTES_REMINDER_SEND = 15;
public static String DEFAULT_BASE_URL = "http://localhost:5080/openmeetings/";
Modified: openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/ActivatePage.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/ActivatePage.java?rev=1726143&r1=1726142&r2=1726143&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/ActivatePage.java (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/ActivatePage.java Fri Jan 22 05:29:16 2016
@@ -18,6 +18,8 @@
*/
package org.apache.openmeetings.web.pages;
+import static org.apache.openmeetings.web.app.Application.getBean;
+
import java.util.Date;
import org.apache.openmeetings.db.dao.user.UserDao;
@@ -34,14 +36,14 @@ public class ActivatePage extends BaseNo
public ActivatePage(PageParameters pp) {
String userHash = pp.get(ACTIVATION_PARAM).toString();
if (userHash != null) {
- User user = Application.getBean(UserDao.class).getUserByActivationHash(userHash);
+ User user = getBean(UserDao.class).getUserByActivationHash(userHash);
if (user != null && !AuthLevelUtil.hasLoginLevel(user.getRights())) {
// activate
user.getRights().add(Right.Login);
user.setUpdated(new Date());
- Application.getBean(UserDao.class).update(user, null);
+ getBean(UserDao.class).update(user, null);
}
}
setResponsePage(Application.get().getSignInPageClass());
Modified: openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/BaseInitedPage.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/BaseInitedPage.java?rev=1726143&r1=1726142&r2=1726143&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/BaseInitedPage.java (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/BaseInitedPage.java Fri Jan 22 05:29:16 2016
@@ -38,7 +38,7 @@ public abstract class BaseInitedPage ext
}
@Override
- public boolean isRtl() {
+ protected boolean isRtl() {
return FormatHelper.isRtlLanguage(getLanguageCode());
}
}
Modified: openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/BaseNotInitedPage.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/BaseNotInitedPage.java?rev=1726143&r1=1726142&r2=1726143&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/BaseNotInitedPage.java (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/BaseNotInitedPage.java Fri Jan 22 05:29:16 2016
@@ -40,7 +40,7 @@ public abstract class BaseNotInitedPage
}
@Override
- public boolean isRtl() {
+ protected boolean isRtl() {
boolean rtl = false;
if (Application.isInstalled()) {
rtl = FormatHelper.isRtlLanguage(WebSession.get().getLocale().toString());
Modified: openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/BasePage.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/BasePage.java?rev=1726143&r1=1726142&r2=1726143&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/BasePage.java (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/BasePage.java Fri Jan 22 05:29:16 2016
@@ -18,9 +18,14 @@
*/
package org.apache.openmeetings.web.pages;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_GOOGLE_ANALYTICS_CODE;
+import static org.apache.openmeetings.web.app.Application.getBean;
+
import java.util.HashMap;
import java.util.Map;
+import org.apache.directory.api.util.Strings;
+import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
import org.apache.openmeetings.web.app.Application;
import org.apache.openmeetings.web.common.HeaderPanel;
import org.apache.openmeetings.web.util.OmUrlFragment;
@@ -31,10 +36,12 @@ import org.apache.wicket.markup.head.Css
import org.apache.wicket.markup.head.CssReferenceHeaderItem;
import org.apache.wicket.markup.head.IHeaderResponse;
import org.apache.wicket.markup.head.JavaScriptHeaderItem;
+import org.apache.wicket.markup.head.OnDomReadyHeaderItem;
import org.apache.wicket.markup.head.PriorityHeaderItem;
import org.apache.wicket.markup.html.TransparentWebMarkupContainer;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.request.IRequestParameters;
+import org.apache.wicket.request.resource.JavaScriptResourceReference;
import org.apache.wicket.util.string.StringValue;
import org.wicketstuff.urlfragment.AsyncUrlFragmentAwarePage;
@@ -43,7 +50,7 @@ public abstract class BasePage extends A
private final Map<String, String> options;
private final HeaderPanel header;
- public abstract boolean isRtl();
+ protected abstract boolean isRtl();
protected abstract String getLanguageCode();
protected abstract String getApplicationName();
@@ -80,6 +87,14 @@ public abstract class BasePage extends A
protected Map<String, String> getOptions() {
return options;
}
+
+ protected String getGaCode() {
+ return getBean(ConfigurationDao.class).getConfValue(CONFIG_GOOGLE_ANALYTICS_CODE, String.class, null);
+ }
+
+ protected boolean isMainPage() {
+ return false;
+ }
@Override
public void renderHead(IHeaderResponse response) {
@@ -91,5 +106,11 @@ public abstract class BasePage extends A
response.render(CssHeaderItem.forUrl("css/theme-rtl.css"));
response.render(CssHeaderItem.forUrl("css/admin-rtl.css"));
}
+ if (!Strings.isEmpty(getGaCode())) {
+ response.render(new PriorityHeaderItem(JavaScriptHeaderItem.forReference(new JavaScriptResourceReference(BasePage.class, "om-ga.js"))));
+ StringBuilder script = new StringBuilder("initGA('");
+ script.append(getGaCode()).append("');").append(isMainPage() ? "initHash()" : "init()").append(';');
+ response.render(OnDomReadyHeaderItem.forScript(script));
+ }
}
}
Modified: openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/MainPage.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/MainPage.java?rev=1726143&r1=1726142&r2=1726143&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/MainPage.java (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/MainPage.java Fri Jan 22 05:29:16 2016
@@ -324,4 +324,9 @@ public class MainPage extends BaseInited
public ChatPanel getChat() {
return chat;
}
+
+ @Override
+ protected boolean isMainPage() {
+ return true;
+ }
}
Modified: openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/NotInitedPage.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/NotInitedPage.java?rev=1726143&r1=1726142&r2=1726143&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/NotInitedPage.java (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/NotInitedPage.java Fri Jan 22 05:29:16 2016
@@ -32,4 +32,9 @@ public class NotInitedPage extends BaseN
throw new RestartResponseException(Application.get().getHomePage());
}
}
+
+ @Override
+ protected String getGaCode() {
+ return null;
+ }
}
Added: openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/om-ga.js
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/om-ga.js?rev=1726143&view=auto
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/om-ga.js (added)
+++ openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/om-ga.js Fri Jan 22 05:29:16 2016
@@ -0,0 +1,42 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") + you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+(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');
+}
+
+function init() {
+ ga('send', 'pageview');
+}
+
+function initHash() {
+ ga('send', 'pageview', window.location.hash);
+
+ $(window).bind( 'hashchange', function( e ) {
+ ga('send', 'pageview', window.location.hash);
+ });
+}
Modified: openmeetings/application/trunk/openmeetings-install/src/main/java/org/apache/openmeetings/installation/ImportInitvalues.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-install/src/main/java/org/apache/openmeetings/installation/ImportInitvalues.java?rev=1726143&r1=1726142&r2=1726143&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-install/src/main/java/org/apache/openmeetings/installation/ImportInitvalues.java (original)
+++ openmeetings/application/trunk/openmeetings-install/src/main/java/org/apache/openmeetings/installation/ImportInitvalues.java Fri Jan 22 05:29:16 2016
@@ -32,6 +32,7 @@ import static org.apache.openmeetings.ut
import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_DEFAULT_LANG_KEY;
import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_DEFAULT_LDAP_ID;
import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_FRONTEND_REGISTER_KEY;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_GOOGLE_ANALYTICS_CODE;
import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_IGNORE_BAD_SSL;
import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_LOGIN_MIN_LENGTH_KEY;
import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_MAX_UPLOAD_SIZE_KEY;
@@ -410,6 +411,7 @@ public class ImportInitvalues {
cfgDao.add(CONFIG_REDIRECT_URL_FOR_EXTERNAL_KEY, "", null,
"Users entered the room via invitationHash or secureHash will be redirected to this URL on connection lost");
cfgDao.add(CONFIG_CALENDAR_FIRST_DAY, "0", null, "The day that each week begins. The value must be a number that represents the day of the week. Sunday=0, Monday=1, Tuesday=2, etc.");
+ cfgDao.add(CONFIG_GOOGLE_ANALYTICS_CODE, null, null, "Code for Google Analytics");
log.debug("Configurations ADDED");
}
Modified: openmeetings/application/trunk/openmeetings-server/src/site/xdoc/GeneralConfiguration.xml
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-server/src/site/xdoc/GeneralConfiguration.xml?rev=1726143&r1=1726142&r2=1726143&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-server/src/site/xdoc/GeneralConfiguration.xml (original)
+++ openmeetings/application/trunk/openmeetings-server/src/site/xdoc/GeneralConfiguration.xml Fri Jan 22 05:29:16 2016
@@ -296,6 +296,12 @@
<td> The day that each week begins. The value must be a number that represents the day of the week. Sunday=0, Monday=1, Tuesday=2, etc. </td>
<td> 3.0.4 </td>
</tr>
+ <tr>
+ <td> google.analytics.code </td>
+ <td> </td>
+ <td> Code for Google Analytics. </td>
+ <td> 3.1.0 </td>
+ </tr>
</table>
</section>
Modified: openmeetings/application/trunk/openmeetings-util/src/main/java/org/apache/openmeetings/util/OpenmeetingsVariables.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-util/src/main/java/org/apache/openmeetings/util/OpenmeetingsVariables.java?rev=1726143&r1=1726142&r2=1726143&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-util/src/main/java/org/apache/openmeetings/util/OpenmeetingsVariables.java (original)
+++ openmeetings/application/trunk/openmeetings-util/src/main/java/org/apache/openmeetings/util/OpenmeetingsVariables.java Fri Jan 22 05:29:16 2016
@@ -44,6 +44,7 @@ public class OpenmeetingsVariables {
public static final String CONFIG_SCREENSHARING_ALLOW_REMOTE = "screensharing.allow.remote";
public static final String CONFIG_CALENDAR_FIRST_DAY = "calendar.firstday";
public static final String CONFIG_DEFAULT_GROUP_ID = "default_group_id";
+ public static final String CONFIG_GOOGLE_ANALYTICS_CODE = "google.analytics.code";
public static int DEFAULT_MINUTES_REMINDER_SEND = 15;
public static String DEFAULT_BASE_URL = "http://localhost:5080/openmeetings/";
Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/ActivatePage.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/ActivatePage.java?rev=1726143&r1=1726142&r2=1726143&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/ActivatePage.java (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/ActivatePage.java Fri Jan 22 05:29:16 2016
@@ -18,6 +18,8 @@
*/
package org.apache.openmeetings.web.pages;
+import static org.apache.openmeetings.web.app.Application.getBean;
+
import java.util.Date;
import org.apache.openmeetings.db.dao.user.UserDao;
@@ -34,14 +36,14 @@ public class ActivatePage extends BaseNo
public ActivatePage(PageParameters pp) {
String userHash = pp.get(ACTIVATION_PARAM).toString();
if (userHash != null) {
- User user = Application.getBean(UserDao.class).getUserByActivationHash(userHash);
+ User user = getBean(UserDao.class).getUserByActivationHash(userHash);
if (user != null && !AuthLevelUtil.hasLoginLevel(user.getRights())) {
// activate
user.getRights().add(Right.Login);
user.setUpdated(new Date());
- Application.getBean(UserDao.class).update(user, null);
+ getBean(UserDao.class).update(user, null);
}
}
setResponsePage(Application.get().getSignInPageClass());
Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/BaseInitedPage.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/BaseInitedPage.java?rev=1726143&r1=1726142&r2=1726143&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/BaseInitedPage.java (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/BaseInitedPage.java Fri Jan 22 05:29:16 2016
@@ -38,7 +38,7 @@ public abstract class BaseInitedPage ext
}
@Override
- public boolean isRtl() {
+ protected boolean isRtl() {
return FormatHelper.isRtlLanguage(getLanguageCode());
}
}
Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/BaseNotInitedPage.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/BaseNotInitedPage.java?rev=1726143&r1=1726142&r2=1726143&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/BaseNotInitedPage.java (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/BaseNotInitedPage.java Fri Jan 22 05:29:16 2016
@@ -40,7 +40,7 @@ public abstract class BaseNotInitedPage
}
@Override
- public boolean isRtl() {
+ protected boolean isRtl() {
boolean rtl = false;
if (Application.isInstalled()) {
rtl = FormatHelper.isRtlLanguage(WebSession.get().getLocale().toString());
Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/BasePage.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/BasePage.java?rev=1726143&r1=1726142&r2=1726143&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/BasePage.java (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/BasePage.java Fri Jan 22 05:29:16 2016
@@ -18,9 +18,14 @@
*/
package org.apache.openmeetings.web.pages;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_GOOGLE_ANALYTICS_CODE;
+import static org.apache.openmeetings.web.app.Application.getBean;
+
import java.util.HashMap;
import java.util.Map;
+import org.apache.directory.api.util.Strings;
+import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
import org.apache.openmeetings.web.app.Application;
import org.apache.openmeetings.web.common.HeaderPanel;
import org.apache.openmeetings.web.util.OmUrlFragment;
@@ -31,10 +36,12 @@ import org.apache.wicket.markup.head.Css
import org.apache.wicket.markup.head.CssReferenceHeaderItem;
import org.apache.wicket.markup.head.IHeaderResponse;
import org.apache.wicket.markup.head.JavaScriptHeaderItem;
+import org.apache.wicket.markup.head.OnDomReadyHeaderItem;
import org.apache.wicket.markup.head.PriorityHeaderItem;
import org.apache.wicket.markup.html.TransparentWebMarkupContainer;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.request.IRequestParameters;
+import org.apache.wicket.request.resource.JavaScriptResourceReference;
import org.apache.wicket.util.string.StringValue;
import org.wicketstuff.urlfragment.AsyncUrlFragmentAwarePage;
@@ -43,7 +50,7 @@ public abstract class BasePage extends A
private final Map<String, String> options;
private final HeaderPanel header;
- public abstract boolean isRtl();
+ protected abstract boolean isRtl();
protected abstract String getLanguageCode();
protected abstract String getApplicationName();
@@ -80,6 +87,14 @@ public abstract class BasePage extends A
protected Map<String, String> getOptions() {
return options;
}
+
+ protected String getGaCode() {
+ return getBean(ConfigurationDao.class).getConfValue(CONFIG_GOOGLE_ANALYTICS_CODE, String.class, null);
+ }
+
+ protected boolean isMainPage() {
+ return false;
+ }
@Override
public void renderHead(IHeaderResponse response) {
@@ -91,5 +106,11 @@ public abstract class BasePage extends A
response.render(CssHeaderItem.forUrl("css/theme-rtl.css"));
response.render(CssHeaderItem.forUrl("css/admin-rtl.css"));
}
+ if (!Strings.isEmpty(getGaCode())) {
+ response.render(new PriorityHeaderItem(JavaScriptHeaderItem.forReference(new JavaScriptResourceReference(BasePage.class, "om-ga.js"))));
+ StringBuilder script = new StringBuilder("initGA('");
+ script.append(getGaCode()).append("');").append(isMainPage() ? "initHash()" : "init()").append(';');
+ response.render(OnDomReadyHeaderItem.forScript(script));
+ }
}
}
Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/MainPage.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/MainPage.java?rev=1726143&r1=1726142&r2=1726143&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/MainPage.java (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/MainPage.java Fri Jan 22 05:29:16 2016
@@ -330,4 +330,9 @@ public class MainPage extends BaseInited
public ChatPanel getChat() {
return chat;
}
+
+ @Override
+ protected boolean isMainPage() {
+ return true;
+ }
}
Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/NotInitedPage.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/NotInitedPage.java?rev=1726143&r1=1726142&r2=1726143&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/NotInitedPage.java (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/NotInitedPage.java Fri Jan 22 05:29:16 2016
@@ -32,4 +32,9 @@ public class NotInitedPage extends BaseN
throw new RestartResponseException(Application.get().getHomePage());
}
}
+
+ @Override
+ protected String getGaCode() {
+ return null;
+ }
}
Added: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/om-ga.js
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/om-ga.js?rev=1726143&view=auto
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/om-ga.js (added)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/om-ga.js Fri Jan 22 05:29:16 2016
@@ -0,0 +1,42 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") + you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+(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');
+}
+
+function init() {
+ ga('send', 'pageview');
+}
+
+function initHash() {
+ ga('send', 'pageview', window.location.hash);
+
+ $(window).bind( 'hashchange', function( e ) {
+ ga('send', 'pageview', window.location.hash);
+ });
+}