[OPENMEETINGS-1624] file upload should work in IE11

Project: http://git-wip-us.apache.org/repos/asf/openmeetings/repo
Commit: http://git-wip-us.apache.org/repos/asf/openmeetings/commit/b63f9dde
Tree: http://git-wip-us.apache.org/repos/asf/openmeetings/tree/b63f9dde
Diff: http://git-wip-us.apache.org/repos/asf/openmeetings/diff/b63f9dde

Branch: refs/heads/master
Commit: b63f9dde6a13a6b899cb84d3c611670556b6f8cc
Parents: 35544aa
Author: Maxim Solodovnik <[email protected]>
Authored: Sat Apr 8 10:25:17 2017 +0000
Committer: Maxim Solodovnik <[email protected]>
Committed: Sat Apr 8 10:25:17 2017 +0000

----------------------------------------------------------------------
 .../apache/openmeetings/web/room/SwfPanel.html  |  7 +--
 .../apache/openmeetings/web/room/SwfPanel.java  | 61 +++++++++++++-------
 .../openmeetings/web/room/swf-functions.js      |  2 +-
 .../apache/openmeetings/web/user/chat/chat.js   | 11 +++-
 4 files changed, 53 insertions(+), 28 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/openmeetings/blob/b63f9dde/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/SwfPanel.html
----------------------------------------------------------------------
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/SwfPanel.html 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/SwfPanel.html
index 9addd3b..fc318ca 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/SwfPanel.html
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/SwfPanel.html
@@ -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>

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/b63f9dde/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/SwfPanel.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/SwfPanel.java 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/SwfPanel.java
index bff4cda..255040c 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/SwfPanel.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/SwfPanel.java
@@ -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")));
-       }
 }

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/b63f9dde/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/swf-functions.js
----------------------------------------------------------------------
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/swf-functions.js
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/swf-functions.js
index aa84eba..5ecc512 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/swf-functions.js
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/swf-functions.js
@@ -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')

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/b63f9dde/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/chat.js
----------------------------------------------------------------------
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/chat.js 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/chat.js
index 570d33e..ca6548d 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/chat.js
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/chat/chat.js
@@ -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'));

Reply via email to