mirror of
https://codeberg.org/streams/streams.git
synced 2024-09-20 00:15:51 +00:00
more progress on event confirmations
This commit is contained in:
parent
c694945245
commit
81e7b47b76
5 changed files with 76 additions and 14 deletions
3
boot.php
3
boot.php
|
@ -485,6 +485,9 @@ define ( 'ACTIVITY_DISLIKE', NAMESPACE_ZOT . '/activity/dislike' );
|
||||||
define ( 'ACTIVITY_AGREE', NAMESPACE_ZOT . '/activity/agree' );
|
define ( 'ACTIVITY_AGREE', NAMESPACE_ZOT . '/activity/agree' );
|
||||||
define ( 'ACTIVITY_DISAGREE', NAMESPACE_ZOT . '/activity/disagree' );
|
define ( 'ACTIVITY_DISAGREE', NAMESPACE_ZOT . '/activity/disagree' );
|
||||||
define ( 'ACTIVITY_ABSTAIN', NAMESPACE_ZOT . '/activity/abstain' );
|
define ( 'ACTIVITY_ABSTAIN', NAMESPACE_ZOT . '/activity/abstain' );
|
||||||
|
define ( 'ACTIVITY_ATTEND', NAMESPACE_ZOT . '/activity/attendyes' );
|
||||||
|
define ( 'ACTIVITY_ATTENDNO', NAMESPACE_ZOT . '/activity/attendno' );
|
||||||
|
define ( 'ACTIVITY_ATTENDMAYBE', NAMESPACE_ZOT . '/activity/attendmaybe' );
|
||||||
|
|
||||||
define ( 'ACTIVITY_OBJ_HEART', NAMESPACE_ZOT . '/activity/heart' );
|
define ( 'ACTIVITY_OBJ_HEART', NAMESPACE_ZOT . '/activity/heart' );
|
||||||
|
|
||||||
|
|
|
@ -134,16 +134,19 @@ class Item extends BaseObject {
|
||||||
$profile_name = $item['author']['xchan_name'];
|
$profile_name = $item['author']['xchan_name'];
|
||||||
|
|
||||||
$location = format_location($item);
|
$location = format_location($item);
|
||||||
|
$isevent = false;
|
||||||
|
$attend = null;
|
||||||
|
|
||||||
// process action responses - e.g. like/dislike/attend/agree/whatever
|
// process action responses - e.g. like/dislike/attend/agree/whatever
|
||||||
$response_verbs = array('like');
|
$response_verbs = array('like');
|
||||||
if(feature_enabled($conv->get_profile_owner(),'dislike'))
|
if(feature_enabled($conv->get_profile_owner(),'dislike'))
|
||||||
$response_verbs[] = 'dislike';
|
$response_verbs[] = 'dislike';
|
||||||
if($item['resource_type'] === 'event') {
|
if($item['obj_type'] === ACTIVITY_OBJ_EVENT) {
|
||||||
$response_verbs[] = 'attendyes';
|
$response_verbs[] = 'attendyes';
|
||||||
$response_verbs[] = 'attendno';
|
$response_verbs[] = 'attendno';
|
||||||
$response_verbs[] = 'attendmaybe';
|
$response_verbs[] = 'attendmaybe';
|
||||||
|
$isevent = true;
|
||||||
|
$attend = array( t('I will attend'), t('I will not attend'), t('I might attend'));
|
||||||
}
|
}
|
||||||
$consensus = (($item['item_flags'] & ITEM_CONSENSUS)? true : false);
|
$consensus = (($item['item_flags'] & ITEM_CONSENSUS)? true : false);
|
||||||
if($consensus) {
|
if($consensus) {
|
||||||
|
@ -275,6 +278,8 @@ class Item extends BaseObject {
|
||||||
'body' => $body,
|
'body' => $body,
|
||||||
'text' => strip_tags($body),
|
'text' => strip_tags($body),
|
||||||
'id' => $this->get_id(),
|
'id' => $this->get_id(),
|
||||||
|
'isevent' => $isevent,
|
||||||
|
'attend' => $attend,
|
||||||
'linktitle' => sprintf( t('View %s\'s profile - %s'), $profile_name, $item['author']['xchan_addr']),
|
'linktitle' => sprintf( t('View %s\'s profile - %s'), $profile_name, $item['author']['xchan_addr']),
|
||||||
'olinktitle' => sprintf( t('View %s\'s profile - %s'), $this->get_owner_name(), $item['owner']['xchan_addr']),
|
'olinktitle' => sprintf( t('View %s\'s profile - %s'), $this->get_owner_name(), $item['owner']['xchan_addr']),
|
||||||
'llink' => $item['llink'],
|
'llink' => $item['llink'],
|
||||||
|
|
|
@ -402,7 +402,7 @@ function visible_activity($item) {
|
||||||
// likes (etc.) can apply to other things besides posts. Check if they are post children,
|
// likes (etc.) can apply to other things besides posts. Check if they are post children,
|
||||||
// in which case we handle them specially
|
// in which case we handle them specially
|
||||||
|
|
||||||
$hidden_activities = array(ACTIVITY_LIKE, ACTIVITY_DISLIKE, ACTIVITY_AGREE, ACTIVITY_DISAGREE, ACTIVITY_ABSTAIN);
|
$hidden_activities = array(ACTIVITY_LIKE, ACTIVITY_DISLIKE, ACTIVITY_AGREE, ACTIVITY_DISAGREE, ACTIVITY_ABSTAIN, ACTIVITY_ATTEND, ACTIVITY_ATTENDNO, ACTIVITY_ATTENDMAYBE);
|
||||||
foreach($hidden_activities as $act) {
|
foreach($hidden_activities as $act) {
|
||||||
if((activity_match($item['verb'],$act)) && ($item['mid'] != $item['parent_mid'])) {
|
if((activity_match($item['verb'],$act)) && ($item['mid'] != $item['parent_mid'])) {
|
||||||
return false;
|
return false;
|
||||||
|
@ -552,7 +552,7 @@ function conversation(&$a, $items, $mode, $update, $page_mode = 'traditional', $
|
||||||
|
|
||||||
$items = $cb['items'];
|
$items = $cb['items'];
|
||||||
|
|
||||||
$conv_responses = array(array('like'),array('dislike'),array('agree'),array('disagree'),array('abstain'));
|
$conv_responses = array(array('like'),array('dislike'),array('agree'),array('disagree'),array('abstain'),array('attendyes'),array('attendno'),array('attendmaybe'));
|
||||||
|
|
||||||
// array with html for each thread (parent+comments)
|
// array with html for each thread (parent+comments)
|
||||||
$threads = array();
|
$threads = array();
|
||||||
|
@ -784,10 +784,20 @@ function conversation(&$a, $items, $mode, $update, $page_mode = 'traditional', $
|
||||||
if(feature_enabled($profile_owner, 'dislike'))
|
if(feature_enabled($profile_owner, 'dislike'))
|
||||||
like_puller($a, $item, $conv_responses, 'dislike');
|
like_puller($a, $item, $conv_responses, 'dislike');
|
||||||
|
|
||||||
|
if($item['obj_type'] === ACTIVITY_OBJ_EVENT) {
|
||||||
|
like_puller($a, $item, $conv_responses, 'attendyes');
|
||||||
|
like_puller($a, $item, $conv_responses, 'attendno');
|
||||||
|
like_puller($a, $item, $conv_responses, 'attendmaybe');
|
||||||
|
|
||||||
|
logger('responses: ' . print_r($conv_responses,true));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
like_puller($a, $item, $conv_responses, 'agree');
|
like_puller($a, $item, $conv_responses, 'agree');
|
||||||
like_puller($a, $item, $conv_responses, 'disagree');
|
like_puller($a, $item, $conv_responses, 'disagree');
|
||||||
like_puller($a, $item, $conv_responses, 'abstain');
|
like_puller($a, $item, $conv_responses, 'abstain');
|
||||||
|
|
||||||
|
|
||||||
if(! visible_activity($item)) {
|
if(! visible_activity($item)) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
@ -998,13 +1008,28 @@ function like_puller($a, $item, &$arr, $mode) {
|
||||||
case 'unabstain':
|
case 'unabstain':
|
||||||
$verb = ACTIVITY_ABSTAIN;
|
$verb = ACTIVITY_ABSTAIN;
|
||||||
break;
|
break;
|
||||||
|
case 'attendyes':
|
||||||
|
case 'unattendyes':
|
||||||
|
$verb = ACTIVITY_ATTEND;
|
||||||
|
break;
|
||||||
|
case 'attendno':
|
||||||
|
case 'unattendno':
|
||||||
|
$verb = ACTIVITY_ATTENDNO;
|
||||||
|
break;
|
||||||
|
case 'attendmaybe':
|
||||||
|
case 'unattendmaybe':
|
||||||
|
$verb = ACTIVITY_ATTENDMAYBE;
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
return;
|
return;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
logger('verb: ' . $verb);
|
||||||
|
if($verb === ACTIVITY_ATTENDNO)
|
||||||
|
logger('item: ' . $item['verb']);
|
||||||
|
|
||||||
if((activity_match($item['verb'], $verb)) && ($item['id'] != $item['parent'])) {
|
if((activity_match($item['verb'], $verb)) && ($item['id'] != $item['parent'])) {
|
||||||
|
logger('match:' . $verb);
|
||||||
if($item['author']['xchan_url'])
|
if($item['author']['xchan_url'])
|
||||||
$url = chanlink_url($item['author']['xchan_url']);
|
$url = chanlink_url($item['author']['xchan_url']);
|
||||||
|
|
||||||
|
|
22
mod/like.php
22
mod/like.php
|
@ -49,6 +49,18 @@ function like_content(&$a) {
|
||||||
case 'unabstain':
|
case 'unabstain':
|
||||||
$activity = ACTIVITY_ABSTAIN;
|
$activity = ACTIVITY_ABSTAIN;
|
||||||
break;
|
break;
|
||||||
|
case 'attendyes':
|
||||||
|
case 'unattendyes':
|
||||||
|
$activity = ACTIVITY_ATTEND;
|
||||||
|
break;
|
||||||
|
case 'attendno':
|
||||||
|
case 'unattendno':
|
||||||
|
$activity = ACTIVITY_ATTENDNO;
|
||||||
|
break;
|
||||||
|
case 'attendmaybe':
|
||||||
|
case 'unattendmaybe':
|
||||||
|
$activity = ACTIVITY_ATTENDMAYBE;
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
return;
|
return;
|
||||||
break;
|
break;
|
||||||
|
@ -300,6 +312,8 @@ function like_content(&$a) {
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
$post_type = (($item['resource_type'] === 'photo') ? t('photo') : t('status'));
|
$post_type = (($item['resource_type'] === 'photo') ? t('photo') : t('status'));
|
||||||
|
if($item['resource_type'] === 'event')
|
||||||
|
$post_type = t('event');
|
||||||
|
|
||||||
$links = array(array('rel' => 'alternate','type' => 'text/html', 'href' => $item['plink']));
|
$links = array(array('rel' => 'alternate','type' => 'text/html', 'href' => $item['plink']));
|
||||||
$objtype = (($item['resource_type'] === 'photo') ? ACTIVITY_OBJ_PHOTO : ACTIVITY_OBJ_NOTE );
|
$objtype = (($item['resource_type'] === 'photo') ? ACTIVITY_OBJ_PHOTO : ACTIVITY_OBJ_NOTE );
|
||||||
|
@ -354,8 +368,12 @@ function like_content(&$a) {
|
||||||
$bodyverb = t('%1$s doesn\'t agree with %2$s\'s %3$s');
|
$bodyverb = t('%1$s doesn\'t agree with %2$s\'s %3$s');
|
||||||
if($verb === 'abstain')
|
if($verb === 'abstain')
|
||||||
$bodyverb = t('%1$s abstains from a decision on %2$s\'s %3$s');
|
$bodyverb = t('%1$s abstains from a decision on %2$s\'s %3$s');
|
||||||
|
if($verb === 'attendyes')
|
||||||
|
$bodyverb = t('%1$s is attending %2$s\'s %3$s');
|
||||||
|
if($verb === 'attendno')
|
||||||
|
$bodyverb = t('%1$s is not attending %2$s\'s %3$s');
|
||||||
|
if($verb === 'attendmaybe')
|
||||||
|
$bodyverb = t('%1$s may attend %2$s\'s %3$s');
|
||||||
|
|
||||||
if(! isset($bodyverb))
|
if(! isset($bodyverb))
|
||||||
killme();
|
killme();
|
||||||
|
|
|
@ -56,13 +56,24 @@
|
||||||
<div class="wall-item-tools">
|
<div class="wall-item-tools">
|
||||||
<div class="wall-item-tools-right btn-group pull-right">
|
<div class="wall-item-tools-right btn-group pull-right">
|
||||||
{{if $item.like}}
|
{{if $item.like}}
|
||||||
<button type="button" class="btn btn-default btn-sm" onclick="dolike({{$item.id}},'like'); return false">
|
<button type="button" title="{{$item.like.0}}" class="btn btn-default btn-sm" onclick="dolike({{$item.id}},'like'); return false">
|
||||||
<i class="icon-thumbs-up-alt" title="{{$item.like.0}}"></i>
|
<i class="icon-thumbs-up-alt" ></i>
|
||||||
</button>
|
</button>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
{{if $item.dislike}}
|
{{if $item.dislike}}
|
||||||
<button type="button" class="btn btn-default btn-sm" onclick="dolike({{$item.id}},'dislike'); return false">
|
<button type="button" title="{{$item.dislike.0}}" class="btn btn-default btn-sm" onclick="dolike({{$item.id}},'dislike'); return false">
|
||||||
<i class="icon-thumbs-down-alt" title="{{$item.dislike.0}}"></i>
|
<i class="icon-thumbs-down-alt" ></i>
|
||||||
|
</button>
|
||||||
|
{{/if}}
|
||||||
|
{{if $item.isevent}}
|
||||||
|
<button type="button" title="{{$item.attend.0}}" class="btn btn-default btn-sm" onclick="dolike({{$item.id}},'attendyes'); return false;">
|
||||||
|
<i class="icon-plus" ></i>
|
||||||
|
</button>
|
||||||
|
<button type="button" title="{{$item.attend.1}}" class="btn btn-default btn-sm" onclick="dolike({{$item.id}},'attendno'); return false;">
|
||||||
|
<i class="icon-minus" ></i>
|
||||||
|
</button>
|
||||||
|
<button type="button" title="{{$item.attend.2}}" class="btn btn-default btn-sm" onclick="dolike({{$item.id}},'attendmaybe'); return false;">
|
||||||
|
<i class="icon-question" ></i>
|
||||||
</button>
|
</button>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
<button type="button" class="btn btn-default btn-sm dropdown-toggle" data-toggle="dropdown" id="wall-item-menu-{{$item.id}}">
|
<button type="button" class="btn btn-default btn-sm dropdown-toggle" data-toggle="dropdown" id="wall-item-menu-{{$item.id}}">
|
||||||
|
@ -138,12 +149,12 @@
|
||||||
</div><!-- /.modal -->
|
</div><!-- /.modal -->
|
||||||
{{/if}}
|
{{/if}}
|
||||||
{{/foreach}}
|
{{/foreach}}
|
||||||
</div>
|
</div>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div class="clear"></div>
|
<div class="clear"></div>
|
||||||
|
</div>
|
||||||
<div class="wall-item-wrapper-end"></div>
|
<div class="wall-item-wrapper-end"></div>
|
||||||
<div class="wall-item-outside-wrapper-end {{$item.indent}}" ></div>
|
<div class="wall-item-outside-wrapper-end {{$item.indent}}" ></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
Loading…
Reference in a new issue