Merge pull request #2052 from fabrixxm/issue_1718

duepuntozero, vier: add unread messages per group
This commit is contained in:
Tobias Diekershoff 2015-11-08 18:29:15 +01:00
commit 686ba3fcb0
6 changed files with 51 additions and 21 deletions

View file

@ -203,6 +203,13 @@
var birthdaystoday = $(data).find('birthdays-today').text(); var birthdaystoday = $(data).find('birthdays-today').text();
if(birthdaystoday == 0) { $('#birthdays-update').removeClass('notif-birthdays-today') } else { $('#birthdays-update').addClass('notif-birthdays-today') } if(birthdaystoday == 0) { $('#birthdays-update').removeClass('notif-birthdays-today') } else { $('#birthdays-update').addClass('notif-birthdays-today') }
$(".sidebar-group-li .notify").removeClass("show");
$(data).find("group").each(function() {
var gid = this.id;
var gcount = this.innerHTML;
$(".group-"+gid+" .notify").addClass("show").text(gcount);
});
var eNotif = $(data).find('notif') var eNotif = $(data).find('notif')

View file

@ -203,8 +203,8 @@ function ping_init(&$a) {
if ($a->is_friendica_app() OR !$regularnotifications) if ($a->is_friendica_app() OR !$regularnotifications)
$n['message'] = str_replace("{0}", $n['name'], $n['message']); $n['message'] = str_replace("{0}", $n['name'], $n['message']);
$local_time = datetime_convert('UTC',date_default_timezone_get(),$n['date']); $local_time = datetime_convert('UTC',date_default_timezone_get(),$n['date']);
call_hooks('ping_xmlize', $n); call_hooks('ping_xmlize', $n);
$notsxml = '<note href="%s" name="%s" url="%s" photo="%s" date="%s" seen="%s" timestamp="%s" >%s</note>'."\n"; $notsxml = '<note href="%s" name="%s" url="%s" photo="%s" date="%s" seen="%s" timestamp="%s" >%s</note>'."\n";
return sprintf ( $notsxml, return sprintf ( $notsxml,
@ -250,41 +250,41 @@ function ping_init(&$a) {
$n = array( $n = array(
'href' => $a->get_baseurl().'/notifications/intros/'.$i['id'], 'href' => $a->get_baseurl().'/notifications/intros/'.$i['id'],
'name' => $i['name'], 'name' => $i['name'],
'url' => $i['url'], 'url' => $i['url'],
'photo' => $i['photo'], 'photo' => $i['photo'],
'date' => $i['datetime'], 'date' => $i['datetime'],
'seen' => false, 'seen' => false,
'message' => t("{0} wants to be your friend"), 'message' => t("{0} wants to be your friend"),
); );
$notifs[] = $n; $notifs[] = $n;
} }
} }
if ($mail>0){ if ($mail>0){
foreach ($mails as $i) { foreach ($mails as $i) {
$n = array( $n = array(
'href' => $a->get_baseurl().'/message/'.$i['id'], 'href' => $a->get_baseurl().'/message/'.$i['id'],
'name' => $i['from-name'], 'name' => $i['from-name'],
'url' => $i['from-url'], 'url' => $i['from-url'],
'photo' => $i['from-photo'], 'photo' => $i['from-photo'],
'date' => $i['created'], 'date' => $i['created'],
'seen' => false, 'seen' => false,
'message' => t("{0} sent you a message"), 'message' => t("{0} sent you a message"),
); );
$notifs[] = $n; $notifs[] = $n;
} }
} }
if ($register>0){ if ($register>0){
foreach ($regs as $i) { foreach ($regs as $i) {
$n = array( $n = array(
'href' => $a->get_baseurl().'/admin/users/', 'href' => $a->get_baseurl().'/admin/users/',
'name' => $i['name'], 'name' => $i['name'],
'url' => $i['url'], 'url' => $i['url'],
'photo' => $i['micro'], 'photo' => $i['micro'],
'date' => $i['created'], 'date' => $i['created'],
'seen' => false, 'seen' => false,
'message' => t("{0} requested registration"), 'message' => t("{0} requested registration"),
); );
$notifs[] = $n; $notifs[] = $n;
} }
@ -363,7 +363,7 @@ function ping_get_notifications($uid) {
$quit = true; $quit = true;
else else
$offset += 50; $offset += 50;
foreach ($r AS $notification) { foreach ($r AS $notification) {
if (is_null($notification["visible"])) if (is_null($notification["visible"]))
@ -386,7 +386,7 @@ function ping_get_notifications($uid) {
$notification["message"] = substr_replace($notification["message"],"{0}",$pos,strlen($notification["name"])); $notification["message"] = substr_replace($notification["message"],"{0}",$pos,strlen($notification["name"]));
$notification['href'] = $a->get_baseurl() . '/notify/view/' . $notification['id']; $notification['href'] = $a->get_baseurl() . '/notify/view/' . $notification['id'];
if ($notification["visible"] AND !$notification["spam"] AND if ($notification["visible"] AND !$notification["spam"] AND
!$notification["deleted"] AND !is_array($result[$notification["parent"]])) { !$notification["deleted"] AND !is_array($result[$notification["parent"]])) {
$result[$notification["parent"]] = $notification; $result[$notification["parent"]] = $notification;
@ -395,6 +395,6 @@ function ping_get_notifications($uid) {
} while ((count($result) < 50) AND !$quit); } while ((count($result) < 50) AND !$quit);
return($result); return($result);
} }

View file

@ -4,18 +4,19 @@
<div id="sidebar-group-list"> <div id="sidebar-group-list">
<ul role="menu" id="sidebar-group-ul"> <ul role="menu" id="sidebar-group-ul">
{{foreach $groups as $group}} {{foreach $groups as $group}}
<li role="menuitem" class="sidebar-group-li"> <li role="menuitem" class="sidebar-group-li group-{{$group.id}}">
{{if $group.cid}} {{if $group.cid}}
<input type="checkbox" <input type="checkbox"
class="{{if $group.selected}}ticked{{else}}unticked {{/if}} action" class="{{if $group.selected}}ticked{{else}}unticked {{/if}} action"
onclick="contactgroupChangeMember('{{$group.id}}','{{$group.cid}}');return true;" onclick="contactgroupChangeMember('{{$group.id}}','{{$group.cid}}');return true;"
{{if $group.ismember}}checked="checked"{{/if}} {{if $group.ismember}}checked="checked"{{/if}}
/> />
{{/if}} {{/if}}
{{if $group.edit}} {{if $group.edit}}
<a class="groupsideedit" href="{{$group.edit.href}}" title="{{$edittext}}"><span id="edit-sidebar-group-element-{{$group.id}}" class="group-edit-icon iconspacer small-pencil"><span class="sr-only">{{$edittext}}</span></span></a> <a class="groupsideedit" href="{{$group.edit.href}}" title="{{$edittext}}"><span id="edit-sidebar-group-element-{{$group.id}}" class="group-edit-icon iconspacer small-pencil"><span class="sr-only">{{$edittext}}</span></span></a>
{{/if}} {{/if}}
<a id="sidebar-group-element-{{$group.id}}" class="sidebar-group-element {{if $group.selected}}group-selected{{/if}}" href="{{$group.href}}">{{$group.text}}</a> <a id="sidebar-group-element-{{$group.id}}" class="sidebar-group-element {{if $group.selected}}group-selected{{/if}}" href="{{$group.href}}">{{$group.text}}</a>
<span class="notify"></span>
</li> </li>
{{/foreach}} {{/foreach}}
</ul> </ul>

View file

@ -2039,6 +2039,17 @@ a.mail-list-link {
#sidebar-group-list ul { #sidebar-group-list ul {
list-style-type: none; list-style-type: none;
} }
.sidebar-group-li .notify {
display: none;
font-size: 9px;
border: 1px solid rgb(221, 221, 221);
padding: 2px;
float: right;
background-color: #BABDB6;
}
.sidebar-group-li .notify.show {
display: block;
}
#sidebar-group-list .icon, #sidebar-group-list .iconspacer { #sidebar-group-list .icon, #sidebar-group-list .iconspacer {
display: inline-block; display: inline-block;

View file

@ -4,7 +4,7 @@ $(document).ready(function(){
var intro = $(data).find('intro').text(); var intro = $(data).find('intro').text();
var mail = $(data).find('mail').text(); var mail = $(data).find('mail').text();
$("tool notify").removeClass("on"); $(".tool .notify").removeClass("on");
$(data).find("group").each(function() { $(data).find("group").each(function() {
var gid = this.id; var gid = this.id;
var gcount = this.innerHTML; var gcount = this.innerHTML;

View file

@ -366,6 +366,17 @@ code {
#sidebar-group-list .tool:hover { #sidebar-group-list .tool:hover {
background: #EEE; background: #EEE;
} }
#sidebar-group-list .notify {
min-width: 10px;
text-align: center;
color: #FFF;
background-color: #CB4437;
font: bold 10px Arial;
padding: 3px;
border-radius: 10px;
display: none;
}
#sidebar-group-list .notify.show { display: inline-block; }
.tool .label { .tool .label {
/* float: left; */ /* float: left; */
} }
@ -1360,12 +1371,12 @@ section.minimal {
width: 100%; width: 100%;
margin-bottom: 0.3em; margin-bottom: 0.3em;
} }
.wall-item-container .wall-item-actions-social, .wall-item-container .wall-item-actions-social,
.wall-item-container .wall-item-actions-isevent { .wall-item-container .wall-item-actions-isevent {
float: left; float: left;
margin-bottom: 1px; margin-bottom: 1px;
} }
.wall-item-container .wall-item-actions-social a, .wall-item-container .wall-item-actions-social a,
.wall-item-container .wall-item-actions-isevent a { .wall-item-container .wall-item-actions-isevent a {
float: left; float: left;
margin-right: 1em; margin-right: 1em;
@ -2287,7 +2298,7 @@ aside #id_password {
width: 120px; width: 120px;
height: 130px; height: 130px;
float: left; float: left;
overflow: hidden; overflow: hidden;
margin-left: 5px; margin-left: 5px;
}*/ }*/