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

commit 8bd0bd003418d5fb344dd25111d58334d525181e
Author: Maxim Solodovnik <[email protected]>
AuthorDate: Fri Mar 23 12:59:47 2018 +0700

    [OPENMEETINGS-1854] js improvements
---
 .../web/common/OmAjaxClientInfoBehavior.java       |   9 ++
 .../org/apache/openmeetings/web/common/main.js     |  40 +++++-
 .../openmeetings/web/room/VideoSettings.java       |   5 +-
 .../apache/openmeetings/web/room/settings-base.js  | 134 ++++++++++-----------
 .../apache/openmeetings/web/room/video-manager.js  |  22 ++--
 .../java/org/apache/openmeetings/web/room/video.js |  14 +--
 .../apache/openmeetings/web/room/wb/wb-board.js    |   4 +-
 7 files changed, 131 insertions(+), 97 deletions(-)

diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/OmAjaxClientInfoBehavior.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/OmAjaxClientInfoBehavior.java
index d087a11..0c81c78 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/OmAjaxClientInfoBehavior.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/OmAjaxClientInfoBehavior.java
@@ -18,8 +18,11 @@
  */
 package org.apache.openmeetings.web.common;
 
+import static org.apache.wicket.RuntimeConfigurationType.DEVELOPMENT;
+
 import java.util.List;
 
+import org.apache.openmeetings.web.app.Application;
 import org.apache.openmeetings.web.app.WebSession;
 import org.apache.wicket.Component;
 import org.apache.wicket.ajax.AjaxClientInfoBehavior;
@@ -32,6 +35,8 @@ import org.apache.wicket.protocol.http.request.WebClientInfo;
 import org.apache.wicket.request.cycle.RequestCycle;
 import org.apache.wicket.request.resource.JavaScriptResourceReference;
 
+import com.github.openjson.JSONObject;
+
 public class OmAjaxClientInfoBehavior extends AjaxClientInfoBehavior {
        private static final long serialVersionUID = 1L;
        private static final JavaScriptResourceReference MAIN_JS = new 
JavaScriptResourceReference(MainPanel.class, "main.js") {
@@ -49,6 +54,10 @@ public class OmAjaxClientInfoBehavior extends 
AjaxClientInfoBehavior {
        public void renderHead(Component component, IHeaderResponse response) {
                super.renderHead(component, response);
                response.render(new 
PriorityHeaderItem(JavaScriptHeaderItem.forReference(MAIN_JS)));
+               response.render(new 
PriorityHeaderItem(JavaScriptHeaderItem.forScript(
+                               String.format("OmUtil.init(%s)", new 
JSONObject()
+                                               .put("debug", DEVELOPMENT == 
Application.get().getConfigurationType()))
+                               , "om-util-init")));
        }
 
        @Override
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/main.js 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/main.js
index 1745c0c..2e1b975 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/main.js
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/main.js
@@ -23,7 +23,12 @@ var Settings = (function() {
        };
 })();
 var OmUtil = (function() {
+       let options, errs
        const self = {};
+
+       function _init(_options) {
+               options = _options;
+       }
        function _confirmDlg(_id, okHandler) {
                const confirm = $('#' + _id);
                confirm.dialog({
@@ -49,13 +54,44 @@ var OmUtil = (function() {
        function _tmpl(tmplId, newId) {
                return $(tmplId).clone().attr('id', newId || '');
        }
+       function _error(msg) {
+               if (typeof(msg) === 'object') {
+                       msg = msg.name + ": " + msg.message;
+               }
+               if (!!errs && errs.length > 0) {
+                       errs.data("kendoNotification").show(msg, "error");
+               }
+               return console.error(msg);
+       }
+       function _debugEnabled() {
+               return !!options && !!options.debug;
+       }
+       function _info() {
+               if (_debugEnabled()) {
+                       console.info.apply(this, arguments);
+               }
+       }
+       function _log() {
+               if (_debugEnabled()) {
+                       console.log.apply(this, arguments);
+               }
+       }
 
+       self.init = _init;
        self.confirmDlg = _confirmDlg;
        self.tmpl = _tmpl;
-       self.sendMessage = function(m) {
-               const msg = JSON.stringify(m || {});
+       self.debugEnabled = _debugEnabled;
+       self.enableDebug = function() { if (!!options) { options.debug = true; 
} };
+       self.sendMessage = function(_m, _base) {
+               const base = _base || {}
+                       , m = _m || {}
+                       , msg = JSON.stringify($.extend({}, base, m));
                Wicket.WebSocket.send(msg);
        };
+       self.initErrs = function(_e) { errs = _e; };
+       self.error = _error;
+       self.info = _info;
+       self.log = _log;
        return self;
 })();
 Wicket.BrowserInfo.collectExtraInfo = function(info) {
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/VideoSettings.java
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/VideoSettings.java
index fb9bcab..b6e0c38 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/VideoSettings.java
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/VideoSettings.java
@@ -19,9 +19,7 @@
 package org.apache.openmeetings.web.room;
 
 import static 
org.apache.openmeetings.util.OpenmeetingsVariables.getRoomSettings;
-import static org.apache.wicket.RuntimeConfigurationType.DEVELOPMENT;
 
-import org.apache.openmeetings.web.app.Application;
 import org.apache.wicket.markup.head.IHeaderResponse;
 import org.apache.wicket.markup.head.JavaScriptHeaderItem;
 import org.apache.wicket.markup.head.PriorityHeaderItem;
@@ -51,7 +49,6 @@ public class VideoSettings extends Panel {
 
        public static JSONObject getInitJson(String sid) {
                return new JSONObject(getRoomSettings().toString())
-                               .put("sid", sid)
-                               .put("debug", DEVELOPMENT == 
Application.get().getConfigurationType());
+                               .put("sid", sid);
        }
 }
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/settings-base.js
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/settings-base.js
index 13c90ee..eb4b9c1 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/settings-base.js
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/settings-base.js
@@ -53,7 +53,8 @@ var MicLevel = (function() {
 var VideoSettings = (function() {
        let vs, lm, s, cam, mic, res, o, rtcPeer, offerSdp, timer
                , vidScroll, vid, recBtn, playBtn, recAllowed = false
-               , errs, level;
+               , level;
+       const MsgBase = {type: 'kurento', mode: 'test'};
        function _load() {
                s = Settings.load();
                if (!s.video) {
@@ -98,19 +99,17 @@ var VideoSettings = (function() {
                Wicket.Event.unsubscribe("/websocket/message", _onWsMessage);
        }
        function _onIceCandidate(candidate) {
-               console.log('Local candidate' + JSON.stringify(candidate));
+               OmUtil.log('Local candidate' + JSON.stringify(candidate));
                OmUtil.sendMessage({
                        id : 'iceCandidate'
-                       , type: 'kurento'
-                       , mode: 'test'
                        , candidate: candidate
-               });
+               }, MsgBase);
        }
        function _init(options) {
                o = JSON.parse(JSON.stringify(options));
-               errs = $('#jsNotifications').kendoNotification({
+               OmUtil.initErrs($('#jsNotifications').kendoNotification({
                        autoHideAfter: 20000
-               }).data("kendoNotification");
+               }));
                vs = $('#video-settings');
                lm = vs.find('.level-meter');
                cam = vs.find('select.cam');
@@ -119,58 +118,58 @@ var VideoSettings = (function() {
                vidScroll = vs.find('.vid-block .video-conainer');
                timer = vs.find('.timer');
                vid = vidScroll.find('video');
-               recBtn = vs.find('.rec-start').click(function() {
-                       recBtn.prop('disabled', true).button('refresh');
-                       playBtn.prop('disabled', true).button('refresh');
-                       cam.prop('disabled', true);
-                       mic.prop('disabled', true);
-                       res.prop('disabled', true);
+               recBtn = vs.find('.rec-start')
+                       .button({icon: "ui-icon-bullet"})
+                       .click(function() {
+                               recBtn.prop('disabled', true).button('refresh');
+                               playBtn.prop('disabled', 
true).button('refresh');
+                               cam.prop('disabled', true);
+                               mic.prop('disabled', true);
+                               res.prop('disabled', true);
 
-                       console.info('Invoking SDP offer callback function');
-                       const cnts = _constraints();
-                       OmUtil.sendMessage({
-                               id : 'start'
-                               , type: 'kurento'
-                               , mode: 'test'
-                               , sdpOffer: offerSdp
-                               , video: cnts.video !== false
-                               , audio: cnts.audio !== false
+                               OmUtil.info('Invoking SDP offer callback 
function');
+                               const cnts = _constraints();
+                               OmUtil.sendMessage({
+                                       id : 'start'
+                                       , sdpOffer: offerSdp
+                                       , video: cnts.video !== false
+                                       , audio: cnts.audio !== false
+                               }, MsgBase);
+                               rtcPeer.on('icecandidate', _onIceCandidate);
                        });
-                       rtcPeer.on('icecandidate', _onIceCandidate);
-               });
-               playBtn = vs.find('.play').click(function() {
-                       recBtn.prop('disabled', true).button('refresh');
-                       playBtn.prop('disabled', true).button('refresh');
-                       cam.prop('disabled', true);
-                       mic.prop('disabled', true);
-                       res.prop('disabled', true);
-                       _clear();
-                       rtcPeer = new 
kurentoUtils.WebRtcPeer.WebRtcPeerRecvonly(
-                               {
-                                       remoteVideo: vid[0]
-                                       , mediaConstraints: {
-                                               audio: true
-                                               , video: true
-                                       }
-                                       , onicecandidate: _onIceCandidate
-                               }
-                               , function(error) {
-                                       if (error) {
-                                               return _error(error);
+               playBtn = vs.find('.play')
+                       .button({icon: "ui-icon-play"})
+                       .click(function() {
+                               recBtn.prop('disabled', true).button('refresh');
+                               playBtn.prop('disabled', 
true).button('refresh');
+                               cam.prop('disabled', true);
+                               mic.prop('disabled', true);
+                               res.prop('disabled', true);
+                               _clear();
+                               rtcPeer = new 
kurentoUtils.WebRtcPeer.WebRtcPeerRecvonly(
+                                       {
+                                               remoteVideo: vid[0]
+                                               , mediaConstraints: {
+                                                       audio: true
+                                                       , video: true
+                                               }
+                                               , onicecandidate: 
_onIceCandidate
                                        }
-                                       rtcPeer.generateOffer(function(error, 
offerSdp) {
+                                       , function(error) {
                                                if (error) {
-                                                       return _error('Error 
generating the offer');
+                                                       return 
OmUtil.error(error);
                                                }
-                                               OmUtil.sendMessage({
-                                                       id : 'play'
-                                                       , type: 'kurento'
-                                                       , mode: 'test'
-                                                       , sdpOffer: offerSdp
+                                               
rtcPeer.generateOffer(function(error, offerSdp) {
+                                                       if (error) {
+                                                               return 
OmUtil.error('Error generating the offer');
+                                                       }
+                                                       OmUtil.sendMessage({
+                                                               id : 'play'
+                                                               , sdpOffer: 
offerSdp
+                                                       }, MsgBase);
                                                });
                                        });
-                               });
-               });
+                       });
                vs.dialog({
                        classes: {
                                'ui-dialog': 'ui-corner-all video'
@@ -208,7 +207,6 @@ var VideoSettings = (function() {
                o.rights = (o.rights || []).join();
                delete o.keycode;
                vs.find('input, button').prop('disabled', true);
-               vs.find('button').button();
                const rr = vs.find('.cam-resolution').parents('.sett-row');
                if (!o.interview) {
                        rr.show();
@@ -267,13 +265,13 @@ var VideoSettings = (function() {
                                        localVideo: vid[0], mediaConstraints: 
cnts
                                }, function(error) {
                                        if (error) {
-                                               return _error(error);
+                                               return OmUtil.error(error);
                                        }
                                        level = MicLevel();
-                                       level.meter(rtcPeer, _micActivity, 
_error);
+                                       level.meter(rtcPeer, _micActivity, 
OmUtil.error);
                                        rtcPeer.generateOffer(function(error, 
_offerSdp) {
                                                if (error) {
-                                                       return _error('Error 
generating the offer');
+                                                       return 
OmUtil.error('Error generating the offer');
                                                }
                                                offerSdp = _offerSdp;
                                                _allowRec(true);
@@ -294,16 +292,9 @@ var VideoSettings = (function() {
        function _micActivity(level) {
                lm.progressbar("value", Math.max(0, level));
        }
-       function _error(msg) {
-               if (typeof(msg) === 'object') {
-                       msg = msg.name + ": " + msg.message;
-               }
-               errs.show(msg, "error");
-               return console.error(msg);
-       }
        function _initDevices() {
                if (!navigator.mediaDevices || 
!navigator.mediaDevices.enumerateDevices) {
-                       _error("enumerateDevices() not supported.");
+                       OmUtil.error("enumerateDevices() not supported.");
                        return;
                }
                cam.find('option[value!="-1"]').remove();
@@ -358,7 +349,7 @@ var VideoSettings = (function() {
                                _readValues();
                        })
                        .catch(function(err) {
-                               _error(err);
+                               OmUtil.error(err);
                        });
        }
        function _open() {
@@ -366,6 +357,7 @@ var VideoSettings = (function() {
                recAllowed = false;
                timer.hide();
                _micActivity(0);
+               playBtn.prop('disabled', true).button('refresh');
                vs.dialog('open');
                _load();
                _initDevices();
@@ -378,22 +370,22 @@ var VideoSettings = (function() {
                        }
                        const m = jQuery.parseJSON(msg);
                        if (m && 'kurento' === m.type && 'test' === m.mode) {
-                               console.info('Received message: ', m);
+                               OmUtil.info('Received message: ', m);
                                switch (m.id) {
                                        case 'playResponse':
                                        case 'startResponse':
-                                               console.log('SDP answer 
received from server. Processing ...');
+                                               OmUtil.log('SDP answer received 
from server. Processing ...');
 
                                                
rtcPeer.processAnswer(m.sdpAnswer, function(error) {
                                                        if (error) {
-                                                               return 
_error(error);
+                                                               return 
OmUtil.error(error);
                                                        }
                                                });
                                                break;
                                        case 'iceCandidate':
                                                
rtcPeer.addIceCandidate(m.candidate, function(error) {
                                                        if (error) {
-                                                               return 
_error('Error adding candidate: ' + error);
+                                                               return 
OmUtil.error('Error adding candidate: ' + error);
                                                        }
                                                });
                                                break;
@@ -410,12 +402,12 @@ var VideoSettings = (function() {
                                                res.prop('disabled', false);
                                                break;
                                        default:
-                                               _error('Unrecognized message: ' 
+ msg);
+                                               OmUtil.error('Unrecognized 
message: ' + msg);
                                }
                        }
                } catch (err) {
                        //no-op
-                       _error(err);
+                       OmUtil.error(err);
                }
        }
        return {
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/video-manager.js
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/video-manager.js
index 7da3866..548e619 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/video-manager.js
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/video-manager.js
@@ -10,7 +10,7 @@ var VideoManager = (function() {
 
                v.getPeer().processAnswer(m.sdpAnswer, function (error) {
                        if (error) {
-                               return console.error(error);
+                               return OmUtil.error(error);
                        }
                });
        }
@@ -20,7 +20,7 @@ var VideoManager = (function() {
                const w = $('#' + VideoUtil.getVid(uid))
                        , v = w.data()
                        , cl = v.client();
-               console.log(uid + " registered in room");
+               OmUtil.log(uid + " registered in room");
 
                v.setPeer(new kurentoUtils.WebRtcPeer.WebRtcPeerSendonly(
                        {
@@ -41,7 +41,7 @@ var VideoManager = (function() {
                        }
                        , function (error) {
                                if (error) {
-                                       return console.error(error);
+                                       return OmUtil.error(error);
                                }
                                this.generateOffer(v.offerToReceiveVideo);
                        }));
@@ -58,7 +58,7 @@ var VideoManager = (function() {
                        }
                        , function (error) {
                                if(error) {
-                                       return console.error(error);
+                                       return OmUtil.error(error);
                                }
                                this.generateOffer(v.offerToReceiveVideo);
                        }
@@ -73,7 +73,7 @@ var VideoManager = (function() {
                        }
                        const m = jQuery.parseJSON(msg);
                        if (m && 'kurento' === m.type && 'test' !== m.mode) {
-                               console.info('Received message: ' + m);
+                               OmUtil.info('Received message: ' + m);
 
                                switch (m.id) {
                                        case 'broadcast':
@@ -89,19 +89,19 @@ var VideoManager = (function() {
 
                                                        
v.getPeer().addIceCandidate(m.candidate, function (error) {
                                                                if (error) {
-                                                                       
console.error("Error adding candidate: " + error);
+                                                                       
OmUtil.error("Error adding candidate: " + error);
                                                                        return;
                                                                }
                                                        });
                                                }
                                                break;
                                        default:
-                                               console.error('Unrecognized 
message', m);
+                                               OmUtil.error('Unrecognized 
message ' + msg);
                                }
                        }
                } catch (err) {
                        //no-op
-                       console.error(err);
+                       OmUtil.error(err);
                }
        }
        
@@ -126,9 +126,8 @@ var VideoManager = (function() {
                                , av = VideoUtil.hasAudio(cl) || 
VideoUtil.hasVideo(cl)
                                , v = $('#' + _id);
                        if (av && v.length !== 1 && !!cl.self) {
-                               OmUtil.sendMessage({
+                               VideoManager.sendMessage({
                                        id: 'joinRoom' //TODO stream uid
-                                       , type: 'kurento'
                                });
 
                                Video().init(cl, 
VideoUtil.getPos(VideoUtil.getRects(VID_SEL), cl.width, cl.height + 25));
@@ -270,6 +269,9 @@ var VideoManager = (function() {
        self.mute = _mute;
        self.clickExclusive = _clickExclusive;
        self.exclusive = _exclusive;
+       self.sendMessage = function(_m) {
+               OmUtil.sendMessage(_m, {type: 'kurento'});
+       }
        self.destroy = function() {
                Wicket.Event.unsubscribe("/websocket/message", _onWsMessage);
        }
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/video.js 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/video.js
index af41d52..a012e25 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/video.js
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/video.js
@@ -172,7 +172,7 @@ var Video = (function() {
                        }
                }
                v.on("remove", function () {
-                       console.log('Disposing participant ' + c.uid);
+                       OmUtil.log('Disposing participant ' + c.uid);
                        if (!!rtcPeer) {
                                rtcPeer.dispose();
                        }
@@ -280,22 +280,20 @@ var Video = (function() {
        self.setPeer = function(p) { rtcPeer = p; };
        self.getPeer = function() { return rtcPeer; };
        self.onIceCandidate = function(candidate, wp) {
-               console.log("Local candidate" + JSON.stringify(candidate));
-               OmUtil.sendMessage({
+               OmUtil.log("Local candidate" + JSON.stringify(candidate));
+               VideoManager.sendMessage({
                        id: 'onIceCandidate'
-                       , type: 'kurento'
                        , candidate: candidate
                        , uid: c.uid
                });
        };
        self.offerToReceiveVideo = function(error, offerSdp, wp) {
                if (error) {
-                       return console.error("sdp offer error");
+                       return OmUtil.error("sdp offer error");
                }
-               console.log('Invoking SDP offer callback function');
-               OmUtil.sendMessage({
+               OmUtil.log('Invoking SDP offer callback function');
+               VideoManager.sendMessage({
                        id : "receiveVideoFrom"
-                       , type: 'kurento'
                        , sender: c.uid
                        , sdpOffer: offerSdp
                });
diff --git 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/wb-board.js
 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/wb-board.js
index fa5a0c0..48d9a2c 100644
--- 
a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/wb-board.js
+++ 
b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/wb-board.js
@@ -513,11 +513,11 @@ var Wb = function() {
        /*TODO interactive text change
        var textEditedHandler = function (e) {
                var obj = e.target;
-               console.log('Text Edit Exit', obj);
+               OmUtil.log('Text Edit Exit', obj);
        };
        var textChangedHandler = function (e) {
                var obj = e.target;
-               console.log('Text Changed', obj);
+               OmUtil.log('Text Changed', obj);
        };*/
        function setHandlers(canvas) {
                // off everything first to prevent duplicates

-- 
To stop receiving notification emails like this one, please contact
[email protected].

Reply via email to