Clickable notifications (#745)

This commit is contained in:
RainLoop Team 2015-07-06 22:46:44 +04:00
parent 69c01e5789
commit 9ade5a585b
5 changed files with 121 additions and 39 deletions

View file

@ -279,7 +279,8 @@
require('Stores/User/Account').email(),
Translator.i18n('MESSAGE_LIST/NEW_MESSAGE_NOTIFICATION', {
'COUNT': iLen
})
}),
{'Folder': '', 'Uid': ''}
);
}
else
@ -290,7 +291,11 @@
Links.notificationMailIcon(),
MessageHelper.emailArrayToString(
MessageHelper.emailArrayFromJson(aNewMessages[iIndex].From), false),
aNewMessages[iIndex].Subject
aNewMessages[iIndex].Subject,
{
'Folder': aNewMessages[iIndex].Folder,
'Uid': aNewMessages[iIndex].Uid
}
);
}
}
@ -744,6 +749,24 @@
}
};
MessageUserStore.prototype.selectMessageByFolderAndUid = function (sFolder, sUid)
{
if (sFolder && sUid)
{
window.console.log(sFolder, sUid);
this.message(this.staticMessage.populateByMessageListItem(null));
this.message().folderFullNameRaw = sFolder;
this.message().uid = sUid;
this.populateMessageBody(this.message());
}
else
{
this.message(null);
}
};
MessageUserStore.prototype.populateMessageBody = function (oMessage)
{
if (oMessage)

View file

@ -8,6 +8,7 @@
ko = require('ko'),
Enums = require('Common/Enums'),
Events = require('Common/Events'),
Audio = require('Common/Audio'),
Settings = require('Storage/Settings')
@ -161,7 +162,7 @@
}
};
NotificationUserStore.prototype.displayDesktopNotification = function (sImageSrc, sTitle, sText)
NotificationUserStore.prototype.displayDesktopNotification = function (sImageSrc, sTitle, sText, oMessageData)
{
if (this.enableDesktopNotification())
{
@ -180,6 +181,19 @@
oNotification.show();
}
if (oMessageData)
{
oNotification.onclick = function () {
window.focus();
if (oMessageData.Folder && oMessageData.Uid)
{
Events.pub('mailbox.message.show', [oMessageData.Folder, oMessageData.Uid]);
}
};
}
window.setTimeout((function (oLocalNotifications) {
return function () {
if (oLocalNotifications.cancel)