aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Zotlabs/Module/Connections.php21
-rw-r--r--Zotlabs/Module/Settings/Connections.php51
-rw-r--r--Zotlabs/Module/Settings/Network.php14
-rw-r--r--app/connections.apd4
-rw-r--r--include/features.php17
-rw-r--r--include/nav.php11
-rwxr-xr-xview/tpl/navbar_default.tpl8
-rw-r--r--view/tpl/settings_addon.tpl13
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>