aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xinclude/enotify.php8
-rwxr-xr-xinclude/nav.php3
-rwxr-xr-xjs/main.js11
-rwxr-xr-xmod/notifications.php35
-rw-r--r--mod/ping.php25
-rwxr-xr-xview/nav.tpl1
-rwxr-xr-xview/notify.tpl3
-rwxr-xr-xview/theme/testbubble/nav.tpl4
-rwxr-xr-xview/theme/testbubble/style.css4
9 files changed, 87 insertions, 7 deletions
diff --git a/include/enotify.php b/include/enotify.php
index 7fa83cfa4..1eb3b5476 100755
--- a/include/enotify.php
+++ b/include/enotify.php
@@ -30,16 +30,16 @@ function notification($params) {
$preamble = sprintf( t('%s sent you a new private message at %s.'),$params['source_name'],$sitename);
$epreamble = sprintf( t('%s sent you %s.'),'[url=' . $params['source_link'] . ']' . $params['source_name'] . '[/url]', '[url=$itemlink]' . t('a private message') . '[/url]');
$sitelink = t('Please visit %s to view and/or reply to your private messages.');
- $tsitelink = sprintf( $sitelink, $siteurl . '/message' );
- $hsitelink = sprintf( $sitelink, '<a href="' . $siteurl . '/message">' . $sitename . '</a>');
- $itemlink = $siteurl . '/message';
+ $tsitelink = sprintf( $sitelink, $siteurl . '/message/' . $params['item']['id'] );
+ $hsitelink = sprintf( $sitelink, '<a href="' . $siteurl . '/message/' . $params['item']['id'] . '">' . $sitename . '</a>');
+ $itemlink = $siteurl . '/message/' . $params['item']['id'];
}
if($params['type'] == NOTIFY_COMMENT) {
$subject = sprintf( t('%s commented on an item at %s'), $params['source_name'], $sitename);
$preamble = sprintf( t('%s commented on an item/conversation you have been following.'), $params['source_name']);
- $epreamble = sprintf( t('%s commented on %s you have been following.'), '[url=' . $params['source_link'] . ']' . $params['source_name'] . '[/url]', '[url=$itemlink]' . t('an item/conversation') . '[/url]');
+ $epreamble = sprintf( t('%s commented in %s.'), '[url=' . $params['source_link'] . ']' . $params['source_name'] . '[/url]', '[url=$itemlink]' . t('a watched conversation') . '[/url]');
$sitelink = t('Please visit %s to view and/or reply to the conversation.');
$tsitelink = sprintf( $sitelink, $siteurl );
diff --git a/include/nav.php b/include/nav.php
index c8a44af80..511ca07fc 100755
--- a/include/nav.php
+++ b/include/nav.php
@@ -116,7 +116,8 @@ function nav(&$a) {
if($_SESSION['page_flags'] == PAGE_NORMAL) {
$nav['introductions'] = array('notifications/intros', t('Introductions'), "", t('Friend Requests'));
$nav['notifications'] = array('notifications', t('Notifications'), "", t('Notifications'));
- $nav['notifications']['all']=array('notifications/network', t('See all notifications', "", ""));
+ $nav['notifications']['all']=array('notifications/system', t('See all notifications'), "", "");
+ $nav['notifications']['mark'] = array('', t('Mark all system notifications seen'), '','');
}
diff --git a/js/main.js b/js/main.js
index 4cb278ee8..3a10ae468 100755
--- a/js/main.js
+++ b/js/main.js
@@ -89,6 +89,7 @@
/* notifications template */
var notifications_tpl= unescape($("#nav-notifications-template[rel=template]").html());
var notifications_all = unescape($('<div>').append( $("#nav-notifications-see-all").clone() ).html()); //outerHtml hack
+ var notifications_mark = unescape($('<div>').append( $("#nav-notifications-mark-all").clone() ).html()); //outerHtml hack
var notifications_empty = unescape($("#nav-notifications-menu").html());
/* nav update event */
@@ -117,7 +118,7 @@
$("#nav-notifications-linkmenu").addClass("on");
nnm = $("#nav-notifications-menu");
- nnm.html(notifications_all);
+ nnm.html(notifications_all + notifications_mark);
//nnm.attr('popup','true');
eNotif.children("note").each(function(){
@@ -518,6 +519,14 @@ function checkboxhighlight(box) {
}
}
+function notifyMarkAll() {
+ $.get('notify/mark/all', function(data) {
+ if(timer) clearTimeout(timer);
+ timer = setTimeout(NavUpdate,1000);
+ });
+}
+
+
function setupFieldRichtext(){
tinyMCE.init({
theme : "advanced",
diff --git a/mod/notifications.php b/mod/notifications.php
index 635639d89..5831c1b7a 100755
--- a/mod/notifications.php
+++ b/mod/notifications.php
@@ -68,6 +68,11 @@ function notifications_content(&$a) {
$o = '';
$tabs = array(
array(
+ 'label' => t('System'),
+ 'url'=>$a->get_baseurl() . '/notifications/system',
+ 'sel'=> (($a->argv[1] == 'system') ? 'active' : ''),
+ ),
+ array(
'label' => t('Network'),
'url'=>$a->get_baseurl() . '/notifications/network',
'sel'=> (($a->argv[1] == 'network') ? 'active' : ''),
@@ -295,6 +300,36 @@ function notifications_content(&$a) {
'$notif_content' => $notif_content,
));
+ } else if (($a->argc > 1) && ($a->argv[1] == 'system')) {
+
+ $notif_tpl = get_markup_template('notifications.tpl');
+
+ $not_tpl = get_markup_template('notify.tpl');
+ require_once('include/bbcode.php');
+
+ $r = q("SELECT * from notify where uid = %d and seen = 0 order by date desc",
+ intval(local_user())
+ );
+
+ if (count($r) > 0) {
+ foreach ($r as $it) {
+ $notif_content .= replace_macros($not_tpl,array(
+ '$item_link' => $a->get_baseurl().'/notify/view/'. $it['id'],
+ '$item_image' => $it['photo'],
+ '$item_text' => strip_tags(bbcode($it['msg'])),
+ '$item_when' => relative_date($it['date'])
+ ));
+ }
+ } else {
+ $notif_content .= t('No more system notifications.');
+ }
+
+ $o .= replace_macros($notif_tpl,array(
+ '$notif_header' => t('System'),
+ '$tabs' => $tabs,
+ '$notif_content' => $notif_content,
+ ));
+
} else if (($a->argc > 1) && ($a->argv[1] == 'personal')) {
$notif_tpl = get_markup_template('notifications.tpl');
diff --git a/mod/ping.php b/mod/ping.php
index 9c2e385d6..2898042a3 100644
--- a/mod/ping.php
+++ b/mod/ping.php
@@ -12,6 +12,13 @@ function ping_init(&$a) {
$xmlhead="<"."?xml version='1.0' encoding='UTF-8' ?".">";
if(local_user()){
+ $z = q("select * from notify where seen = 0 and uid = %d
+ order by date desc",
+ intval(local_user())
+ );
+
+
+
$tags = array();
$comments = array();
$likes = array();
@@ -142,6 +149,22 @@ function ping_init(&$a) {
$tot = $mail+$intro+$register+count($comments)+count($likes)+count($dislikes)+count($friends)+count($posts)+count($tags);
echo ' <notif count="'.$tot.'">';
+
+ require_once('include/bbcode.php');
+
+ if(count($z)) {
+ foreach($z as $zz) {
+ echo xmlize($a->get_baseurl() . '/notify/' . $zz['id'], $zz['name'],$zz['url'],$zz['photo'],relative_date($zz['date']), bbcode($zz['msg']));
+
+ }
+ }
+
+
+
+
+
+/*
+
if ($intro>0){
foreach ($intros as $i) {
echo xmlize( $a->get_baseurl().'/notifications/intros/'.$i['id'], $i['name'], $i['url'], $i['photo'], relative_date($i['datetime']), t("{0} wants to be your friend") );
@@ -195,6 +218,8 @@ function ping_init(&$a) {
};
}
+*/
+
echo " </notif>";
}
echo " <sysmsgs>";
diff --git a/view/nav.tpl b/view/nav.tpl
index dffa6e520..8c872864c 100755
--- a/view/nav.tpl
+++ b/view/nav.tpl
@@ -43,6 +43,7 @@
<li id="nav-notifications-linkmenu" class="nav-menu-icon"><a href="$nav.notifications.0" rel="#nav-notifications-menu" title="$nav.notifications.1"><span class="icon s22 notify">$nav.notifications.1</span></a>
<span id="notify-update" class="nav-notify"></span>
<ul id="nav-notifications-menu" class="menu-popup">
+ <li id="nav-notifications-mark-all"><a href="#" onclick="notifyMarkAll(); return false;">$nav.notifications.mark.1</a></li>
<li id="nav-notifications-see-all"><a href="$nav.notifications.all.0">$nav.notifications.all.1</a></li>
<li class="empty">$emptynotifications</li>
</ul>
diff --git a/view/notify.tpl b/view/notify.tpl
new file mode 100755
index 000000000..73cc9f948
--- /dev/null
+++ b/view/notify.tpl
@@ -0,0 +1,3 @@
+<div class="notif-item">
+ <a href="$item_link" target="friendica-notifications"><img src="$item_image" class="notif-image">$item_text <span class="notif-when">$item_when</span></a>
+</div> \ No newline at end of file
diff --git a/view/theme/testbubble/nav.tpl b/view/theme/testbubble/nav.tpl
index acbea5bf8..d657a11c5 100755
--- a/view/theme/testbubble/nav.tpl
+++ b/view/theme/testbubble/nav.tpl
@@ -6,9 +6,11 @@
<div id="notifications">
{{ if $nav.network }}<a rel="#nav-notifications-menu" id="net-update" class="nav-ajax-update" href="$nav.network.0" title="$nav.network.1"></a>{{ endif }}
{{ if $nav.home }}<a rel="#nav-notifications-menu" id="home-update" class="nav-ajax-update" href="$nav.home.0" title="$nav.home.1"></a>{{ endif }}
- {{ if $nav.notifications }}<a rel="#nav-notifications-menu" id="intro-update" class="nav-ajax-update" href="$nav.notifications.0" title="$nav.notifications.1"></a>{{ endif }}
+<!-- {{ if $nav.notifications }}<a rel="#nav-notifications-menu" id="intro-update" class="nav-ajax-update" href="$nav.notifications.0" title="$nav.notifications.1"></a>{{ endif }} -->
+ {{ if $nav.introductions }}<a rel="#nav-notifications-menu" id="intro-update" class="nav-ajax-update" href="$nav.introductions.0" title="$nav.introductions.1"></a>{{ endif }}
{{ if $nav.messages }}<a rel="#nav-notifications-menu" id="mail-update" class="nav-ajax-update" href="$nav.messages.0" title="$nav.messages.1"></a>{{ endif }}
<ul id="nav-notifications-menu" class="menu-popup">
+ <li id="nav-notifications-mark-all"><a href="#" onclick="notifyMarkAll(); return false;">$nav.notifications.mark.1</a></li>
<li id="nav-notifications-see-all"><a href="$nav.notifications.all.0">$nav.notifications.all.1</a></li>
<li class="empty">$emptynotifications</li>
</ul>
diff --git a/view/theme/testbubble/style.css b/view/theme/testbubble/style.css
index fcb7bea7a..c6f66d5ad 100755
--- a/view/theme/testbubble/style.css
+++ b/view/theme/testbubble/style.css
@@ -3202,6 +3202,10 @@ ul.menu-popup {
background-color:#b20202;
}
+#nav-notifications-menu a:hover {
+ text-decoration: underline;
+}
+
.notif-item a {
vertical-align: middle;
color: #626262;