diff options
-rw-r--r-- | Zotlabs/Module/Connections.php | 21 | ||||
-rw-r--r-- | Zotlabs/Module/Settings/Connections.php | 51 | ||||
-rw-r--r-- | Zotlabs/Module/Settings/Network.php | 14 | ||||
-rw-r--r-- | app/connections.apd | 4 | ||||
-rw-r--r-- | include/features.php | 17 | ||||
-rw-r--r-- | include/nav.php | 11 | ||||
-rwxr-xr-x | view/tpl/navbar_default.tpl | 8 | ||||
-rw-r--r-- | view/tpl/settings_addon.tpl | 13 |
8 files changed, 113 insertions, 26 deletions
diff --git a/Zotlabs/Module/Connections.php b/Zotlabs/Module/Connections.php index cecada769..0e5f1dfe2 100644 --- a/Zotlabs/Module/Connections.php +++ b/Zotlabs/Module/Connections.php @@ -1,6 +1,7 @@ <?php namespace Zotlabs\Module; +use App; require_once('include/socgraph.php'); require_once('include/selectors.php'); @@ -12,8 +13,10 @@ class Connections extends \Zotlabs\Web\Controller { if(! local_channel()) return; + + App::$profile_uid = local_channel(); - $channel = \App::get_channel(); + $channel = App::get_channel(); if($channel) head_set_icon($channel['xchan_photo_s']); @@ -43,7 +46,7 @@ class Connections extends \Zotlabs\Web\Controller { $all = false; if(! $_REQUEST['aj']) - $_SESSION['return_url'] = \App::$query_string; + $_SESSION['return_url'] = App::$query_string; $search_flags = ""; $head = ''; @@ -88,14 +91,14 @@ class Connections extends \Zotlabs\Web\Controller { $search_flags = " and abook_pending = 1 "; $head = t('New'); $pending = true; - \App::$argv[1] = 'pending'; + App::$argv[1] = 'pending'; } else { $head = t('All'); $search_flags = ''; $all = true; - \App::$argc = 1; - unset(\App::$argv[1]); + App::$argc = 1; + unset(App::$argv[1]); } break; // case 'unconnected': @@ -225,15 +228,15 @@ class Connections extends \Zotlabs\Web\Controller { intval(local_channel()) ); if($r) { - \App::set_pager_total($r[0]['total']); + App::set_pager_total($r[0]['total']); $total = $r[0]['total']; } $r = q("SELECT abook.*, xchan.* FROM abook left join xchan on abook.abook_xchan = xchan.xchan_hash WHERE abook_channel = %d and abook_self = 0 and xchan_deleted = 0 and xchan_orphan = 0 $sql_extra $sql_extra2 ORDER BY xchan_name LIMIT %d OFFSET %d ", intval(local_channel()), - intval(\App::$pager['itemspage']), - intval(\App::$pager['start']) + intval(App::$pager['itemspage']), + intval(App::$pager['start']) ); $contacts = array(); @@ -337,7 +340,7 @@ class Connections extends \Zotlabs\Web\Controller { '$finding' => (($searching) ? t('Connections search') . ": '" . $search . "'" : ""), '$submit' => t('Find'), '$edit' => t('Edit'), - '$cmd' => \App::$cmd, + '$cmd' => App::$cmd, '$contacts' => $contacts, '$paginate' => paginate($a), diff --git a/Zotlabs/Module/Settings/Connections.php b/Zotlabs/Module/Settings/Connections.php new file mode 100644 index 000000000..361d86ccb --- /dev/null +++ b/Zotlabs/Module/Settings/Connections.php @@ -0,0 +1,51 @@ +<?php + +namespace Zotlabs\Module\Settings; + + +class Connections { + + function post() { + check_form_security_token_redirectOnErr('/settings/connections', 'settings_connections'); + + $features = self::get_features(); + + process_features_post(local_channel(), $features, $_POST); + + build_sync_packet(); + return; + } + + function get() { + + $features = self::get_features(); + + $tpl = get_markup_template("settings_module.tpl"); + + $o .= replace_macros($tpl, array( + '$action_url' => 'settings/connections', + '$form_security_token' => get_form_security_token("settings_connections"), + '$title' => t('Connections Settings'), + '$features' => process_features_get(local_channel(), $features), + '$submit' => t('Submit') + )); + + return $o; + } + + function get_features() { + $arr = [ + [ + 'connfilter', + t('Connection Filtering'), + t('Filter incoming posts from connections based on keywords/content'), + false, + get_config('feature_lock','connfilter') + ] + ]; + + return $arr; + + } + +} diff --git a/Zotlabs/Module/Settings/Network.php b/Zotlabs/Module/Settings/Network.php index 4e2e3915e..eaf11f3da 100644 --- a/Zotlabs/Module/Settings/Network.php +++ b/Zotlabs/Module/Settings/Network.php @@ -10,13 +10,7 @@ class Network { $features = self::get_features(); - foreach($features as $f) { - $k = $f[0]; - if(array_key_exists("feature_$k",$_POST)) - set_pconfig(local_channel(),'feature',$k, (string) $_POST["feature_$k"]); - else - set_pconfig(local_channel(),'feature', $k, ''); - } + process_features_post(local_channel(), $features, $_POST); build_sync_packet(); return; @@ -26,17 +20,13 @@ class Network { $features = self::get_features(); - foreach($features as $f) { - $arr[] = array('feature_' . $f[0],$f[1],((intval(feature_enabled(local_channel(),$f[0]))) ? "1" : ''),$f[2],array(t('Off'),t('On'))); - } - $tpl = get_markup_template("settings_module.tpl"); $o .= replace_macros($tpl, array( '$action_url' => 'settings/network', '$form_security_token' => get_form_security_token("settings_network"), '$title' => t('Activity Settings'), - '$features' => $arr, + '$features' => process_features_get(local_channel(), $features), '$submit' => t('Submit') )); diff --git a/app/connections.apd b/app/connections.apd index 631f093a8..6ab5977af 100644 --- a/app/connections.apd +++ b/app/connections.apd @@ -1,5 +1,5 @@ -version: 1 -url: $baseurl/connections +version: 1.1 +url: $baseurl/connections, $baseurl/settings/connections requires: local_channel name: Connections photo: icon:users diff --git a/include/features.php b/include/features.php index 5479be122..c3ef54945 100644 --- a/include/features.php +++ b/include/features.php @@ -44,6 +44,23 @@ function feature_level($feature,$def) { return $def; } +function process_features_get($uid, $features) { + foreach($features as $f) { + $arr[] = array('feature_' . $f[0],$f[1],((intval(feature_enabled($uid, $f[0]))) ? "1" : ''),$f[2],array(t('Off'),t('On'))); + } + return $arr; +} + +function process_features_post($uid, $features, $post_arr) { + foreach($features as $f) { + $k = $f[0]; + if(array_key_exists("feature_$k",$post_arr)) + set_pconfig($uid,'feature',$k, (string) $post_arr["feature_$k"]); + else + set_pconfig($uid,'feature', $k, ''); + } +} + function get_features($filtered = true, $level = (-1)) { $account = \App::get_account(); diff --git a/include/nav.php b/include/nav.php index f8d6f2438..5a2096e02 100644 --- a/include/nav.php +++ b/include/nav.php @@ -199,17 +199,21 @@ function nav($template = 'default') { // turned off until somebody discovers this and figures out a good location for it. $powered_by = ''; + $url = ''; + $settings_url = ''; + if(App::$profile_uid && App::$nav_sel['raw_name']) { $active_app = q("SELECT app_url FROM app WHERE app_channel = %d AND app_name = '%s' LIMIT 1", intval(App::$profile_uid), dbesc(App::$nav_sel['raw_name']) ); - + if($active_app) { if(strpos($active_app[0]['app_url'], ',')) { $urls = explode(',', $active_app[0]['app_url']); $url = trim($urls[0]); - $settings_url = trim($urls[1]); + if($is_owner) + $settings_url = trim($urls[1]); } else { $url = $active_app[0]['app_url']; @@ -296,7 +300,8 @@ function nav($template = 'default') { '$addapps' => t('Add Apps'), '$orderapps' => t('Arrange Apps'), '$sysapps_toggle' => t('Toggle System Apps'), - '$url' => (($url) ? $url : App::$cmd) + '$url' => (($url) ? $url : App::$cmd), + '$settings_url' => $settings_url )); if(x($_SESSION, 'reload_avatar') && $observer) { diff --git a/view/tpl/navbar_default.tpl b/view/tpl/navbar_default.tpl index 0eb0a964c..a11b9b5ea 100755 --- a/view/tpl/navbar_default.tpl +++ b/view/tpl/navbar_default.tpl @@ -70,9 +70,17 @@ <br><small>{{$sitelocation}}</small> {{/if}} </a> + +</div> +{{if $settings_url}} +<div id="nav-app-settings-link-wrapper" class="navbar-nav mr-auto"> + <a id="nav-app-settings-link" href="{{$settings_url}}" class="nav-link"> + <i class="fa fa-fw fa-cog"></i> + </a> </div> {{/if}} {{/if}} +{{/if}} <div class="navbar-toggler-right"> {{if $nav.help.6}} <button id="context-help-btn" class="navbar-toggler border-0" type="button" onclick="contextualHelp(); return false;"> diff --git a/view/tpl/settings_addon.tpl b/view/tpl/settings_addon.tpl new file mode 100644 index 000000000..b5665f579 --- /dev/null +++ b/view/tpl/settings_addon.tpl @@ -0,0 +1,13 @@ +<div class="generic-content-wrapper"> + <div class="section-title-wrapper"> + <h2>{{$title}}</h2> + </div> + <div class="section-content-wrapper"> + <form action="{{$action_url}}" method="post" autocomplete="off"> + <input type='hidden' name='form_security_token' value='{{$form_security_token}}'> + {{$content}} + <div class="settings-submit-wrapper" > + <button type="submit" name="submit" class="btn btn-primary">{{$submit}}</button> + </div> + </div> +</div> |