From cbaaa1c57ffed0b0a11a7d4cf9a492c26e577194 Mon Sep 17 00:00:00 2001 From: Mario Vavti Date: Thu, 31 May 2018 13:05:32 +0200 Subject: merge groups and filed posts into activity filters --- Zotlabs/Module/Channel.php | 2 +- Zotlabs/Module/Network.php | 4 +- Zotlabs/Widget/Activity_filter.php | 80 ++++++++++++++++++++++++++++---------- Zotlabs/Widget/Activity_order.php | 5 ++- view/pdl/mod_network.pdl | 2 - view/theme/redbasic/js/redbasic.js | 5 +++ 6 files changed, 72 insertions(+), 26 deletions(-) diff --git a/Zotlabs/Module/Channel.php b/Zotlabs/Module/Channel.php index c2e464470..6969b6226 100644 --- a/Zotlabs/Module/Channel.php +++ b/Zotlabs/Module/Channel.php @@ -18,7 +18,7 @@ class Channel extends \Zotlabs\Web\Controller { function init() { - if(strpos($_GET['search'], '@') === 0 || strpos($_GET['search'], '!') === 0 || strpos($_GET['search'], '?') === 0) + if(in_array(substr($_GET['search'],0,1),[ '@', '!', '?'])) goaway('search' . '?f=&search=' . $_GET['search']); $which = null; diff --git a/Zotlabs/Module/Network.php b/Zotlabs/Module/Network.php index 0d4deb736..8a381d678 100644 --- a/Zotlabs/Module/Network.php +++ b/Zotlabs/Module/Network.php @@ -16,7 +16,7 @@ class Network extends \Zotlabs\Web\Controller { return; } - if(strpos($_GET['search'], '@') === 0 || strpos($_GET['search'], '!') === 0 || strpos($_GET['search'], '?') === 0) + if(in_array(substr($_GET['search'],0,1),[ '@', '!', '?'])) goaway('search' . '?f=&search=' . $_GET['search']); if(count($_GET) < 2) { @@ -389,7 +389,7 @@ class Network extends \Zotlabs\Web\Controller { if($conv) { $item_thread_top = ''; - $sql_extra .= sprintf(" AND parent IN (SELECT distinct(parent) from item where ( author_xchan like '%s' or item_mentionsme = 1 )) ", + $sql_extra .= sprintf(" AND parent IN (SELECT distinct(parent) from item where ( author_xchan = '%s' or item_mentionsme = 1 )) ", dbesc(protect_sprintf($channel['channel_hash'])) ); } diff --git a/Zotlabs/Widget/Activity_filter.php b/Zotlabs/Widget/Activity_filter.php index a60144239..e56d13fc1 100644 --- a/Zotlabs/Widget/Activity_filter.php +++ b/Zotlabs/Widget/Activity_filter.php @@ -9,42 +9,82 @@ class Activity_filter { if(! local_channel()) return ''; - $starred_active = ''; - $conv_active = ''; - - if(x($_GET,'star')) { - $starred_active = 'active'; - } - - if(x($_GET,'conv')) { - $conv_active = 'active'; - } - $cmd = \App::$cmd; - // tabs $tabs = []; if(feature_enabled(local_channel(),'personal_tab')) { - $tabs[] = array( + if(x($_GET,'conv')) { + $conv_active = (($_GET['conv'] == 1) ? 'active' : ''); + } + + $tabs[] = [ 'label' => t('Personal Posts'), 'icon' => 'user-circle', - 'url' => z_root() . '/' . $cmd . '?f=' . ((x($_GET,'order')) ? '&order=' . $_GET['order'] : '') . '&conv=1', + 'url' => z_root() . '/' . $cmd . '/?f=&conv=1', 'sel' => $conv_active, - 'title' => t('Posts that mention or involve you'), - ); + 'title' => t('Show posts that mention or involve me'), + ]; } if(feature_enabled(local_channel(),'star_posts')) { - $tabs[] = array( + if(x($_GET,'star')) { + $starred_active = (($_GET['star'] == 1) ? 'active' : ''); + } + + $tabs[] = [ 'label' => t('Starred Posts'), 'icon' => 'star', - 'url'=>z_root() . '/' . $cmd . '/?f=' . ((x($_GET,'order')) ? '&order=' . $_GET['order'] : '') . '&star=1', + 'url'=>z_root() . '/' . $cmd . '/?f=&star=1', 'sel'=>$starred_active, - 'title' => t('Favourite Posts'), + 'title' => t('Show posts that i have starred'), + ]; + } + + if(feature_enabled(local_channel(),'groups')) { + $groups = q("SELECT * FROM groups WHERE deleted = 0 AND uid = %d ORDER BY gname ASC", + intval(local_channel()) ); + + if($groups) { + foreach($groups as $g) { + if(x($_GET,'gid')) { + $group_active = (($_GET['gid'] == $g['id']) ? 'active' : ''); + } + + $tabs[] = [ + 'label' => $g['gname'], + 'icon' => 'users', + 'url' => z_root() . '/' . $cmd . '/?f=&gid=' . $g['id'], + 'sel' => $group_active, + 'title' => sprintf(t('Show posts related to the %s privacy group'), $g['gname']), + ]; + } + } } + if(feature_enabled(local_channel(),'filing')) { + $terms = q("select distinct term from term where uid = %d and ttype = %d order by term asc", + intval(local_channel()), + intval(TERM_FILE) + ); + + if($terms) { + foreach($terms as $t) { + if(x($_GET,'file')) { + $file_active = (($_GET['file'] == $t['term']) ? 'active' : ''); + } + + $tabs[] = [ + 'label' => $t['term'], + 'icon' => 'folder', + 'url' => z_root() . '/' . $cmd . '/?f=&file=' . $t['term'], + 'sel' => $file_active, + 'title' => sprintf(t('Show posts that i have filed to %s'), $t['term']), + ]; + } + } + } $arr = ['tabs' => $tabs]; @@ -54,7 +94,7 @@ class Activity_filter { if($arr['tabs']) { return replace_macros($tpl, [ - '$title' => t('Additional Filters'), + '$title' => t('Activity Filters'), '$tabs' => $arr['tabs'], ]); } diff --git a/Zotlabs/Widget/Activity_order.php b/Zotlabs/Widget/Activity_order.php index edeef2c20..c973e3809 100644 --- a/Zotlabs/Widget/Activity_order.php +++ b/Zotlabs/Widget/Activity_order.php @@ -56,7 +56,7 @@ class Activity_order { // override order for search results and filer results if(x($_GET,'search') || x($_GET,'file')) { $unthreaded_active = 'active'; - $commentord_active = $postord_active = ''; + $commentord_active = $postord_active = 'disabled'; } $cmd = \App::$cmd; @@ -75,6 +75,9 @@ class Activity_order { if(x($_GET,'conv')) $filter .= '&conv=' . $_GET['conv']; + if(x($_GET,'file')) + $filter .= '&file=' . $_GET['file']; + // tabs $tabs = []; diff --git a/view/pdl/mod_network.pdl b/view/pdl/mod_network.pdl index f93a6c66d..d26422093 100644 --- a/view/pdl/mod_network.pdl +++ b/view/pdl/mod_network.pdl @@ -1,11 +1,9 @@ [region=aside] [widget=activity_order][/widget] -[widget=collections][/widget] [widget=activity_filter][/widget] [widget=forums][/widget] [widget=suggestions][/widget] [widget=savedsearch][/widget] -[widget=filer][/widget] [widget=notes][/widget] [/region] diff --git a/view/theme/redbasic/js/redbasic.js b/view/theme/redbasic/js/redbasic.js index 41f5eb7ce..c905c92cb 100644 --- a/view/theme/redbasic/js/redbasic.js +++ b/view/theme/redbasic/js/redbasic.js @@ -89,6 +89,11 @@ $(document).ready(function() { tagClass: 'badge badge-pill badge-warning text-dark' }); + $('a.disabled').click(function(e) { + e.preventDefault(); + e.stopPropagation(); + }); + var doctitle = document.title; function checkNotify() { var notifyUpdateElem = document.getElementById('notify-update'); -- cgit v1.2.3