Desktop Notifications

This commit is contained in:
2020-09-24 00:22:31 +02:00
parent c1663de541
commit 36dc674ba4
5 changed files with 296 additions and 233 deletions

View File

@@ -7,8 +7,8 @@
class Databap extends PhpObject
{
//Common Constants
const VERSION = '1.1.3'; //Versioning: <Main_Version>.<Enhancement_Package>.<Patch>-<Release_Candidate>
const VERSION_DATE = '08/12/2019';
const VERSION = '1.1.4'; //Versioning: <Main_Version>.<Enhancement_Package>.<Patch>-<Release_Candidate>
const VERSION_DATE = '24/09/2020';
const EXPECTED_PAGE_COOKIE = 'exp_page';
const MAIN_SEPARATOR = ' ';
const DATE_FORMAT = 'd/m/Y';

39
jquery/push.min.js vendored Normal file

File diff suppressed because one or more lines are too long

1
jquery/push.min.js.map Normal file

File diff suppressed because one or more lines are too long

View File

@@ -124,6 +124,9 @@ databap.pageInit = function()
//Init's end
databap.setInitEnd(true);
//Notification Permission
if(!Push.Permission.has()) Push.Permission.request(()=>{}, ()=>{});
};
//On resize
@@ -825,15 +828,18 @@ function addMessage(message_info, bReset)
var sUnreadChanName, iUnreadCount;
var bSystemMsg = false;
var bImage = false;
var sNotif = '';
switch(message_info.msg_class)
{
case databap.consts.msg_types.user:
msg_body = sMsgPrefix+'<span class="text">'+message_info.message+'</span>';
sNotif = message_info.nickname+' : '+message_info.message;
break;
case databap.consts.msg_types.news:
databap.tmp('get_news', true);
msg_body = '<span class="text action">'+message_info.nickname+' a une news : <span class="news"><i class="fa fa-30 fa-c-news"></i> '+message_info.message+' <i class="fa fa-30 fa-c-news"></i></span></span>';
sNotif = message_info.nickname+' a une news : '+message_info.message;
break;
case databap.consts.msg_types.add.code:
var url = databap.getInternalLink('code', message_info.message);
@@ -859,6 +865,7 @@ function addMessage(message_info, bReset)
msgTargetUser = message_info.message.substr(1, slicePos - 1);
var msg = message_info.message.slice(slicePos + 1);
msg_body = '<a class="user clickable" title="Ecrire un PM &agrave; '+message_info.nickname+'">'+message_info.nickname+'</a><span class="console"> <span class="highlight">&#64;'+msgTargetUser+'</span>&gt;</span><span class="text">'+msg+'</span>';
sNotif = message_info.nickname+' @'+msgTargetUser+' : '+msg;
break;
case databap.consts.msg_types.nick:
msg_body = '<span class="text">'+message_info.message+' (<a href="'+databap.getInternalLink('profil', message_info.id_user)+'" target="_blank"><i class="fa fa-c-profile fa-inline"></i>'+message_info.name+'</a>)</span>';
@@ -875,6 +882,7 @@ function addMessage(message_info, bReset)
var msg = '<a href="'+message_info.message.url+'" target="_blank" title="'+message_info.message.title+'"><img src="'+message_info.message.url_img+'" width="'+message_info.message.width+'" height="'+message_info.message.height+'" class="proxy" /></a>';
msg_body = sMsgPrefix+'<span class="text">'+msg+'</span>';
bImage = true;
sNotif = message_info.nickname+' a posté une image';
break;
case databap.consts.msg_types.reboot:
if(!bReset)
@@ -944,6 +952,19 @@ function addMessage(message_info, bReset)
sUnreadChanName = getChanName(message_info.id_chan);
iUnreadCount = (databap.tmp(['unread_msg', sUnreadChanName]) || 0) + 1;
databap.tmp(['unread_msg', sUnreadChanName], iUnreadCount);
//Desktop Notification
if(!databap.vars.focus && sNotif != '' && Push.Permission.has()) {
Push.create('Databap - '+message_info.nickname, {
body: sNotif,
icon: databap.consts.app_image_folder+(databap.tmp(['logos', message_info.id_user]) || 'logo_25.png'),
timeout: 4000,
onClick: function () {
window.focus();
this.close();
}
});
}
}
//Move to bottom if user is typing
@@ -1000,6 +1021,7 @@ function refresh_users()
databap.tmp(['users', sChankeyName, sSafeNickName], sNickName);
databap.tmp(['users', databap.consts.all_chan_id, sSafeNickName], sNickName);
databap.tmp(['id_users', sNickName], user_info.id_user);
databap.tmp(['logos', user_info.id_user], user_info.logo);
//Append name to user list box
var sProfileLink = databap.getInternalLink('profil', user_info.id_user);

View File

@@ -11,6 +11,7 @@
<script type="text/javascript" src="jquery/jquery.min.js?v[#]version[#]"></script>
<script type="text/javascript" src="jquery/jquery.mods.js?v[#]version[#]"></script>
<script type="text/javascript" src="jquery/fileuploader.js?v[#]version[#]"></script>
<script type="text/javascript" src="jquery/push.min.js?v[#]version[#]"></script>
<script type="text/javascript" src="jquery/common.js?v[#]version[#]"></script>
<script type="text/javascript" src="jquery/databap.js?v[#]version[#]"></script>
<script type="text/javascript">