From fc223f59242478ea4489dad299d9e66b6b53a23a Mon Sep 17 00:00:00 2001 From: phani00 Date: Thu, 14 Feb 2019 09:56:53 +0100 Subject: affinity slider as app --- Zotlabs/Module/Affinity.php | 69 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 Zotlabs/Module/Affinity.php (limited to 'Zotlabs/Module/Affinity.php') diff --git a/Zotlabs/Module/Affinity.php b/Zotlabs/Module/Affinity.php new file mode 100644 index 000000000..8c2ee7821 --- /dev/null +++ b/Zotlabs/Module/Affinity.php @@ -0,0 +1,69 @@ + 99) + $cmax = 99; + $cmin = intval($_POST['affinity_cmin']); + if($cmin < 0 || $cmin > 99) + $cmin = 0; + set_pconfig(local_channel(),'affinity','cmin',$cmin); + set_pconfig(local_channel(),'affinity','cmax',$cmax); + + info( t('Affinity Tool settings updated.') . EOL); + + } + + Libsync::build_sync_packet(); + + } + + + function get() { + + $desc = t('This app (when installed) presents a slider control in your connection editor and also on your network page. The slider represents your degree of friendship or affinity with each connection. It allows you to zoom in or out and display conversations from only your closest friends or everybody in your stream.'); + + $text = '
' . $desc . '
'; + + if(! ( local_channel() && Apps::system_app_installed(local_channel(),'Affinity Tool'))) { + return $text; + } + + $text .= EOL . t('The numbers below represent the minimum and maximum slider default positions for your network/stream page as a percentage.') . EOL . EOL; + + $setting_fields = $text; + + $cmax = intval(get_pconfig(local_channel(),'affinity','cmax')); + $cmax = (($cmax) ? $cmax : 99); + $setting_fields .= replace_macros(get_markup_template('field_input.tpl'), array( + '$field' => array('affinity_cmax', t('Default maximum affinity level'), $cmax, t('0-99 default 99')) + )); + $cmin = intval(get_pconfig(local_channel(),'affinity','cmin')); + $cmin = (($cmin) ? $cmin : 0); + $setting_fields .= replace_macros(get_markup_template('field_input.tpl'), array( + '$field' => array('affinity_cmin', t('Default minimum affinity level'), $cmin, t('0-99 - default 0')) + )); + + $s .= replace_macros(get_markup_template('generic_app_settings.tpl'), array( + '$addon' => array('affinity', '' . t('Affinity Tool Settings'), '', t('Submit')), + '$content' => $setting_fields + )); + + return $s; + } + + +} -- cgit v1.2.3 From 5ab917f606aa8221b50e39b9ff0b5182d271fe51 Mon Sep 17 00:00:00 2001 From: Mario Vavti Date: Thu, 14 Feb 2019 11:06:52 +0100 Subject: affinity tool fixes --- Zotlabs/Module/Affinity.php | 84 +++++++++++++++++++++++++++++---------------- 1 file changed, 54 insertions(+), 30 deletions(-) (limited to 'Zotlabs/Module/Affinity.php') diff --git a/Zotlabs/Module/Affinity.php b/Zotlabs/Module/Affinity.php index 8c2ee7821..fbcb178e9 100644 --- a/Zotlabs/Module/Affinity.php +++ b/Zotlabs/Module/Affinity.php @@ -9,24 +9,30 @@ class Affinity extends \Zotlabs\Web\Controller { function post() { - if(! ( local_channel() && Apps::system_app_installed(local_channel(),'Affinity Tool'))) { - return; - } - - if($_POST['affinity-submit']) { - $cmax = intval($_POST['affinity_cmax']); - if($cmax < 0 || $cmax > 99) - $cmax = 99; - $cmin = intval($_POST['affinity_cmin']); - if($cmin < 0 || $cmin > 99) - $cmin = 0; - set_pconfig(local_channel(),'affinity','cmin',$cmin); - set_pconfig(local_channel(),'affinity','cmax',$cmax); - - info( t('Affinity Tool settings updated.') . EOL); + if(! local_channel()) + return; + + if(! Apps::system_app_installed(local_channel(),'Affinity Tool')) + return; + + check_form_security_token_redirectOnErr('affinity', 'affinity'); + + $cmax = intval($_POST['affinity_cmax']); + if($cmax < 0 || $cmax > 99) + $cmax = 99; + + $cmin = intval($_POST['affinity_cmin']); + if($cmin < 0 || $cmin > 99) + $cmin = 0; + + $lock = intval($_POST['affinity_lock']); + + set_pconfig(local_channel(),'affinity','cmin',$cmin); + set_pconfig(local_channel(),'affinity','cmax',$cmax); + set_pconfig(local_channel(),'affinity','lock',$lock); + + info( t('Affinity Tool settings updated.') . EOL); - } - Libsync::build_sync_packet(); } @@ -34,35 +40,53 @@ class Affinity extends \Zotlabs\Web\Controller { function get() { - $desc = t('This app (when installed) presents a slider control in your connection editor and also on your network page. The slider represents your degree of friendship or affinity with each connection. It allows you to zoom in or out and display conversations from only your closest friends or everybody in your stream.'); + if(! local_channel()) + return; - $text = ''; + $desc = t('This app presents a slider control in your connection editor and also on your network page. The slider represents your degree of friendship (affinity) with each connection. It allows you to zoom in or out and display conversations from only your closest friends or everybody in your stream.'); + if(! Apps::system_app_installed(local_channel(),'Affinity Tool')) { + //Do not display any associated widgets at this point + App::$pdl = ''; - if(! ( local_channel() && Apps::system_app_installed(local_channel(),'Affinity Tool'))) { - return $text; - } + $o = '' . t('Affinity Tool App') . ' (' . t('Not Installed') . '):
'; + $o .= $desc; + return $o; + } - $text .= EOL . t('The numbers below represent the minimum and maximum slider default positions for your network/stream page as a percentage.') . EOL . EOL; + $text = t('The numbers below represent the minimum and maximum slider default positions for your network/stream page as a percentage.'); - $setting_fields = $text; + $content = ''; $cmax = intval(get_pconfig(local_channel(),'affinity','cmax')); $cmax = (($cmax) ? $cmax : 99); - $setting_fields .= replace_macros(get_markup_template('field_input.tpl'), array( + $content .= replace_macros(get_markup_template('field_input.tpl'), array( '$field' => array('affinity_cmax', t('Default maximum affinity level'), $cmax, t('0-99 default 99')) )); + $cmin = intval(get_pconfig(local_channel(),'affinity','cmin')); $cmin = (($cmin) ? $cmin : 0); - $setting_fields .= replace_macros(get_markup_template('field_input.tpl'), array( + $content .= replace_macros(get_markup_template('field_input.tpl'), array( '$field' => array('affinity_cmin', t('Default minimum affinity level'), $cmin, t('0-99 - default 0')) )); - $s .= replace_macros(get_markup_template('generic_app_settings.tpl'), array( - '$addon' => array('affinity', '' . t('Affinity Tool Settings'), '', t('Submit')), - '$content' => $setting_fields + $lock = intval(get_pconfig(local_channel(),'affinity','lock',1)); + + $content .= replace_macros(get_markup_template('field_checkbox.tpl'), array( + '$field' => array('affinity_lock', t('Persistent affinity levels'), $lock, t('If disabled the max and min levels will be reset to default after page reload'), ['No','Yes']) + )); + + $tpl = get_markup_template("settings_addon.tpl"); + + $o = replace_macros($tpl, array( + '$action_url' => 'affinity', + '$form_security_token' => get_form_security_token("affinity"), + '$title' => t('Affinity Tool Settings'), + '$content' => $content, + '$baseurl' => z_root(), + '$submit' => t('Submit'), )); - return $s; + return $o; } -- cgit v1.2.3 From 3217452b026724d5c5d72c55196d7793b3ef758a Mon Sep 17 00:00:00 2001 From: Mario Vavti Date: Thu, 14 Feb 2019 14:48:16 +0100 Subject: missing use app --- Zotlabs/Module/Affinity.php | 1 + 1 file changed, 1 insertion(+) (limited to 'Zotlabs/Module/Affinity.php') diff --git a/Zotlabs/Module/Affinity.php b/Zotlabs/Module/Affinity.php index fbcb178e9..f0d99f1e7 100644 --- a/Zotlabs/Module/Affinity.php +++ b/Zotlabs/Module/Affinity.php @@ -2,6 +2,7 @@ namespace Zotlabs\Module; +use App; use Zotlabs\Lib\Apps; use Zotlabs\Lib\Libsync; -- cgit v1.2.3