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 2017/04/08 10:25:17 UTC

svn commit: r1790668 - in /openmeetings/application: branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/ branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/ trunk/openmeetings-web/src/main/ja...

Author: solomax
Date: Sat Apr  8 10:25:17 2017
New Revision: 1790668

URL: http://svn.apache.org/viewvc?rev=1790668&view=rev
Log:
[OPENMEETINGS-1624] file upload should work in IE11

Modified:
    openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/SwfPanel.html
    openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/SwfPanel.java
    openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/swf-functions.js
    openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/chat.js
    openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/SwfPanel.html
    openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/SwfPanel.java
    openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/swf-functions.js
    openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/chat.js

Modified: openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/SwfPanel.html
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/SwfPanel.html?rev=1790668&r1=1790667&r2=1790668&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/SwfPanel.html (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/SwfPanel.html Sat Apr  8 10:25:17 2017
@@ -7,16 +7,16 @@
   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.
-  
+
 -->
 <html xmlns:wicket="http://wicket.apache.org">
 <wicket:head>
@@ -44,6 +44,5 @@
 		<img src="images/ajax-loader.gif" />
 	</div>
 	<noscript>Please enable JavaScript in order to use this application.</noscript>
-	<script type="text/javascript" wicket:id="init"></script>
 </wicket:panel>
 </html>

Modified: openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/SwfPanel.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/SwfPanel.java?rev=1790668&r1=1790667&r2=1790668&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/SwfPanel.java (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/SwfPanel.java Sat Apr  8 10:25:17 2017
@@ -38,12 +38,14 @@ import org.apache.openmeetings.web.app.A
 import org.apache.openmeetings.web.app.WebSession;
 import org.apache.openmeetings.web.common.BasePanel;
 import org.apache.wicket.ajax.AbstractAjaxTimerBehavior;
+import org.apache.wicket.ajax.AbstractDefaultAjaxBehavior;
 import org.apache.wicket.ajax.AjaxRequestTarget;
 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.markup.head.OnDomReadyHeaderItem;
 import org.apache.wicket.markup.head.PriorityHeaderItem;
-import org.apache.wicket.markup.html.basic.Label;
+import org.apache.wicket.protocol.http.ClientProperties;
 import org.apache.wicket.request.mapper.parameter.PageParameters;
 import org.apache.wicket.request.mapper.parameter.PageParametersEncoder;
 import org.apache.wicket.request.resource.JavaScriptResourceReference;
@@ -65,7 +67,20 @@ public class SwfPanel extends BasePanel
 	public static final String PARAM_URL = "url";
 	public static final String SWF_TYPE_NETWORK = "network";
 	public static final String SWF_TYPE_SETTINGS = "settings";
+	private final PageParameters pp;
 	private Long roomId = null;
+	private final AbstractDefaultAjaxBehavior panelLoaded = new AbstractDefaultAjaxBehavior() {
+		private static final long serialVersionUID = 1L;
+
+		@Override
+		protected void respond(AjaxRequestTarget target) {
+			PageParameters spp = new PageParameters(pp);
+			if (roomId != null) {
+				spp.mergeWith(new PageParameters().add(WICKET_ROOM_ID, roomId));
+			}
+			target.appendJavaScript(getInitFunction(spp));
+		}
+	};
 
 	public SwfPanel(String id) {
 		this(id, new PageParameters());
@@ -77,6 +92,7 @@ public class SwfPanel extends BasePanel
 
 	public SwfPanel(String id, PageParameters pp) {
 		super(id);
+		this.pp = pp;
 		//OK let's find the room
 		try {
 			StringValue room = pp.get(WICKET_ROOM_ID);
@@ -86,12 +102,12 @@ public class SwfPanel extends BasePanel
 		} catch (Exception e) {
 			//no-op
 		}
-		PageParameters spp = new PageParameters(pp);
-		if (roomId != null) {
-			spp.mergeWith(new PageParameters().add(WICKET_ROOM_ID, roomId));
-		}
-		add(new Label("init", getInitFunction(spp)).setEscapeModelStrings(false));
-		add(new AbstractAjaxTimerBehavior(Duration.minutes(5)) {
+	}
+
+	@Override
+	protected void onInitialize() {
+		super.onInitialize();
+		add(panelLoaded, new AbstractAjaxTimerBehavior(Duration.minutes(5)) {
 			private static final long serialVersionUID = 1L;
 
 			@Override
@@ -114,6 +130,7 @@ public class SwfPanel extends BasePanel
 		if (WebSession.get().getClientInfo().getProperties().isBrowserMozillaFirefox()) {
 			response.render(new PriorityHeaderItem(CssHeaderItem.forCSS(".ui-widget-overlay{opacity: 1 !important;}", "ff-veil-hack")));
 		}
+		response.render(OnDomReadyHeaderItem.forScript(panelLoaded.getCallbackScript()));
 	}
 
 	public String getInitFunction(PageParameters pp) {
@@ -143,8 +160,10 @@ public class SwfPanel extends BasePanel
 						, "775", "452", "767", "764", "765", "918", "54", "761", "762", "144", "203", "642"
 						, "save.success");
 			}
-			initStr = String.format("var labels = %s; initSwf(%s);", lbls
-					, new JSONObject().put("src", swf + new PageParametersEncoder().encodePageParameters(pp)).toString());
+			JSONObject options = new JSONObject().put("src", swf + new PageParametersEncoder().encodePageParameters(pp));
+			ClientProperties cp = WebSession.get().getClientInfo().getProperties();
+			options.put("wmode", cp.isBrowserInternetExplorer() && cp.getBrowserVersionMajor() == 11 ? "opaque" : "direct");
+			initStr = String.format("var labels = %s; initSwf(%s);", lbls, options.toString());
 		}
 		return initStr;
 	}

Modified: openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/swf-functions.js
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/swf-functions.js?rev=1790668&r1=1790667&r2=1790668&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/swf-functions.js (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/swf-functions.js Sat Apr  8 10:25:17 2017
@@ -31,7 +31,7 @@ function initSwf(_options) {
 		.attr('quality', 'high')
 		.attr('bgcolor', options.bgcolor)
 		.attr('src', "public/" + options.src)
-		.attr('wmode', 'direct')
+		.attr('wmode', options.wmode)
 		.attr('allowfullscreen', true)
 		.attr('width', options.width).attr('height', options.height)
 		.attr('id', 'lzapp')

Modified: openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/chat.js
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/chat.js?rev=1790668&r1=1790667&r2=1790668&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/chat.js (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/chat.js Sat Apr  8 10:25:17 2017
@@ -33,9 +33,16 @@ var Chat = function() {
 		, emoticon = new CSSEmoticon()
 		, typingTimer
 		, doneTypingInterval = 5000 //time in ms, 5 second for example
-		, audio = new Audio('./public/chat_message.mp3');
+		, audio
 		;
-
+	try {
+		audio = new Audio('./public/chat_message.mp3');
+	} catch (e) {
+		//not implemented in IE
+		audio = {
+			play: function() {}
+		};
+	}
 	function doneTyping () {
 		typingTimer = null;
 		chatActivity('typing_stop', $('.room.box').data('room-id'));

Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/SwfPanel.html
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/SwfPanel.html?rev=1790668&r1=1790667&r2=1790668&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/SwfPanel.html (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/SwfPanel.html Sat Apr  8 10:25:17 2017
@@ -7,16 +7,16 @@
   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.
-  
+
 -->
 <html xmlns:wicket="http://wicket.apache.org">
 <wicket:head>
@@ -44,6 +44,5 @@
 		<img src="images/ajax-loader.gif" />
 	</div>
 	<noscript>Please enable JavaScript in order to use this application.</noscript>
-	<script type="text/javascript" wicket:id="init"></script>
 </wicket:panel>
 </html>

Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/SwfPanel.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/SwfPanel.java?rev=1790668&r1=1790667&r2=1790668&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/SwfPanel.java (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/SwfPanel.java Sat Apr  8 10:25:17 2017
@@ -21,11 +21,15 @@ package org.apache.openmeetings.web.room
 import static org.apache.wicket.RuntimeConfigurationType.DEVELOPMENT;
 
 import org.apache.openmeetings.web.app.Application;
+import org.apache.openmeetings.web.app.WebSession;
 import org.apache.openmeetings.web.common.BasePanel;
+import org.apache.wicket.ajax.AbstractDefaultAjaxBehavior;
+import org.apache.wicket.ajax.AjaxRequestTarget;
 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.basic.Label;
+import org.apache.wicket.protocol.http.ClientProperties;
 import org.apache.wicket.request.mapper.parameter.PageParameters;
 import org.apache.wicket.request.mapper.parameter.PageParametersEncoder;
 import org.apache.wicket.request.resource.JavaScriptResourceReference;
@@ -41,13 +45,42 @@ public class SwfPanel extends BasePanel
 	public static final String SWF = "swf";
 	public static final String SWF_TYPE_NETWORK = "network";
 	public static final String SWF_TYPE_SETTINGS = "settings";
+	private final PageParameters pp;
+	private final AbstractDefaultAjaxBehavior panelLoaded = new AbstractDefaultAjaxBehavior() {
+		private static final long serialVersionUID = 1L;
+
+		@Override
+		protected void respond(AjaxRequestTarget target) {
+			PageParameters spp = new PageParameters(pp);
+			target.appendJavaScript(getInitFunction(spp));
+		}
+	};
 
 	public SwfPanel(String id) {
 		this(id, new PageParameters());
 	}
 
-	public String getInitFunction() {
-		return getInitFunction(new PageParameters());
+	public SwfPanel(String id, PageParameters pp) {
+		super(id);
+		this.pp = pp;
+	}
+
+	@Override
+	protected void onInitialize() {
+		super.onInitialize();
+		add(panelLoaded);
+	}
+
+	private static ResourceReference newResourceReference() {
+		return new JavaScriptResourceReference(SwfPanel.class, "swf-functions.js");
+	}
+
+	@Override
+	public void renderHead(IHeaderResponse response) {
+		super.renderHead(response);
+		response.render(new PriorityHeaderItem(JavaScriptHeaderItem.forReference(newResourceReference())));
+		response.render(new PriorityHeaderItem(JavaScriptHeaderItem.forUrl("js/openmeetings_functions.js")));
+		response.render(OnDomReadyHeaderItem.forScript(panelLoaded.getCallbackScript()));
 	}
 
 	public String getInitFunction(PageParameters pp) {
@@ -77,8 +110,10 @@ public class SwfPanel extends BasePanel
 						, "775", "452", "767", "764", "765", "918", "54", "761", "762", "144", "203", "642"
 						, "save.success");
 			}
-			initStr = String.format("var labels = %s; initSwf(%s);", lbls
-					, new JSONObject().put("src", swf + new PageParametersEncoder().encodePageParameters(pp)).toString());
+			JSONObject options = new JSONObject().put("src", swf + new PageParametersEncoder().encodePageParameters(pp));
+			ClientProperties cp = WebSession.get().getClientInfo().getProperties();
+			options.put("wmode", cp.isBrowserInternetExplorer() && cp.getBrowserVersionMajor() == 11 ? "opaque" : "direct");
+			initStr = String.format("var labels = %s; initSwf(%s);", lbls, options.toString());
 		}
 		return initStr;
 	}
@@ -102,20 +137,4 @@ public class SwfPanel extends BasePanel
 		}
 		return arr.toString();
 	}
-
-	public SwfPanel(String id, PageParameters pp) {
-		super(id);
-		add(new Label("init", getInitFunction(pp)).setEscapeModelStrings(false));
-	}
-
-	private static ResourceReference newResourceReference() {
-		return new JavaScriptResourceReference(SwfPanel.class, "swf-functions.js");
-	}
-
-	@Override
-	public void renderHead(IHeaderResponse response) {
-		super.renderHead(response);
-		response.render(new PriorityHeaderItem(JavaScriptHeaderItem.forReference(newResourceReference())));
-		response.render(new PriorityHeaderItem(JavaScriptHeaderItem.forUrl("js/openmeetings_functions.js")));
-	}
 }

Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/swf-functions.js
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/swf-functions.js?rev=1790668&r1=1790667&r2=1790668&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/swf-functions.js (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/swf-functions.js Sat Apr  8 10:25:17 2017
@@ -31,7 +31,7 @@ function initSwf(_options) {
 		.attr('quality', 'high')
 		.attr('bgcolor', options.bgcolor)
 		.attr('src', "public/" + options.src)
-		.attr('wmode', 'direct')
+		.attr('wmode', options.wmode)
 		.attr('allowfullscreen', true)
 		.attr('width', options.width).attr('height', options.height)
 		.attr('id', 'lzapp')

Modified: openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/chat.js
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/chat.js?rev=1790668&r1=1790667&r2=1790668&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/chat.js (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/chat.js Sat Apr  8 10:25:17 2017
@@ -33,9 +33,16 @@ var Chat = function() {
 		, emoticon = new CSSEmoticon()
 		, typingTimer
 		, doneTypingInterval = 5000 //time in ms, 5 second for example
-		, audio = new Audio('./public/chat_message.mp3');
+		, audio
 		;
-
+	try {
+		audio = new Audio('./public/chat_message.mp3');
+	} catch (e) {
+		//not implemented in IE
+		audio = {
+			play: function() {}
+		};
+	}
 	function doneTyping () {
 		typingTimer = null;
 		chatActivity('typing_stop', $('.room.box').data('room-id'));