This commit is contained in:
friendica 2015-02-13 13:05:14 -08:00
commit 46eda6e723
7 changed files with 73 additions and 68 deletions

View File

@ -1082,6 +1082,7 @@ function file_activity($channel_id, $object, $allow_cid, $allow_gid, $deny_cid,
$arr['mid'] = $mid; $arr['mid'] = $mid;
$arr['parent_mid'] = $mid; $arr['parent_mid'] = $mid;
$arr['item_flags'] = $item_flags; $arr['item_flags'] = $item_flags;
$arr['item_unseen'] = 1;
$arr['author_xchan'] = $poster['xchan_hash']; $arr['author_xchan'] = $poster['xchan_hash'];
$arr['owner_xchan'] = $poster['xchan_hash']; $arr['owner_xchan'] = $poster['xchan_hash'];
$arr['title'] = ''; $arr['title'] = '';

View File

@ -2861,7 +2861,7 @@ function tag_deliver($uid,$item_id) {
if(preg_match($pattern,$body,$matches)) if(preg_match($pattern,$body,$matches))
$tagged = true; $tagged = true;
$pattern = '/@\!?\[zrl\=(.*?)\](.*?)\+\[\/zrl\]/'; $pattern = '/@\!?\[zrl\=([^\]]*?)\]((?:.(?!\[zrl\=))*?)\+\[\/zrl\]/';
if(preg_match_all($pattern,$body,$matches,PREG_SET_ORDER)) { if(preg_match_all($pattern,$body,$matches,PREG_SET_ORDER)) {
$max_forums = get_config('system','max_tagged_forums'); $max_forums = get_config('system','max_tagged_forums');
@ -3022,7 +3022,7 @@ function tgroup_check($uid,$item) {
// $pattern = '/@\!?\[zrl\=' . preg_quote($term['url'],'/') . '\]' . preg_quote($term['term'] . '+','/') . '\[\/zrl\]/'; // $pattern = '/@\!?\[zrl\=' . preg_quote($term['url'],'/') . '\]' . preg_quote($term['term'] . '+','/') . '\[\/zrl\]/';
$pattern = '/@\!?\[zrl\=(.*?)\](.*?)\+\[\/zrl\]/'; $pattern = '/@\!?\[zrl\=([^\]]*?)\]((?:.(?!\[zrl\=))*?)\+\[\/zrl\]/';
$found = false; $found = false;

View File

@ -1560,7 +1560,7 @@ function update_r1135() {
} }
function update_r1136() { function update_r1136() {
$r1 = q("alter table item add item_unseen smallint(1) not null default '0' "); $r1 = q("alter table item add item_unseen smallint not null default '0' ");
$r2 = q("create index item_unseen on item ( item_unseen ) "); $r2 = q("create index item_unseen on item ( item_unseen ) ");
$r3 = q("update item set item_unseen = 1 where ( item_flags & 2 ) > 0 "); $r3 = q("update item set item_unseen = 1 where ( item_flags & 2 ) > 0 ");

View File

@ -261,7 +261,12 @@ a.wall-item-name-link {
cursor: default; cursor: default;
} }
.item-verified {
color: darkgreen;
font-size: 1em !important;
}
.item-forged { .item-forged {
color: #FF0000; color: #FF0000;
font-size: 1.5em !important; font-size: 1em !important;
} }

View File

@ -1907,10 +1907,6 @@ img.mail-list-sender-photo {
box-shadow: $shadowpx $shadowpx $shadowpx 0 #444444; box-shadow: $shadowpx $shadowpx $shadowpx 0 #444444;
} }
.wall-item-ago .icon-ok {
color: darkgreen;
}
.wall-item-ago { .wall-item-ago {
color: #777; color: #777;
font-size: 0.833em; font-size: 0.833em;

View File

@ -28,7 +28,7 @@
<a href="{{$item.profile_url}}" title="{{$item.linktitle}}" class="wall-item-name-link"><span class="wall-item-name{{$item.sparkle}}" id="wall-item-name-{{$item.id}}" >{{$item.name}}</span></a>{{if $item.owner_url}}&nbsp;{{$item.via}}&nbsp;<a href="{{$item.owner_url}}" title="{{$item.olinktitle}}" class="wall-item-name-link"><span class="wall-item-name{{$item.osparkle}}" id="wall-item-ownername-{{$item.id}}">{{$item.owner_name}}</span></a>{{/if}} <a href="{{$item.profile_url}}" title="{{$item.linktitle}}" class="wall-item-name-link"><span class="wall-item-name{{$item.sparkle}}" id="wall-item-name-{{$item.id}}" >{{$item.name}}</span></a>{{if $item.owner_url}}&nbsp;{{$item.via}}&nbsp;<a href="{{$item.owner_url}}" title="{{$item.olinktitle}}" class="wall-item-name-link"><span class="wall-item-name{{$item.osparkle}}" id="wall-item-ownername-{{$item.id}}">{{$item.owner_name}}</span></a>{{/if}}
</div> </div>
<div class="wall-item-ago" id="wall-item-ago-{{$item.id}}"> <div class="wall-item-ago" id="wall-item-ago-{{$item.id}}">
{{if $item.verified}}<i class="icon-ok item-verified" title="{{$item.verified}}"></i>&nbsp;{{elseif $item.forged}}<i class="icon-remove item-forged" title="{{$item.forged}}"></i>&nbsp;{{/if}}{{if $item.location}}<span class="wall-item-location" id="wall-item-location-{{$item.id}}">{{$item.location}},&nbsp;</span>{{/if}}<span class="autotime" title="{{$item.isotime}}">{{$item.localtime}}{{if $item.editedtime}}&nbsp;{{$item.editedtime}}{{/if}}{{if $item.expiretime}}&nbsp;{{$item.expiretime}}{{/if}}</span>{{if $item.editedtime}}&nbsp;<i class="icon-pencil"></i>{{/if}}&nbsp;{{if $item.app}}<span class="item.app">{{$item.str_app}}</span>{{/if}} {{if $item.verified}}<i class="icon-ok item-verified" title="{{$item.verified}}"></i>&nbsp;{{elseif $item.forged}}<i class="icon-exclamation item-forged" title="{{$item.forged}}"></i>&nbsp;{{/if}}{{if $item.location}}<span class="wall-item-location" id="wall-item-location-{{$item.id}}">{{$item.location}},&nbsp;</span>{{/if}}<span class="autotime" title="{{$item.isotime}}">{{$item.localtime}}{{if $item.editedtime}}&nbsp;{{$item.editedtime}}{{/if}}{{if $item.expiretime}}&nbsp;{{$item.expiretime}}{{/if}}</span>{{if $item.editedtime}}&nbsp;<i class="icon-pencil"></i>{{/if}}&nbsp;{{if $item.app}}<span class="item.app">{{$item.str_app}}</span>{{/if}}
</div> </div>
<div class="wall-item-content" id="wall-item-content-{{$item.id}}"> <div class="wall-item-content" id="wall-item-content-{{$item.id}}">
<div class="wall-item-title-end"></div> <div class="wall-item-title-end"></div>
@ -67,10 +67,10 @@
{{/if}} {{/if}}
{{if $item.isevent}} {{if $item.isevent}}
<button type="button" title="{{$item.attend.0}}" class="btn btn-default btn-sm" onclick="itemAddToCal({{$item.id}}); dolike({{$item.id}},'attendyes'); return false;"> <button type="button" title="{{$item.attend.0}}" class="btn btn-default btn-sm" onclick="itemAddToCal({{$item.id}}); dolike({{$item.id}},'attendyes'); return false;">
<i class="icon-ok-circle" ></i> <i class="icon-ok" ></i>
</button> </button>
<button type="button" title="{{$item.attend.1}}" class="btn btn-default btn-sm" onclick="dolike({{$item.id}},'attendno'); return false;"> <button type="button" title="{{$item.attend.1}}" class="btn btn-default btn-sm" onclick="dolike({{$item.id}},'attendno'); return false;">
<i class="icon-remove-circle" ></i> <i class="icon-remove" ></i>
</button> </button>
<button type="button" title="{{$item.attend.2}}" class="btn btn-default btn-sm" onclick="itemAddToCal({{$item.id}}); dolike({{$item.id}},'attendmaybe'); return false;"> <button type="button" title="{{$item.attend.2}}" class="btn btn-default btn-sm" onclick="itemAddToCal({{$item.id}}); dolike({{$item.id}},'attendmaybe'); return false;">
<i class="icon-question" ></i> <i class="icon-question" ></i>
@ -79,10 +79,10 @@
{{if $item.canvote}} {{if $item.canvote}}
<button type="button" title="{{$item.conlabels.0}}" class="btn btn-default btn-sm" onclick="dolike({{$item.id}},'agree'); return false;"> <button type="button" title="{{$item.conlabels.0}}" class="btn btn-default btn-sm" onclick="dolike({{$item.id}},'agree'); return false;">
<i class="icon-ok-circle" ></i> <i class="icon-ok" ></i>
</button> </button>
<button type="button" title="{{$item.conlabels.1}}" class="btn btn-default btn-sm" onclick="dolike({{$item.id}},'disagree'); return false;"> <button type="button" title="{{$item.conlabels.1}}" class="btn btn-default btn-sm" onclick="dolike({{$item.id}},'disagree'); return false;">
<i class="icon-remove-circle" ></i> <i class="icon-remove" ></i>
</button> </button>
<button type="button" title="{{$item.conlabels.2}}" class="btn btn-default btn-sm" onclick="dolike({{$item.id}},'abstain'); return false;"> <button type="button" title="{{$item.conlabels.2}}" class="btn btn-default btn-sm" onclick="dolike({{$item.id}},'abstain'); return false;">
<i class="icon-question" ></i> <i class="icon-question" ></i>
@ -123,7 +123,7 @@
{{/if}} {{/if}}
{{if $item.drop.dropping}} {{if $item.drop.dropping}}
<li role="presentation" class="divider"></li> <li role="presentation" class="divider"></li>
<li role="presentation"><a role="menuitem" href="item/drop/{{$item.id}}" onclick="return confirmDelete();" title="{{$item.drop.delete}}" ><i class="icon-remove"></i> {{$item.drop.delete}}</a></li> <li role="presentation"><a role="menuitem" href="item/drop/{{$item.id}}" onclick="return confirmDelete();" title="{{$item.drop.delete}}" ><i class="icon-trash"></i> {{$item.drop.delete}}</a></li>
{{/if}} {{/if}}
</ul> </ul>
</div> </div>
@ -140,9 +140,6 @@
{{else}} {{else}}
<ul class="dropdown-menu" role="menu" aria-labelledby="wall-item-{{$verb}}-{{$item.id}}">{{foreach $response.list as $liker}}<li role="presentation">{{$liker}}</li>{{/foreach}}</ul> <ul class="dropdown-menu" role="menu" aria-labelledby="wall-item-{{$verb}}-{{$item.id}}">{{foreach $response.list as $liker}}<li role="presentation">{{$liker}}</li>{{/foreach}}</ul>
{{/if}} {{/if}}
</div>
{{/if}}
{{if $response.list_part}} {{if $response.list_part}}
<div class="modal" id="{{$verb}}Modal-{{$item.id}}"> <div class="modal" id="{{$verb}}Modal-{{$item.id}}">
<div class="modal-dialog"> <div class="modal-dialog">
@ -161,10 +158,11 @@
</div><!-- /.modal-dialog --> </div><!-- /.modal-dialog -->
</div><!-- /.modal --> </div><!-- /.modal -->
{{/if}} {{/if}}
</div>
{{/if}}
{{/foreach}} {{/foreach}}
</div> </div>
{{/if}} {{/if}}
</div> </div>
<div class="clear"></div> <div class="clear"></div>
</div> </div>

View File

@ -28,7 +28,7 @@
<a href="{{$item.profile_url}}" title="{{$item.linktitle}}" class="wall-item-name-link"><span class="wall-item-name{{$item.sparkle}}" id="wall-item-name-{{$item.id}}" >{{$item.name}}</span></a>{{if $item.owner_url}}&nbsp;{{$item.via}}&nbsp;<a href="{{$item.owner_url}}" title="{{$item.olinktitle}}" class="wall-item-name-link"><span class="wall-item-name{{$item.osparkle}}" id="wall-item-ownername-{{$item.id}}">{{$item.owner_name}}</span></a>{{/if}} <a href="{{$item.profile_url}}" title="{{$item.linktitle}}" class="wall-item-name-link"><span class="wall-item-name{{$item.sparkle}}" id="wall-item-name-{{$item.id}}" >{{$item.name}}</span></a>{{if $item.owner_url}}&nbsp;{{$item.via}}&nbsp;<a href="{{$item.owner_url}}" title="{{$item.olinktitle}}" class="wall-item-name-link"><span class="wall-item-name{{$item.osparkle}}" id="wall-item-ownername-{{$item.id}}">{{$item.owner_name}}</span></a>{{/if}}
</div> </div>
<div class="wall-item-ago" id="wall-item-ago-{{$item.id}}"> <div class="wall-item-ago" id="wall-item-ago-{{$item.id}}">
{{if $item.verified}}<i class="icon-ok item-verified" title="{{$item.verified}}"></i>&nbsp;{{elseif $item.forged}}<i class="icon-remove item-forged" title="{{$item.forged}}"></i>&nbsp;{{/if}}{{if $item.location}}<span class="wall-item-location" id="wall-item-location-{{$item.id}}">{{$item.location}},&nbsp;</span>{{/if}}<span class="autotime" title="{{$item.isotime}}">{{$item.localtime}}{{if $item.editedtime}}&nbsp;{{$item.editedtime}}{{/if}}{{if $item.expiretime}}&nbsp;{{$item.expiretime}}{{/if}}</span>{{if $item.editedtime}}&nbsp;<i class="icon-pencil"></i>{{/if}}&nbsp;{{if $item.app}}<span class="item.app">{{$item.str_app}}</span>{{/if}} {{if $item.verified}}<i class="icon-ok item-verified" title="{{$item.verified}}"></i>&nbsp;{{elseif $item.forged}}<i class="icon-exclamation item-forged" title="{{$item.forged}}"></i>&nbsp;{{/if}}{{if $item.location}}<span class="wall-item-location" id="wall-item-location-{{$item.id}}">{{$item.location}},&nbsp;</span>{{/if}}<span class="autotime" title="{{$item.isotime}}">{{$item.localtime}}{{if $item.editedtime}}&nbsp;{{$item.editedtime}}{{/if}}{{if $item.expiretime}}&nbsp;{{$item.expiretime}}{{/if}}</span>{{if $item.editedtime}}&nbsp;<i class="icon-pencil"></i>{{/if}}&nbsp;{{if $item.app}}<span class="item.app">{{$item.str_app}}</span>{{/if}}
</div> </div>
<div class="wall-item-content conv-list-mode" id="wall-item-content-{{$item.id}}"> <div class="wall-item-content conv-list-mode" id="wall-item-content-{{$item.id}}">
<div class="wall-item-title-end"></div> <div class="wall-item-title-end"></div>
@ -68,10 +68,10 @@
{{if $item.isevent}} {{if $item.isevent}}
<button type="button" title="{{$item.attend.0}}" class="btn btn-default btn-sm" onclick="itemAddToCal({{$item.id}}); dolike({{$item.id}},'attendyes'); return false;"> <button type="button" title="{{$item.attend.0}}" class="btn btn-default btn-sm" onclick="itemAddToCal({{$item.id}}); dolike({{$item.id}},'attendyes'); return false;">
<i class="icon-ok-circle" ></i> <i class="icon-ok" ></i>
</button> </button>
<button type="button" title="{{$item.attend.1}}" class="btn btn-default btn-sm" onclick="itemAddToCal({{$item.id}}); dolike({{$item.id}},'attendno'); return false;"> <button type="button" title="{{$item.attend.1}}" class="btn btn-default btn-sm" onclick="itemAddToCal({{$item.id}}); dolike({{$item.id}},'attendno'); return false;">
<i class="icon-remove-circle" ></i> <i class="icon-remove" ></i>
</button> </button>
<button type="button" title="{{$item.attend.2}}" class="btn btn-default btn-sm" onclick="itemAddToCal({{$item.id}}); dolike({{$item.id}},'attendmaybe'); return false;"> <button type="button" title="{{$item.attend.2}}" class="btn btn-default btn-sm" onclick="itemAddToCal({{$item.id}}); dolike({{$item.id}},'attendmaybe'); return false;">
<i class="icon-question" ></i> <i class="icon-question" ></i>
@ -80,10 +80,10 @@
{{if $item.canvote}} {{if $item.canvote}}
<button type="button" title="{{$item.conlabels.0}}" class="btn btn-default btn-sm" onclick="dolike({{$item.id}},'agree'); return false;"> <button type="button" title="{{$item.conlabels.0}}" class="btn btn-default btn-sm" onclick="dolike({{$item.id}},'agree'); return false;">
<i class="icon-ok-circle" ></i> <i class="icon-ok" ></i>
</button> </button>
<button type="button" title="{{$item.conlabels.1}}" class="btn btn-default btn-sm" onclick="dolike({{$item.id}},'disagree'); return false;"> <button type="button" title="{{$item.conlabels.1}}" class="btn btn-default btn-sm" onclick="dolike({{$item.id}},'disagree'); return false;">
<i class="icon-remove-circle" ></i> <i class="icon-remove" ></i>
</button> </button>
<button type="button" title="{{$item.conlabels.2}}" class="btn btn-default btn-sm" onclick="dolike({{$item.id}},'abstain'); return false;"> <button type="button" title="{{$item.conlabels.2}}" class="btn btn-default btn-sm" onclick="dolike({{$item.id}},'abstain'); return false;">
<i class="icon-question" ></i> <i class="icon-question" ></i>
@ -124,19 +124,26 @@
{{/if}} {{/if}}
{{if $item.drop.dropping}} {{if $item.drop.dropping}}
<li role="presentation" class="divider"></li> <li role="presentation" class="divider"></li>
<li role="presentation"><a role="menuitem" href="item/drop/{{$item.id}}" onclick="return confirmDelete();" title="{{$item.drop.delete}}" ><i class="icon-remove"></i> {{$item.drop.delete}}</a></li> <li role="presentation"><a role="menuitem" href="item/drop/{{$item.id}}" onclick="return confirmDelete();" title="{{$item.drop.delete}}" ><i class="icon-trash"></i> {{$item.drop.delete}}</a></li>
{{/if}} {{/if}}
</ul> </ul>
</div> </div>
<div id="like-rotator-{{$item.id}}" class="like-rotator"></div> <div id="like-rotator-{{$item.id}}" class="like-rotator"></div>
<div class="wall-item-tools-left{{if $item.unseen_comments || $item.like_count || $item.dislike_count}} btn-group{{/if}}"> <div class="wall-item-tools-left{{if $item.unseen_comments || $item.like_count || $item.dislike_count}} btn-group{{/if}}">
<div class="wall-item-list-comments btn-group">
<button class="btn btn-default btn-sm" onclick="window.location.href='{{$item.viewthread}}'; return false;">
<div class="wall-item-list-comments btn-group"><button class="btn btn-default btn-sm" onclick="window.location.href='{{$item.viewthread}}'; return false;">{{$item.comment_count_txt}}{{if $item.unseen_comments}} {{$item.comment_count_txt}}{{if $item.unseen_comments}}<span class="unseen-wall-indicator-{{$item.id}}">, {{$item.list_unseen_txt}}</span>{{/if}}
<span class="unseen-wall-indicator-{{$item.id}}">, {{$item.list_unseen_txt}}{{/if}}</span></button></div>{{if $item.unseen_comments}}<div class="unseen-wall-indicator-{{$item.id}} btn-group"><button class="btn btn-default btn-sm" title="{{$item.markseen}}" onclick="markItemRead({{$item.id}}); return false;"><i class="icon-check"></i></div>{{/if}} </button>
</div>
{{if $item.unseen_comments}}
<div class="unseen-wall-indicator-{{$item.id}} btn-group">
<button class="btn btn-default btn-sm" title="{{$item.markseen}}" onclick="markItemRead({{$item.id}}); return false;">
<i class="icon-check"></i>
</button>
</div>
{{/if}}
{{if $item.responses }} {{if $item.responses }}
<div class="wall-item-tools-left{{if $item.responses.count > 1}} btn-group{{/if}}">
{{foreach $item.responses as $verb=>$response}} {{foreach $item.responses as $verb=>$response}}
{{if $response.count}} {{if $response.count}}
<div class="btn-group"> <div class="btn-group">
@ -146,9 +153,6 @@
{{else}} {{else}}
<ul class="dropdown-menu" role="menu" aria-labelledby="wall-item-{{$verb}}-{{$item.id}}">{{foreach $response.list as $liker}}<li role="presentation">{{$liker}}</li>{{/foreach}}</ul> <ul class="dropdown-menu" role="menu" aria-labelledby="wall-item-{{$verb}}-{{$item.id}}">{{foreach $response.list as $liker}}<li role="presentation">{{$liker}}</li>{{/foreach}}</ul>
{{/if}} {{/if}}
</div>
{{/if}}
{{if $response.list_part}} {{if $response.list_part}}
<div class="modal" id="{{$verb}}Modal-{{$item.id}}"> <div class="modal" id="{{$verb}}Modal-{{$item.id}}">
<div class="modal-dialog"> <div class="modal-dialog">
@ -167,9 +171,10 @@
</div><!-- /.modal-dialog --> </div><!-- /.modal-dialog -->
</div><!-- /.modal --> </div><!-- /.modal -->
{{/if}} {{/if}}
{{/foreach}}
</div> </div>
{{/if}} {{/if}}
{{/foreach}}
{{/if}}
</div> </div>
</div> </div>
<div class="clear"></div> <div class="clear"></div>