aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMario Vavti <mario@mariovavti.com>2017-12-01 21:00:39 +0100
committerMario Vavti <mario@mariovavti.com>2017-12-01 21:00:39 +0100
commitdcad9ce26a0de72ba3ad5b86ddb62298598ac380 (patch)
tree6d9a50ac71c4ee463a36f60401c703857620a52b
parent3b6d7e306656f1263b80430fbcfdb413bf99ead9 (diff)
downloadvolse-hubzilla-dcad9ce26a0de72ba3ad5b86ddb62298598ac380.tar.gz
volse-hubzilla-dcad9ce26a0de72ba3ad5b86ddb62298598ac380.tar.bz2
volse-hubzilla-dcad9ce26a0de72ba3ad5b86ddb62298598ac380.zip
add a filter for notification to show new posts only
-rw-r--r--Zotlabs/Lib/Enotify.php2
-rw-r--r--Zotlabs/Widget/Notifications.php15
-rw-r--r--view/js/main.js14
-rw-r--r--view/tpl/notifications_widget.tpl23
4 files changed, 40 insertions, 14 deletions
diff --git a/Zotlabs/Lib/Enotify.php b/Zotlabs/Lib/Enotify.php
index 697b57b6a..a7b4f28e8 100644
--- a/Zotlabs/Lib/Enotify.php
+++ b/Zotlabs/Lib/Enotify.php
@@ -804,6 +804,8 @@ class Enotify {
'when' => relative_date($item['created']),
'class' => (intval($item['item_unseen']) ? 'notify-unseen' : 'notify-seen'),
'b64mid' => ((in_array($item['verb'], [ACTIVITY_LIKE, ACTIVITY_DISLIKE])) ? 'b64.' . base64url_encode($item['thr_parent']) : 'b64.' . base64url_encode($item['mid'])),
+ 'notify_id' => 'undefined',
+ 'thread_top' => (($item['item_thread_top']) ? true : false),
'message' => strip_tags(bbcode($itemem_text))
);
diff --git a/Zotlabs/Widget/Notifications.php b/Zotlabs/Widget/Notifications.php
index 191f2afb6..450d3565e 100644
--- a/Zotlabs/Widget/Notifications.php
+++ b/Zotlabs/Widget/Notifications.php
@@ -20,8 +20,10 @@ class Notifications {
'label' => t('View your network activity')
],
'markall' => [
- 'url' => '#',
'label' => t('Mark all notifications read')
+ ],
+ 'filter' => [
+ 'label' => t('Show new posts only')
]
];
@@ -36,8 +38,10 @@ class Notifications {
'label' => t('View your home activity')
],
'markall' => [
- 'url' => '#',
'label' => t('Mark all notifications seen')
+ ],
+ 'filter' => [
+ 'label' => t('Show new posts only')
]
];
@@ -52,7 +56,6 @@ class Notifications {
'label' => t('View your private mails')
],
'markall' => [
- 'url' => '#',
'label' => t('Mark all messages seen')
]
];
@@ -68,7 +71,6 @@ class Notifications {
'label' => t('View events')
],
'markall' => [
- 'url' => '#',
'label' => t('Mark all events seen')
]
];
@@ -104,7 +106,6 @@ class Notifications {
'label' => t('View all notices')
],
'markall' => [
- 'url' => '#',
'label' => t('Mark all notices seen')
]
];
@@ -132,8 +133,10 @@ class Notifications {
'label' => t('View the public stream')
],
'markall' => [
- 'url' => '#',
'label' => t('Mark all notifications seen')
+ ],
+ 'filter' => [
+ 'label' => t('Show new posts only')
]
];
}
diff --git a/view/js/main.js b/view/js/main.js
index 888934ea8..11a09b647 100644
--- a/view/js/main.js
+++ b/view/js/main.js
@@ -874,6 +874,7 @@ function notify_popup_loader(notifyType) {
var notifications_tpl= unescape($("#nav-notifications-template[rel=template]").html());
var notifications_all = unescape($('<div>').append( $("#nav-" + notifyType + "-see-all").clone() ).html()); //outerHtml hack
var notifications_mark = unescape($('<div>').append( $("#nav-" + notifyType + "-mark-all").clone() ).html()); //outerHtml hack
+ var notifications_tt_only = unescape($('<div>').append( $("#tt-" + notifyType + "-only").clone() ).html()); //outerHtml hack
var notifications_empty = unescape($("#nav-" + notifyType + "-menu").html());
var notify_menu = $("#nav-" + notifyType + "-menu");
@@ -885,14 +886,15 @@ function notify_popup_loader(notifyType) {
window.location.href=window.location.href;
}
- $("#navbar-" + notifyType + "-menu").html(notifications_all + notifications_mark);
- $("#nav-" + notifyType + "-menu").html(notifications_all + notifications_mark);
+ $("#navbar-" + notifyType + "-menu").html(notifications_all + notifications_mark + notifications_tt_only);
+ $("#nav-" + notifyType + "-menu").html(notifications_all + notifications_mark + notifications_tt_only);
+
$("." + notifyType + "-update").html(data.notify.length);
$(data.notify).each(function() {
- html = navbar_notifications_tpl.format(this.notify_link,this.photo,this.name,this.message,this.when,this.hclass,this.b64mid,this.notify_id);
+ html = navbar_notifications_tpl.format(this.notify_link,this.photo,this.name,this.message,this.when,this.hclass,this.b64mid,this.notify_id,this.thread_top);
$("#navbar-" + notifyType + "-menu").append(html);
- html = notifications_tpl.format(this.notify_link,this.photo,this.name,this.message,this.when,this.hclass,this.b64mid,this.notify_id);
+ html = notifications_tpl.format(this.notify_link,this.photo,this.name,this.message,this.when,this.hclass,this.b64mid,this.notify_id,this.thread_top);
$("#nav-" + notifyType + "-menu").append(html);
});
@@ -901,8 +903,12 @@ function notify_popup_loader(notifyType) {
$(el).attr('src', $(el).data("src"));
$(el).removeAttr("data-src");
});
+
+ if($('#tt-' + notifyType + '-only').hasClass('active'))
+ $('#nav-' + notifyType + '-menu [data-thread_top=false]').hide();
});
+
setTimeout(function() {
if(notify_menu.hasClass('show')) {
console.log('updating ' + notifyType + ' notifications...');
diff --git a/view/tpl/notifications_widget.tpl b/view/tpl/notifications_widget.tpl
index 18f3ef12d..90f03faf0 100644
--- a/view/tpl/notifications_widget.tpl
+++ b/view/tpl/notifications_widget.tpl
@@ -22,7 +22,7 @@
});
{{if $module == 'display' || $module == 'hq'}}
- $(document).on('click touch', '.notification', function(e) {
+ $(document).on('click', '.notification', function(e) {
var b64mid = $(this).data('b64mid');
var notify_id = $(this).data('notify_id');
var path = $(this)[0].pathname.substr(1,7);
@@ -53,6 +53,16 @@
});
{{/if}}
+ {{foreach $notifications as $notification}}
+ {{if $notification.filter}}
+ $(document).on('click', '#tt-{{$notification.type}}-only', function(e) {
+ e.preventDefault();
+ $('#nav-{{$notification.type}}-menu [data-thread_top=false]').toggle();
+ $(this).toggleClass('active');
+ });
+ {{/if}}
+ {{/foreach}}
+
function getData(b64mid, notify_id) {
$('.thread-wrapper').remove();
bParam_mid = b64mid;
@@ -72,7 +82,7 @@
<div id="notifications_wrapper">
<div id="notifications" class="navbar-nav" data-children=".nav-item">
<div id="nav-notifications-template" rel="template">
- <a class="list-group-item clearfix notification {5}" href="{0}" title="{2} {3}" data-b64mid="{6}" data-notify_id="{7}">
+ <a class="list-group-item clearfix notification {5}" href="{0}" title="{2} {3}" data-b64mid="{6}" data-notify_id="{7}" data-thread_top="{8}">
<img class="menu-img-3" data-src="{1}">
<span class="contactname">{2}</span>
<span class="dropdown-sub-text">{3}<br>{4}</span>
@@ -91,9 +101,14 @@
</a>
{{/if}}
{{if $notification.markall}}
- <a class="list-group-item text-dark" id="nav-{{$notification.type}}-mark-all" href="{{$notification.markall.url}}" onclick="markRead('{{$notification.type}}'); return false;">
+ <div class="list-group-item" id="nav-{{$notification.type}}-mark-all" onclick="markRead('{{$notification.type}}'); return false;">
<i class="fa fa-fw fa-check"></i> {{$notification.markall.label}}
- </a>
+ </div>
+ {{/if}}
+ {{if $notification.filter}}
+ <div class="list-group-item" id="tt-{{$notification.type}}-only">
+ <i class="fa fa-fw fa-filter"></i> {{$notification.filter.label}}
+ </div>
{{/if}}
{{$loading}}
</div>