From a8ec3442039bbd82b8e81066350718a046128027 Mon Sep 17 00:00:00 2001 From: yflory Date: Tue, 3 Sep 2019 17:58:56 +0200 Subject: [PATCH] Fix UI and rendering issues in the notifications panel --- www/common/notifications.js | 91 ++++++++++++------------ www/common/outer/mailbox.js | 1 + www/notifications/app-notifications.less | 2 + www/notifications/inner.js | 6 +- 4 files changed, 53 insertions(+), 47 deletions(-) diff --git a/www/common/notifications.js b/www/common/notifications.js index 150ec51fd..4aa648a15 100644 --- a/www/common/notifications.js +++ b/www/common/notifications.js @@ -134,54 +134,54 @@ define([ }; // if not archived, add handlers - content.handler = function () { - var metadataMgr = common.getMetadataMgr(); - var priv = metadataMgr.getPrivateData(); - - var link = h('a', { - href: '#' - }, Messages.requestEdit_viewPad); - var verified = h('p'); - var $verified = $(verified); - - var name = Util.fixHTML(msg.content.user.displayName) || Messages.anonymous; - var title = Util.fixHTML(msg.content.title); - - if (priv.friends && priv.friends[msg.author]) { - $verified.addClass('cp-notifications-requestedit-verified'); - var f = priv.friends[msg.author]; - $verified.append(h('span.fa.fa-certificate')); - var $avatar = $(h('span.cp-avatar')).appendTo($verified); - $verified.append(h('p', Messages._getKey('requestEdit_fromFriend', [f.displayName]))); - common.displayAvatar($avatar, f.avatar, f.displayName); - } else { - $verified.append(Messages._getKey('requestEdit_fromStranger', [name])); - } + if (!content.archived) { + content.handler = function () { + var metadataMgr = common.getMetadataMgr(); + var priv = metadataMgr.getPrivateData(); + + var link = h('a', { + href: '#' + }, Messages.requestEdit_viewPad); + var verified = h('p'); + var $verified = $(verified); + + var name = Util.fixHTML(msg.content.user.displayName) || Messages.anonymous; + var title = Util.fixHTML(msg.content.title); + + if (priv.friends && priv.friends[msg.author]) { + $verified.addClass('cp-notifications-requestedit-verified'); + var f = priv.friends[msg.author]; + $verified.append(h('span.fa.fa-certificate')); + var $avatar = $(h('span.cp-avatar')).appendTo($verified); + $verified.append(h('p', Messages._getKey('requestEdit_fromFriend', [f.displayName]))); + common.displayAvatar($avatar, f.avatar, f.displayName); + } else { + $verified.append(Messages._getKey('requestEdit_fromStranger', [name])); + } - var div = h('div', [ - UI.setHTML(h('p'), Messages._getKey('requestEdit_confirm', [title, name])), - verified, - link - ]); - $(link).click(function (e) { - e.preventDefault(); - e.stopPropagation(); - common.openURL(msg.content.href); - }); - UI.confirm(div, function (yes) { - if (!yes) { return; } - common.getSframeChannel().event('EV_GIVE_ACCESS', { - channel: msg.content.channel, - user: msg.content.user + var div = h('div', [ + UI.setHTML(h('p'), Messages._getKey('requestEdit_confirm', [title, name])), + verified, + link + ]); + $(link).click(function (e) { + e.preventDefault(); + e.stopPropagation(); + common.openURL(msg.content.href); }); - defaultDismiss(common, data)(); - }, { - ok: Messages.friendRequest_accept, - cancel: Messages.later - }); - }; + UI.confirm(div, function (yes) { + if (!yes) { return; } + common.getSframeChannel().event('EV_GIVE_ACCESS', { + channel: msg.content.channel, + user: msg.content.user + }); + defaultDismiss(common, data)(); + }, { + ok: Messages.friendRequest_accept, + cancel: Messages.later + }); + }; - if (!content.archived) { content.dismissHandler = defaultDismiss(common, data); } }; @@ -284,5 +284,6 @@ define([ remove: function (common, data) { common.removeFriendRequest(data.hash); }, + allowed: Object.keys(handlers) }; }); diff --git a/www/common/outer/mailbox.js b/www/common/outer/mailbox.js index 081f64cc3..440158c80 100644 --- a/www/common/outer/mailbox.js +++ b/www/common/outer/mailbox.js @@ -353,6 +353,7 @@ proxy.mailboxes = { try { var decrypted = box.encryptor.decrypt(_msg[4]); message = JSON.parse(decrypted.content); + message.author = decrypted.author; } catch (e) { console.log(e); } diff --git a/www/notifications/app-notifications.less b/www/notifications/app-notifications.less index a3dcdbd38..dfc1da7f7 100644 --- a/www/notifications/app-notifications.less +++ b/www/notifications/app-notifications.less @@ -105,6 +105,8 @@ p { display: inline-block; margin: 1rem 1rem; + flex: 1; + min-width: 0; } .notification-time { margin: 1rem 1rem; diff --git a/www/notifications/inner.js b/www/notifications/inner.js index eba1ad7dc..6fc8bf1ca 100644 --- a/www/notifications/inner.js +++ b/www/notifications/inner.js @@ -8,6 +8,7 @@ define([ '/common/hyperscript.js', '/customize/messages.js', '/common/common-interface.js', + '/common/notifications.js', 'css!/bower_components/bootstrap/dist/css/bootstrap.min.css', 'css!/bower_components/components-font-awesome/css/font-awesome.min.css', @@ -21,7 +22,8 @@ define([ SFCommon, h, Messages, - UI + UI, + Notifications ) { var APP = {}; @@ -44,7 +46,7 @@ define([ ], }; - var notifsAllowedTypes = ["FRIEND_REQUEST", "FRIEND_REQUEST_ACCEPTED", "FRIEND_REQUEST_DECLINED", "SHARE_PAD", "REQUEST_PAD_ACCESS"]; + var notifsAllowedTypes = Notifications.allowed; var create = {};