Merge pull request #2921 from rabuzarus/1611_fix_NotificationsManager_unseen

Bugfix: seen status was not handled correcty on the notifications page
This commit is contained in:
Michael Vogel 2016-11-16 07:02:06 +01:00 committed by GitHub
commit a63e060b51

View file

@ -213,8 +213,9 @@ class NotificationsManager {
// Because we use different db tables for the notification query // Because we use different db tables for the notification query
// we have sometimes $it['unseen'] and sometimes $it['seen]. // we have sometimes $it['unseen'] and sometimes $it['seen].
// So we will have to transform $it['unseen'] // So we will have to transform $it['unseen']
if($it['unseen']) if (array_key_exists('unseen', $it)) {
$it['seen'] = ($it['unseen'] > 0 ? false : true); $it['seen'] = ($it['unseen'] > 0 ? false : true);
}
// Depending on the identifier of the notification we need to use different defaults // Depending on the identifier of the notification we need to use different defaults
switch ($ident) { switch ($ident) {
@ -224,16 +225,14 @@ class NotificationsManager {
$default_item_image = proxy_url($it['photo'], false, PROXY_SIZE_MICRO); $default_item_image = proxy_url($it['photo'], false, PROXY_SIZE_MICRO);
$default_item_text = strip_tags(bbcode($it['msg'])); $default_item_text = strip_tags(bbcode($it['msg']));
$default_item_when = relative_date($it['date']); $default_item_when = relative_date($it['date']);
$default_tpl = $tpl_notify;
break; break;
case 'home': case 'home':
$default_item_label = 'comment'; $default_item_label = 'comment';
$default_item_link = $this->a->get_baseurl(true).'/display/'.$it['pguid']; $default_item_link = $this->a->get_baseurl(true).'/display/'.$it['pguid'];
$default_item_image = proxy_url($it['author-avatar'], false, PROXY_SIZE_MICRO); $default_item_image = proxy_url($it['author-avatar'], false, PROXY_SIZE_MICRO);
$default_item_text = sprintf( t("%s commented on %s's post"), $it['author-name'], $it['pname']); $default_item_text = sprintf(t("%s commented on %s's post"), $it['author-name'], $it['pname']);
$default_item_when = relative_date($it['created']); $default_item_when = relative_date($it['created']);
$default_tpl = $tpl_item_comments;
break; break;
default: default:
@ -241,21 +240,20 @@ class NotificationsManager {
$default_item_link = $this->a->get_baseurl(true).'/display/'.$it['pguid']; $default_item_link = $this->a->get_baseurl(true).'/display/'.$it['pguid'];
$default_item_image = proxy_url($it['author-avatar'], false, PROXY_SIZE_MICRO); $default_item_image = proxy_url($it['author-avatar'], false, PROXY_SIZE_MICRO);
$default_item_text = (($it['id'] == $it['parent']) $default_item_text = (($it['id'] == $it['parent'])
? sprintf( t("%s created a new post"), $it['author-name']) ? sprintf(t("%s created a new post"), $it['author-name'])
: sprintf( t("%s commented on %s's post"), $it['author-name'], $it['pname'])); : sprintf(t("%s commented on %s's post"), $it['author-name'], $it['pname']));
$default_item_when = relative_date($it['created']); $default_item_when = relative_date($it['created']);
$default_tpl = (($it['id'] == $it['parent']) ? $tpl_item_posts : $tpl_item_comments);
} }
// Transform the different types of notification in an usable array // Transform the different types of notification in an usable array
switch($it['verb']){ switch ($it['verb']){
case ACTIVITY_LIKE: case ACTIVITY_LIKE:
$notif = array( $notif = array(
'label' => 'like', 'label' => 'like',
'link' => $this->a->get_baseurl(true).'/display/'.$it['pguid'], 'link' => $this->a->get_baseurl(true).'/display/'.$it['pguid'],
'$image' => proxy_url($it['author-avatar'], false, PROXY_SIZE_MICRO), '$image' => proxy_url($it['author-avatar'], false, PROXY_SIZE_MICRO),
'text' => sprintf( t("%s liked %s's post"), $it['author-name'], $it['pname']), 'text' => sprintf(t("%s liked %s's post"), $it['author-name'], $it['pname']),
'when' => relative_date($it['created']), 'when' => relative_date($it['created']),
'seen' => $it['seen'] 'seen' => $it['seen']
); );
@ -266,7 +264,7 @@ class NotificationsManager {
'label' => 'dislike', 'label' => 'dislike',
'link' => $this->a->get_baseurl(true).'/display/'.$it['pguid'], 'link' => $this->a->get_baseurl(true).'/display/'.$it['pguid'],
'image' => proxy_url($it['author-avatar'], false, PROXY_SIZE_MICRO), 'image' => proxy_url($it['author-avatar'], false, PROXY_SIZE_MICRO),
'text' => sprintf( t("%s disliked %s's post"), $it['author-name'], $it['pname']), 'text' => sprintf(t("%s disliked %s's post"), $it['author-name'], $it['pname']),
'when' => relative_date($it['created']), 'when' => relative_date($it['created']),
'seen' => $it['seen'] 'seen' => $it['seen']
); );
@ -277,7 +275,7 @@ class NotificationsManager {
'label' => 'attend', 'label' => 'attend',
'link' => $this->a->get_baseurl(true).'/display/'.$it['pguid'], 'link' => $this->a->get_baseurl(true).'/display/'.$it['pguid'],
'image' => proxy_url($it['author-avatar'], false, PROXY_SIZE_MICRO), 'image' => proxy_url($it['author-avatar'], false, PROXY_SIZE_MICRO),
'text' => sprintf( t("%s is attending %s's event"), $it['author-name'], $it['pname']), 'text' => sprintf(t("%s is attending %s's event"), $it['author-name'], $it['pname']),
'when' => relative_date($it['created']), 'when' => relative_date($it['created']),
'seen' => $it['seen'] 'seen' => $it['seen']
); );
@ -299,7 +297,7 @@ class NotificationsManager {
'label' => 'attendmaybe', 'label' => 'attendmaybe',
'link' => $this->a->get_baseurl(true).'/display/'.$it['pguid'], 'link' => $this->a->get_baseurl(true).'/display/'.$it['pguid'],
'image' => proxy_url($it['author-avatar'], false, PROXY_SIZE_MICRO), 'image' => proxy_url($it['author-avatar'], false, PROXY_SIZE_MICRO),
'text' => sprintf( t("%s may attend %s's event"), $it['author-name'], $it['pname']), 'text' => sprintf(t("%s may attend %s's event"), $it['author-name'], $it['pname']),
'when' => relative_date($it['created']), 'when' => relative_date($it['created']),
'seen' => $it['seen'] 'seen' => $it['seen']
); );
@ -314,7 +312,7 @@ class NotificationsManager {
'label' => 'friend', 'label' => 'friend',
'link' => $this->a->get_baseurl(true).'/display/'.$it['pguid'], 'link' => $this->a->get_baseurl(true).'/display/'.$it['pguid'],
'image' => proxy_url($it['author-avatar'], false, PROXY_SIZE_MICRO), 'image' => proxy_url($it['author-avatar'], false, PROXY_SIZE_MICRO),
'text' => sprintf( t("%s is now friends with %s"), $it['author-name'], $it['fname']), 'text' => sprintf(t("%s is now friends with %s"), $it['author-name'], $it['fname']),
'when' => relative_date($it['created']), 'when' => relative_date($it['created']),
'seen' => $it['seen'] 'seen' => $it['seen']
); );