allow to toggle visibility of likes/dislikes in notifications

This commit is contained in:
Mario Vavti 2018-04-11 11:49:33 +02:00
parent e294dfa760
commit fee258edbe
5 changed files with 21 additions and 4 deletions

View File

@ -115,6 +115,7 @@ class Enotify {
$always_show_in_notices = get_pconfig($recip['channel_id'],'system','always_show_in_notices'); $always_show_in_notices = get_pconfig($recip['channel_id'],'system','always_show_in_notices');
$vnotify = get_pconfig($recip['channel_id'],'system','vnotify');
// e.g. "your post", "David's photo", etc. // e.g. "your post", "David's photo", etc.
$possess_desc = t('%s <!item_type!>'); $possess_desc = t('%s <!item_type!>');
@ -142,7 +143,7 @@ class Enotify {
if(array_key_exists('item',$params) && in_array($params['item']['verb'], [ACTIVITY_LIKE, ACTIVITY_DISLIKE])) { if(array_key_exists('item',$params) && in_array($params['item']['verb'], [ACTIVITY_LIKE, ACTIVITY_DISLIKE])) {
if(! $always_show_in_notices) { if(! $always_show_in_notices || !($vnotify & VNOTIFY_LIKE)) {
logger('notification: not a visible activity. Ignoring.'); logger('notification: not a visible activity. Ignoring.');
pop_lang(); pop_lang();
return; return;
@ -249,7 +250,7 @@ class Enotify {
$itemlink = $params['link']; $itemlink = $params['link'];
if (array_key_exists('item',$params) && (! activity_match($params['item']['verb'],ACTIVITY_LIKE))) { if (array_key_exists('item',$params) && (! activity_match($params['item']['verb'],ACTIVITY_LIKE))) {
if(! $always_show_in_notices) { if(! $always_show_in_notices || !($vnotify & VNOTIFY_LIKE)) {
logger('notification: not a visible activity. Ignoring.'); logger('notification: not a visible activity. Ignoring.');
pop_lang(); pop_lang();
return; return;

View File

@ -140,6 +140,11 @@ class Ping extends \Zotlabs\Web\Controller {
db_utcnow(), db_quoteinterval('3 MINUTE') db_utcnow(), db_quoteinterval('3 MINUTE')
); );
$sql_extra = '';
if(! ($vnotify & VNOTIFY_LIKE))
$sql_extra = ' AND verb NOT IN ("' . dbesc(ACTIVITY_LIKE) . '", "' . dbesc(ACTIVITY_DISLIKE) . '") ';
$discover_tab_on = can_view_public_stream(); $discover_tab_on = can_view_public_stream();
$notify_pubs = ((local_channel()) ? ($vnotify & VNOTIFY_PUBS) && $discover_tab_on : $discover_tab_on); $notify_pubs = ((local_channel()) ? ($vnotify & VNOTIFY_PUBS) && $discover_tab_on : $discover_tab_on);
@ -152,7 +157,8 @@ class Ping extends \Zotlabs\Web\Controller {
AND item_unseen = 1 AND item_unseen = 1
AND author_xchan != '%s' AND author_xchan != '%s'
AND created > '" . datetime_convert('UTC','UTC',$_SESSION['static_loadtime']) . "' AND created > '" . datetime_convert('UTC','UTC',$_SESSION['static_loadtime']) . "'
$item_normal", $item_normal
$sql_extra",
intval($sys['channel_id']), intval($sys['channel_id']),
dbesc(get_observer_hash()) dbesc(get_observer_hash())
); );
@ -161,6 +167,8 @@ class Ping extends \Zotlabs\Web\Controller {
$result['pubs'] = intval($pubs[0]['total']); $result['pubs'] = intval($pubs[0]['total']);
} }
if((argc() > 1) && (argv(1) === 'pubs') && ($notify_pubs)) { if((argc() > 1) && (argv(1) === 'pubs') && ($notify_pubs)) {
$sys = get_sys_channel(); $sys = get_sys_channel();
$result = array(); $result = array();
@ -171,6 +179,7 @@ class Ping extends \Zotlabs\Web\Controller {
AND author_xchan != '%s' AND author_xchan != '%s'
AND created > '" . datetime_convert('UTC','UTC',$_SESSION['static_loadtime']) . "' AND created > '" . datetime_convert('UTC','UTC',$_SESSION['static_loadtime']) . "'
$item_normal $item_normal
$sql_extra
ORDER BY created DESC ORDER BY created DESC
LIMIT 300", LIMIT 300",
intval($sys['channel_id']), intval($sys['channel_id']),
@ -335,6 +344,7 @@ class Ping extends \Zotlabs\Web\Controller {
AND item_unseen = 1 AND item_unseen = 1
AND author_xchan != '%s' AND author_xchan != '%s'
$item_normal $item_normal
$sql_extra
ORDER BY created DESC ORDER BY created DESC
LIMIT 300", LIMIT 300",
intval(local_channel()), intval(local_channel()),
@ -509,6 +519,7 @@ class Ping extends \Zotlabs\Web\Controller {
$r = q("SELECT id, item_wall FROM item $r = q("SELECT id, item_wall FROM item
WHERE uid = %d and item_unseen = 1 WHERE uid = %d and item_unseen = 1
$item_normal $item_normal
$sql_extra
AND author_xchan != '%s'", AND author_xchan != '%s'",
intval(local_channel()), intval(local_channel()),
dbesc($ob_hash) dbesc($ob_hash)

View File

@ -208,6 +208,8 @@ class Channel {
$vnotify += intval($_POST['vnotify12']); $vnotify += intval($_POST['vnotify12']);
if(x($_POST,'vnotify13')) if(x($_POST,'vnotify13'))
$vnotify += intval($_POST['vnotify13']); $vnotify += intval($_POST['vnotify13']);
if(x($_POST,'vnotify14'))
$vnotify += intval($_POST['vnotify14']);
$always_show_in_notices = x($_POST,'always_show_in_notices') ? 1 : 0; $always_show_in_notices = x($_POST,'always_show_in_notices') ? 1 : 0;
@ -577,8 +579,9 @@ class Channel {
'$vnotify11' => ((is_site_admin()) ? array('vnotify11', t('System Registrations'), ($vnotify & VNOTIFY_REGISTER), VNOTIFY_REGISTER, '', $yes_no) : array()), '$vnotify11' => ((is_site_admin()) ? array('vnotify11', t('System Registrations'), ($vnotify & VNOTIFY_REGISTER), VNOTIFY_REGISTER, '', $yes_no) : array()),
'$vnotify12' => array('vnotify12', t('Unseen shared files'), ($vnotify & VNOTIFY_FILES), VNOTIFY_FILES, '', $yes_no), '$vnotify12' => array('vnotify12', t('Unseen shared files'), ($vnotify & VNOTIFY_FILES), VNOTIFY_FILES, '', $yes_no),
'$vnotify13' => (($disable_discover_tab && !$site_firehose) ? array() : array('vnotify13', t('Unseen public activity'), ($vnotify & VNOTIFY_PUBS), VNOTIFY_PUBS, '', $yes_no)), '$vnotify13' => (($disable_discover_tab && !$site_firehose) ? array() : array('vnotify13', t('Unseen public activity'), ($vnotify & VNOTIFY_PUBS), VNOTIFY_PUBS, '', $yes_no)),
'$vnotify14' => array('vnotify14', t('Unseen likes and dislikes'), ($vnotify & VNOTIFY_LIKE), VNOTIFY_LIKE, '', $yes_no),
'$mailhost' => [ 'mailhost', t('Email notification hub (hostname)'), get_pconfig(local_channel(),'system','email_notify_host',\App::get_hostname()), sprintf( t('If your channel is mirrored to multiple hubs, set this to your preferred location. This will prevent duplicate email notifications. Example: %s'),\App::get_hostname()) ], '$mailhost' => [ 'mailhost', t('Email notification hub (hostname)'), get_pconfig(local_channel(),'system','email_notify_host',\App::get_hostname()), sprintf( t('If your channel is mirrored to multiple hubs, set this to your preferred location. This will prevent duplicate email notifications. Example: %s'),\App::get_hostname()) ],
'$always_show_in_notices' => array('always_show_in_notices', t('Also show new wall posts, private messages and connections under Notices'), $always_show_in_notices, 1, '', $yes_no), '$always_show_in_notices' => array('always_show_in_notices', t('Show new wall posts, private messages and connections under Notices'), $always_show_in_notices, 1, '', $yes_no),
'$evdays' => array('evdays', t('Notify me of events this many days in advance'), $evdays, t('Must be greater than 0')), '$evdays' => array('evdays', t('Notify me of events this many days in advance'), $evdays, t('Must be greater than 0')),
'$basic_addon' => $plugin['basic'], '$basic_addon' => $plugin['basic'],

View File

@ -404,6 +404,7 @@ define ( 'VNOTIFY_INTRO', 0x0200 );
define ( 'VNOTIFY_REGISTER', 0x0400 ); define ( 'VNOTIFY_REGISTER', 0x0400 );
define ( 'VNOTIFY_FILES', 0x0800 ); define ( 'VNOTIFY_FILES', 0x0800 );
define ( 'VNOTIFY_PUBS', 0x1000 ); define ( 'VNOTIFY_PUBS', 0x1000 );
define ( 'VNOTIFY_LIKE', 0x2000 );

View File

@ -145,6 +145,7 @@
{{if $vnotify13}} {{if $vnotify13}}
{{include file="field_intcheckbox.tpl" field=$vnotify13}} {{include file="field_intcheckbox.tpl" field=$vnotify13}}
{{/if}} {{/if}}
{{include file="field_intcheckbox.tpl" field=$vnotify14}}
{{include file="field_intcheckbox.tpl" field=$always_show_in_notices}} {{include file="field_intcheckbox.tpl" field=$always_show_in_notices}}
{{include file="field_input.tpl" field=$evdays}} {{include file="field_input.tpl" field=$evdays}}
</div> </div>