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
The following commit(s) were added to refs/heads/master by this push:
new 77293cb [OPENMEETINGS-2542] notifications in FF are improved
77293cb is described below
commit 77293cbfcc6541ae24e49afc7adac6e446a36749
Author: Maxim Solodovnik <[email protected]>
AuthorDate: Mon Dec 28 22:05:28 2020 +0700
[OPENMEETINGS-2542] notifications in FF are improved
---
openmeetings-web/src/main/front/chat/src/chat.js | 24 ++++++---------
.../src/main/front/main/src/omutils.js | 36 ++++++++++++++++++----
.../src/main/front/room/src/activities.js | 15 ++-------
3 files changed, 41 insertions(+), 34 deletions(-)
diff --git a/openmeetings-web/src/main/front/chat/src/chat.js
b/openmeetings-web/src/main/front/chat/src/chat.js
index 74c9d33..99ea213 100644
--- a/openmeetings-web/src/main/front/chat/src/chat.js
+++ b/openmeetings-web/src/main/front/chat/src/chat.js
@@ -322,20 +322,7 @@ function _addMessage(m) {
if (notify) {
ctrlBlk.addClass('bg-warning');
if (p.is(':visible') && !muted) {
- if (window === window.parent) {
- function _newMessage() {
-
OmUtil.notify(newMsgNotification, 'new_chat_msg');
- }
- if (Notification.permission ===
'granted') {
- _newMessage();
- } else if (Notification.permission !==
'denied') {
-
Notification.requestPermission().then(permission => {
- if (permission ===
'granted') {
- _newMessage();
- }
- });
- }
- } else {
+ OmUtil.notify(newMsgNotification,
'new_chat_msg', () => {
// impossible to use Notification API
from iFrame
audio.play()
.then(function() {
@@ -343,7 +330,7 @@ function _addMessage(m) {
}).catch(function() {
// Automatic playback
failed.
});
- }
+ });
}
}
CSSEmoticon.animate();
@@ -521,6 +508,13 @@ $(function() {
//no-op
}
});
+ function _cancelAskNotification() {
+ $(document).off('click', _askNotification)
+ }
+ function _askNotification() {
+ OmUtil.requestNotifyPermission(_cancelAskNotification,
_cancelAskNotification);
+ }
+ $(document).on('click', _askNotification);
});
module.exports = {
diff --git a/openmeetings-web/src/main/front/main/src/omutils.js
b/openmeetings-web/src/main/front/main/src/omutils.js
index eebc3df..d70d9b7 100644
--- a/openmeetings-web/src/main/front/main/src/omutils.js
+++ b/openmeetings-web/src/main/front/main/src/omutils.js
@@ -47,6 +47,34 @@ function _sendMessage(_m, _base) {
, msg = JSON.stringify($.extend({}, base, m));
Wicket.WebSocket.send(msg);
}
+function _requestNotifyPermission(callback, elseCallback) {
+ if (Notification.permission !== 'granted' && Notification.permission
!== 'denied') {
+ Notification.requestPermission().then(permission => {
+ if (permission === 'granted') {
+ callback();
+ }
+ });
+ } else if (typeof(elseCallback) === 'function') {
+ elseCallback();
+ }
+}
+function _notify(msg, tag, elseCallback) {
+ if (window === window.parent) {
+ function _newMessage() {
+ const opts = {
+ tag: tag
+ };
+ new Notification(msg, opts);
+ }
+ if (Notification.permission === 'granted') {
+ _newMessage();
+ } else {
+ _requestNotifyPermission(() => _newMessage());
+ }
+ } else if (typeof(elseCallback) === 'function') {
+ elseCallback();
+ }
+}
module.exports = {
init: _init
@@ -74,10 +102,6 @@ module.exports = {
, ping: function() {
setTimeout(() => _sendMessage({type: 'ping'}), 30000);
}
- , notify: function(msg, tag) {
- const opts = {
- tag: tag
- };
- new Notification(msg, opts);
- }
+ , notify: _notify
+ , requestNotifyPermission: _requestNotifyPermission
};
diff --git a/openmeetings-web/src/main/front/room/src/activities.js
b/openmeetings-web/src/main/front/room/src/activities.js
index c7b26a3..4c26d40 100644
--- a/openmeetings-web/src/main/front/room/src/activities.js
+++ b/openmeetings-web/src/main/front/room/src/activities.js
@@ -79,19 +79,8 @@ function _hightlight(notify) {
}
if (isClosed()) {
$('.control.block', activities).addClass('bg-warning');
- if (window === window.parent && notify) {
- function _newMessage() {
- OmUtil.notify(newActNotification,
'new_aa_item');
- }
- if (Notification.permission === 'granted') {
- _newMessage();
- } else if (Notification.permission !== 'denied') {
-
Notification.requestPermission().then(permission => {
- if (permission === 'granted') {
- _newMessage();
- }
- });
- }
+ if (notify) {
+ OmUtil.notify(newActNotification, 'new_aa_item');
}
}
}