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 5ff0b66957561545fd509aa8e90e396915b978a6 Author: Maxim Solodovnik <[email protected]> AuthorDate: Tue Nov 3 14:12:40 2026 +0700 [OPENMEETINGS-2846] more work on askPermission; code clean-up --- openmeetings-server/src/site/resources/js/site.js | 2 +- .../src/main/front/src/main/omutils.js | 2 +- .../src/main/front/src/room/video-manager-util.js | 4 +-- openmeetings-web/src/main/front/src/room/video.js | 26 +++++++++--------- openmeetings-web/src/main/front/src/room/volume.js | 6 ++-- .../src/main/front/src/settings/WebRtcPeer.js | 22 +++++++-------- .../src/main/front/src/settings/mic-level.js | 2 +- .../src/main/front/src/settings/ring-buffer.js | 4 +-- .../src/main/front/src/settings/video-util.js | 5 +++- .../src/main/front/src/wb/interview-area.js | 6 ++-- openmeetings-web/src/main/front/src/wb/wb-area.js | 32 +++++++++++----------- .../src/main/front/src/wb/wb-tool-clipart.js | 4 +-- openmeetings-web/src/main/front/src/wb/wb-tools.js | 2 +- openmeetings-web/src/main/front/src/wb/wb-zoom.js | 4 +-- openmeetings-web/src/main/front/src/wb/wb.js | 24 ++++++++-------- .../web/common/datetime/datepicker-functions.js | 8 +++--- .../apache/openmeetings/web/room/raw-nettest.js | 2 +- .../web/user/calendar/calendar-functions.js | 2 +- 18 files changed, 80 insertions(+), 77 deletions(-) diff --git a/openmeetings-server/src/site/resources/js/site.js b/openmeetings-server/src/site/resources/js/site.js index f4a943d75..30a3a5bbd 100644 --- a/openmeetings-server/src/site/resources/js/site.js +++ b/openmeetings-server/src/site/resources/js/site.js @@ -17,7 +17,7 @@ under the License. */ -window.addEventListener("load", (event) => { +window.addEventListener("load", () => { // "New" markers ["Call For Logo", "REST API Swagger"].forEach( topic => document.querySelector(`ul.nav li a[title="${topic}"`) diff --git a/openmeetings-web/src/main/front/src/main/omutils.js b/openmeetings-web/src/main/front/src/main/omutils.js index 7cf9c2526..720921306 100644 --- a/openmeetings-web/src/main/front/src/main/omutils.js +++ b/openmeetings-web/src/main/front/src/main/omutils.js @@ -16,7 +16,7 @@ function __alert(level, msg, autohideAfter) { <button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="${holder.getAttribute('data-lbl-close')}"></button> </div>`); if (autohideAfter > 0) { - setTimeout(() => { bootstrap.Alert.getOrCreateInstance(`#${curId}`).close();}, autohideAfter); + setTimeout(() => bootstrap.Alert.getOrCreateInstance(`#${curId}`).close(), autohideAfter); } } function _error(msg, noAlert) { diff --git a/openmeetings-web/src/main/front/src/room/video-manager-util.js b/openmeetings-web/src/main/front/src/room/video-manager-util.js index b8422f145..51d5c2b2d 100644 --- a/openmeetings-web/src/main/front/src/room/video-manager-util.js +++ b/openmeetings-web/src/main/front/src/room/video-manager-util.js @@ -60,10 +60,10 @@ function _clickMuteOthers(uid) { } module.exports = { - init: (_share) => { + init: _share => { share = _share; } - , sendMessage: (_m) => { + , sendMessage: _m => { OmUtil.sendMessage(_m, {type: 'kurento'}); } , savePod: __savePod diff --git a/openmeetings-web/src/main/front/src/room/video.js b/openmeetings-web/src/main/front/src/room/video.js index c81427920..d0957888f 100644 --- a/openmeetings-web/src/main/front/src/room/video.js +++ b/openmeetings-web/src/main/front/src/room/video.js @@ -42,12 +42,6 @@ module.exports = class Video { } } function _getScreenStream(msg, state, callback) { - function __handleScreenError(err) { - VideoMgrUtil.sendMessage({id: 'errorSharing'}); - Sharer.setShareState(Sharer.SHARE_STOPPED); - Sharer.setRecState(Sharer.SHARE_STOPPED); - OmUtil.error(err); - } const b = VideoUtil.browser; let promise, cnts; if (VideoUtil.isEdge() && b.major > 16) { @@ -60,7 +54,7 @@ module.exports = class Video { video: true }; if (VideoUtil.isSafari()) { - promise = new Promise((resolve) => { + promise = new Promise(resolve => { VideoUtil.askPermission(resolve); }).then(() => navigator.mediaDevices.getDisplayMedia(cnts)); } else { @@ -73,12 +67,18 @@ module.exports = class Video { }); } promise.then(stream => { - if (!state.disposed) { - __createVideo(state); - state.stream = stream; - callback(msg, state, cnts); + if (state.disposed) { + throw new Error("MediaStream already disposed"); } - }).catch(__handleScreenError); + __createVideo(state); + state.stream = stream; + callback(msg, state, cnts); + }).catch(err => { + VideoMgrUtil.sendMessage({id: 'errorSharing'}); + Sharer.setShareState(Sharer.SHARE_STOPPED); + Sharer.setRecState(Sharer.SHARE_STOPPED); + OmUtil.error(err); + }); } function _getVideoStream(msg, state, callback) { VideoSettings.constraints(sd, function(cnts) { @@ -674,7 +674,7 @@ module.exports = class Video { this.update = _update; this.refresh = _refresh; - this.pushToTalk = (enable) => { + this.pushToTalk = enable => { const state = __getState(); if (__pttEnabled(state)) { state.localStream.getAudioTracks().forEach(track => track.enabled = enable); diff --git a/openmeetings-web/src/main/front/src/room/volume.js b/openmeetings-web/src/main/front/src/room/volume.js index f766f026b..415adf27b 100644 --- a/openmeetings-web/src/main/front/src/room/volume.js +++ b/openmeetings-web/src/main/front/src/room/volume.js @@ -21,7 +21,7 @@ module.exports = class Volume { }, 3000); } - this.create = (_video) => { + this.create = _video => { video = _video; this.destroy(); const uid = video.stream().uid @@ -69,7 +69,7 @@ module.exports = class Volume { this.mute(muted); return vol; }; - this.handle = (val) => { + this.handle = val => { handleEl.text(val); const vidEl = video.video() , data = vidEl.data(); @@ -89,7 +89,7 @@ module.exports = class Volume { video.handleMicStatus(false); } }; - this.mute = (mute) => { + this.mute = mute => { if (!slider) { return; } diff --git a/openmeetings-web/src/main/front/src/settings/WebRtcPeer.js b/openmeetings-web/src/main/front/src/settings/WebRtcPeer.js index ff88259b7..65e2d5a52 100644 --- a/openmeetings-web/src/main/front/src/settings/WebRtcPeer.js +++ b/openmeetings-web/src/main/front/src/settings/WebRtcPeer.js @@ -72,7 +72,7 @@ class WebRtcPeer { this.pc = new RTCPeerConnection({ iceServers: this.configuration.iceServers }); - this._iceCandidateListener = (event) => { + this._iceCandidateListener = event => { if (event.candidate !== null) { // `RTCPeerConnectionIceEvent.candidate` is supposed to be an RTCIceCandidate: // https://w3c.github.io/webrtc-pc/#dom-rtcpeerconnectioniceevent-candidate @@ -327,7 +327,7 @@ class WebRtcPeer { continue; } - let tc = this.pc.getTransceivers().find((tc) => tc.receiver.track.kind === kind); + let tc = this.pc.getTransceivers().find(tc => tc.receiver.track.kind === kind); if (tc) { // Enforce our desired direction. @@ -339,8 +339,8 @@ class WebRtcPeer { this.pc .createAnswer() - .then((sdpAnswer) => resolve(sdpAnswer)) - .catch((error) => reject(error)); + .then(sdpAnswer => resolve(sdpAnswer)) + .catch(error => reject(error)); } else { // TODO: Delete else branch when all supported browsers are // modern enough to implement the Transceiver methods @@ -357,8 +357,8 @@ class WebRtcPeer { offerToReceiveVideo: offerVideo }; (this.pc).createAnswer(constraints) - .then((sdpAnswer) => resolve(sdpAnswer)) - .catch((error) => reject(error)); + .then(sdpAnswer => resolve(sdpAnswer)) + .catch(error => reject(error)); } } @@ -383,7 +383,7 @@ class WebRtcPeer { return reject('Local description is not defined'); } }) - .catch((error) => reject(error)); + .catch(error => reject(error)); }); } @@ -403,7 +403,7 @@ class WebRtcPeer { } this.setRemoteDescription(offer) .then(() => resolve()) - .catch((error) => reject(error)); + .catch(error => reject(error)); }); } @@ -419,7 +419,7 @@ class WebRtcPeer { this.pc .setLocalDescription(answer) .then(() => resolve()) - .catch((error) => reject(error)); + .catch(error => reject(error)); }); } @@ -441,7 +441,7 @@ class WebRtcPeer { .then(() => { resolve(); }) - .catch((error) => reject(error)); + .catch(error => reject(error)); }); } @@ -468,7 +468,7 @@ class WebRtcPeer { this.pc .addIceCandidate(iceCandidate) .then(() => resolve()) - .catch((error) => reject(error)); + .catch(error => reject(error)); } else { this.iceCandidateList.push(iceCandidate); resolve(); diff --git a/openmeetings-web/src/main/front/src/settings/mic-level.js b/openmeetings-web/src/main/front/src/settings/mic-level.js index c5baeea81..f16091e61 100644 --- a/openmeetings-web/src/main/front/src/settings/mic-level.js +++ b/openmeetings-web/src/main/front/src/settings/mic-level.js @@ -30,7 +30,7 @@ module.exports = class MicLevel { _error(err); } }; - this.setCanvas = (_cnvs) => { + this.setCanvas = _cnvs => { cnvs = _cnvs; const canvas = cnvs[0]; canvasCtx = canvas.getContext('2d'); diff --git a/openmeetings-web/src/main/front/src/settings/ring-buffer.js b/openmeetings-web/src/main/front/src/settings/ring-buffer.js index 5c1071703..7bc6a68ec 100644 --- a/openmeetings-web/src/main/front/src/settings/ring-buffer.js +++ b/openmeetings-web/src/main/front/src/settings/ring-buffer.js @@ -4,10 +4,10 @@ module.exports = class RingBuffer { const buffer = []; let pos = 0; - this.get = (key) => { + this.get = key => { return buffer[key]; }; - this.push = (item) => { + this.push = item => { buffer[pos] = item; pos = (pos + 1) % length; }; diff --git a/openmeetings-web/src/main/front/src/settings/video-util.js b/openmeetings-web/src/main/front/src/settings/video-util.js index a1628bc0e..7c0fc1451 100644 --- a/openmeetings-web/src/main/front/src/settings/video-util.js +++ b/openmeetings-web/src/main/front/src/settings/video-util.js @@ -263,7 +263,10 @@ function _askPermission(callback) { class: 'btn btn-sm btn-warning' , label: perm.data('btn-ok') , value: perm.data('btn-ok') - , onClick: callback + , onClick: function() { + callback(); + $('.sidebar').confirmation('dispose'); + } }] }); $('.sidebar').confirmation('show'); diff --git a/openmeetings-web/src/main/front/src/wb/interview-area.js b/openmeetings-web/src/main/front/src/wb/interview-area.js index 540704960..d4a393ba9 100644 --- a/openmeetings-web/src/main/front/src/wb/interview-area.js +++ b/openmeetings-web/src/main/front/src/wb/interview-area.js @@ -16,7 +16,7 @@ export class InterviewWbArea extends WbAreaBase { empt.remove(); } const cls = 'pod-area max' + - [2, 3, 5, 9, 13, 17, 25, 33].find((el) => { + [2, 3, 5, 9, 13, 17, 25, 33].find(el => { return count < el; }); pArea.attr('class', cls); @@ -73,13 +73,13 @@ export class InterviewWbArea extends WbAreaBase { // it seems `super` can't be called from lambda this.wsdestroy(); }; - this.setRecEnabled = (en) => { + this.setRecEnabled = en => { if (!_inited) { return; } rec.data('mode', 'rec').button('option', {disabled: !en, icon: 'record'}); }; - this.setRecStarted = (started) => { + this.setRecStarted = started => { if (!_inited) { return; } diff --git a/openmeetings-web/src/main/front/src/wb/wb-area.js b/openmeetings-web/src/main/front/src/wb/wb-area.js index 888b6a5c7..a89caad70 100644 --- a/openmeetings-web/src/main/front/src/wb/wb-area.js +++ b/openmeetings-web/src/main/front/src/wb/wb-area.js @@ -247,12 +247,12 @@ export class DrawWbArea extends WbAreaBase { } } - this.init = (callback) => { + this.init = callback => { // it seems `super` can't be called from lambda this.wsinit(); _doInit(callback); }; - this.setRole = (_role) => { + this.setRole = _role => { if (!_inited) { return; } @@ -295,7 +295,7 @@ export class DrawWbArea extends WbAreaBase { this.wsdestroy(); this.removeDeleteHandler(); }; - this.create = (obj) => { + this.create = obj => { if (!_inited) { return; } @@ -338,7 +338,7 @@ export class DrawWbArea extends WbAreaBase { wb.on('remove', wbo.destroy); wb.data(wbo); }; - this.createWb = (obj) => { + this.createWb = obj => { if (!_inited) { return; } @@ -346,19 +346,19 @@ export class DrawWbArea extends WbAreaBase { _activateTab(obj.wbId); _actionActivateWb(obj.wbId); }; - this.activateWb = (obj) => { + this.activateWb = obj => { if (!_inited) { return; } _activateTab(obj.wbId); }; - this.renameWb = (obj) => { + this.renameWb = obj => { if (!_inited) { return; } _renameTab(obj); }; - this.removeWb = (obj) => { + this.removeWb = obj => { if (!_inited) { return; } @@ -367,55 +367,55 @@ export class DrawWbArea extends WbAreaBase { _actionActivateWb(obj.prevWbId); __updateTabBarPreNextWhiteboardBTNs(); }; - this.load = (json) => { + this.load = json => { if (!_inited) { return; } _getWb(json.wbId).load(json.obj); }; - this.setSlide = (json) => { + this.setSlide = json => { if (!_inited) { return; } _getWb(json.wbId).setSlide(json.slide); }; - this.createObj = (json) => { + this.createObj = json => { if (!_inited) { return; } _getWb(json.wbId).createObj(json.obj); }; - this.modifyObj = (json) => { + this.modifyObj = json => { if (!_inited) { return; } _getWb(json.wbId).modifyObj(json.obj); }; - this.deleteObj = (json) => { + this.deleteObj = json => { if (!_inited) { return; } _getWb(json.wbId).removeObj(json.obj); }; - this.clearAll = (json) => { + this.clearAll = json => { if (!_inited) { return; } _getWb(json.wbId).clearAll(); }; - this.clearSlide = (json) => { + this.clearSlide = json => { if (!_inited) { return; } _getWb(json.wbId).clearSlide(json.slide); }; - this.setSize = (json) => { + this.setSize = json => { if (!_inited) { return; } _getWb(json.wbId).setSize(json); }; - this.download = (fmt) => { + this.download = fmt => { if (!_inited) { return; } diff --git a/openmeetings-web/src/main/front/src/wb/wb-tool-clipart.js b/openmeetings-web/src/main/front/src/wb/wb-tool-clipart.js index ed88f4d45..c41c82cfb 100644 --- a/openmeetings-web/src/main/front/src/wb/wb-tool-clipart.js +++ b/openmeetings-web/src/main/front/src/wb/wb-tool-clipart.js @@ -9,7 +9,7 @@ export class Clipart extends WbShape { super(wb, sBtn); const self = this; - this.createShape = (canvas) => { + this.createShape = canvas => { const imgSrc = btn.data('image') , opts = { left: self.orig.x @@ -31,7 +31,7 @@ export class Clipart extends WbShape { canvas.add(self.obj); }); } else { - fabric.FabricImage.fromURL(imgSrc).then((img) => { + fabric.FabricImage.fromURL(imgSrc).then(img => { self.orig.width = img.width; self.orig.height = img.height; self.obj = img.set(opts); diff --git a/openmeetings-web/src/main/front/src/wb/wb-tools.js b/openmeetings-web/src/main/front/src/wb/wb-tools.js index c86390854..6489c36bc 100644 --- a/openmeetings-web/src/main/front/src/wb/wb-tools.js +++ b/openmeetings-web/src/main/front/src/wb/wb-tools.js @@ -300,7 +300,7 @@ export class WbTools { }); } - this.setRole = (role) => { + this.setRole = role => { const btn = _getBtn(); if (__validBtn(btn)) { btn.data().deactivate(); diff --git a/openmeetings-web/src/main/front/src/wb/wb-zoom.js b/openmeetings-web/src/main/front/src/wb/wb-zoom.js index 03a03b016..205baa3e9 100644 --- a/openmeetings-web/src/main/front/src/wb/wb-zoom.js +++ b/openmeetings-web/src/main/front/src/wb/wb-zoom.js @@ -22,7 +22,7 @@ export class WbZoom { }}); } - this.init = (wbo) => { + this.init = wbo => { this.zoom = wbo.zoom; this.zoomMode = wbo.zoomMode; }; @@ -48,7 +48,7 @@ export class WbZoom { zoomBar.find('.doc-group button').prop("disabled", true); } }; - this.setRole = (role) => { + this.setRole = role => { wbEl.find('.wb-zoom').remove(); zoomBar = OmUtil.tmpl('#wb-zoom'); wbEl.find('.wb-zoom-block').append(zoomBar); diff --git a/openmeetings-web/src/main/front/src/wb/wb.js b/openmeetings-web/src/main/front/src/wb/wb.js index 948f46c0e..eff3b9c2c 100644 --- a/openmeetings-web/src/main/front/src/wb/wb.js +++ b/openmeetings-web/src/main/front/src/wb/wb.js @@ -165,7 +165,7 @@ export class Wb { } o.includeDefaultValues = false; if ('activeselection' === o.type) { - o.clone(extraProps).then((cloned) => { + o.clone(extraProps).then(cloned => { // ungrouping cloned.includeDefaultValues = false; const _items = cloned.removeAll(); @@ -307,7 +307,7 @@ export class Wb { } } - this._toOmJson = (o) => { + this._toOmJson = o => { const r = o.toObject(extraProps); switch (o.omType) { case 'Video': @@ -321,7 +321,7 @@ export class Wb { } return r; }; - this._findObject = (o) => { + this._findObject = o => { let _o = null; const cnvs = canvases[o.slide]; if (!!cnvs) { @@ -334,7 +334,7 @@ export class Wb { } return _o; }; - this.setRole = (_role) => { + this.setRole = _role => { if (role !== _role) { role = _role; const sc = wbEl.find('.scroll-container'); @@ -358,7 +358,7 @@ export class Wb { _setSize(); } }; - this.setSize = (wbo) => { + this.setSize = wbo => { this.width = wbo.width; this.height = wbo.height; zoomBar.init(wbo); @@ -387,7 +387,7 @@ export class Wb { } }); }; - this._doSetSlide = (_sld) => { + this._doSetSlide = _sld => { const sld = 1 * _sld; if (sld < 0 || sld > canvases.length - 1) { return; @@ -399,11 +399,11 @@ export class Wb { }}); zoomBar.update(role, canvases.length); }; - this.setSlide = (_sl) => { + this.setSlide = _sl => { self.slide = _sl; self._showCurrentSlide(); }; - this.createObj = (obj) => { + this.createObj = obj => { const arr = [], del = [], _arr = Array.isArray(obj) ? obj : [obj]; for (let i = 0; i < _arr.length; ++i) { const o = _arr[i]; @@ -440,7 +440,7 @@ export class Wb { } }; this.load = this.createObj; - this.modifyObj = (obj) => { //TODO need to be unified + this.modifyObj = obj => { //TODO need to be unified const arr = [], _arr = Array.isArray(obj) ? obj : [obj]; for (let i = 0; i < _arr.length; ++i) { const o = _arr[i]; @@ -487,7 +487,7 @@ export class Wb { canvases[0].clear(); zoomBar.update(role, canvases.length); }; - this.clearSlide = (_sl) => { + this.clearSlide = _sl => { if (canvases.length > _sl) { const canvas = canvases[_sl]; let arr = canvas.getObjects(); @@ -499,10 +499,10 @@ export class Wb { canvas.requestRenderAll(); } }; - this.getCanvas = (_slide) => { + this.getCanvas = _slide => { return canvases[typeof(_slide) === 'number' ? _slide : self.slide]; }; - this.eachCanvas = (func) => { + this.eachCanvas = func => { for (let i = 0; i < canvases.length; ++i) { func(canvases[i]); } diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/datetime/datepicker-functions.js b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/datetime/datepicker-functions.js index 2a5186674..5c89b6138 100644 --- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/datetime/datepicker-functions.js +++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/datetime/datepicker-functions.js @@ -17,10 +17,10 @@ function omDateTimeInit(markupId, hiddenId) { } picker.dates.setValue(val); - picker.subscribe(tempusDominus.Namespace.events.change, (e) => { - const pad = (n) => ('' + n).padStart(2, '0'); - const formatDate = (d) => d.getFullYear() + '-' + pad(d.getMonth() + 1) + '-' + pad(d.getDate()); - const formatDateTime = (d) => formatDate(d) + 'T' + pad(d.getHours()) + ':' + pad(d.getMinutes()) + ':' + pad(d.getSeconds());// + 'Z'; + picker.subscribe(tempusDominus.Namespace.events.change, e => { + const pad = n => ('' + n).padStart(2, '0'); + const formatDate = d => d.getFullYear() + '-' + pad(d.getMonth() + 1) + '-' + pad(d.getDate()); + const formatDateTime = d => formatDate(d) + 'T' + pad(d.getHours()) + ':' + pad(d.getMinutes()) + ':' + pad(d.getSeconds());// + 'Z'; hidden.value = picker.optionsStore.options.display.components.clock ? formatDateTime(e.date) : formatDate(e.date); hidden.dispatchEvent(new Event('change')); diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/raw-nettest.js b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/raw-nettest.js index 67e7c99af..e58850e00 100644 --- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/raw-nettest.js +++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/raw-nettest.js @@ -4,7 +4,7 @@ const NetTest = (function() { , DELAY = 3000, KB = 1024, MB = KB * KB; let output, lbls, tests, testName, testLabel, testNext, bulk = true; - const average = (array) => array.reduce((a, b) => a + b) / array.length; + const average = array => array.reduce((a, b) => a + b) / array.length; function _init(_lbls) { lbls = _lbls; diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/calendar-functions.js b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/calendar-functions.js index 9fc602a3c..cb662ca0b 100644 --- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/calendar-functions.js +++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/calendar-functions.js @@ -26,7 +26,7 @@ function onOmGotoClick() { , format: 'LLL' } }); - gotoBtn.datetimepicker.subscribe(tempusDominus.Namespace.events.hide, (e) => { + gotoBtn.datetimepicker.subscribe(tempusDominus.Namespace.events.hide, e => { document.querySelector('#calendar').calendar.gotoDate(e.date.startOf('date')); }); gotoBtn.datetimepicker.show();
