From 508b3ce730a6f84858d1c69114c5b70730950e47 Mon Sep 17 00:00:00 2001 From: Mario Date: Tue, 1 Dec 2020 08:27:18 +0000 Subject: =?UTF-8?q?=C3=83fix=20regerssion=20in=20updating=20the=20primary?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit (cherry picked from commit c47434634d89e1db37a791d1c4243950a74d906d) --- Zotlabs/Module/Locs.php | 62 +++++++++++++++++++++++++++---------------------- 1 file changed, 34 insertions(+), 28 deletions(-) diff --git a/Zotlabs/Module/Locs.php b/Zotlabs/Module/Locs.php index 4c935a6a2..7273c108c 100644 --- a/Zotlabs/Module/Locs.php +++ b/Zotlabs/Module/Locs.php @@ -8,55 +8,64 @@ use Zotlabs\Daemon\Master; class Locs extends Controller { function post() { - + if(! local_channel()) return; - + $channel = App::get_channel(); - + if($_REQUEST['primary']) { $hubloc_id = intval($_REQUEST['primary']); if($hubloc_id) { - + $r = q("select * from hubloc where hubloc_id = %d and hubloc_hash = '%s' limit 1", intval($hubloc_id), dbesc($channel['channel_hash']) ); - + if(! $r) { notice( t('Location not found.') . EOL); return; } - + q("UPDATE hubloc SET hubloc_primary = 0 WHERE hubloc_primary = 1 AND (hubloc_hash = '%s' OR hubloc_hash = '%s')", dbesc($channel['channel_hash']), dbesc($channel['channel_portable_id']) ); + q("UPDATE hubloc SET hubloc_primary = 1 WHERE hubloc_id = %d AND hubloc_hash = '%s'", intval($hubloc_id), dbesc($channel['channel_hash']) ); + $x = q("select * from hubloc where hubloc_id = %d and hubloc_hash = '%s' ", + intval($hubloc_id), + dbesc($channel['channel_hash']) + + if ($x) { + hubloc_change_primary($x[0]); + } + Master::Summon( [ 'Notifier', 'refresh_all', $channel['channel_id'] ] ); return; - } + } } - - + if($_REQUEST['drop']) { $hubloc_id = intval($_REQUEST['drop']); - + if($hubloc_id) { $r = q("select * from hubloc where hubloc_id = %d and hubloc_url != '%s' and hubloc_hash = '%s' limit 1", intval($hubloc_id), dbesc(z_root()), dbesc($channel['channel_hash']) ); - + if(! $r) { notice( t('Location not found.') . EOL); return; } + if(intval($r[0]['hubloc_primary'])) { $x = q("select hubloc_id from hubloc where hubloc_primary = 1 and hubloc_hash = '%s'", dbesc($channel['channel_hash']) @@ -70,7 +79,7 @@ class Locs extends Controller { return; } } - + q("UPDATE hubloc SET hubloc_deleted = 1 WHERE hubloc_id_url = '%s' AND (hubloc_hash = '%s' OR hubloc_hash = '%s')", dbesc($r[0]['hubloc_id_url']), dbesc($channel['channel_hash']), @@ -78,44 +87,41 @@ class Locs extends Controller { ); Master::Summon( [ 'Notifier', 'refresh_all', $channel['channel_id'] ] ); return; - } + } } } - - - + + + function get() { - - + if(! local_channel()) { notice( t('Permission denied.') . EOL); return; } - + $channel = App::get_channel(); - + if($_REQUEST['sync']) { Master::Summon( [ 'Notifier', 'refresh_all', $channel['channel_id'] ] ); info( t('Syncing locations') . EOL); goaway(z_root() . '/locs'); } - - + $r = q("select * from hubloc where hubloc_hash = '%s'", dbesc($channel['channel_hash']) ); - + if(! $r) { notice( t('No locations found.') . EOL); return; } - - + for($x = 0; $x < count($r); $x ++) { $r[$x]['primary'] = (intval($r[$x]['hubloc_primary']) ? true : false); $r[$x]['deleted'] = (intval($r[$x]['hubloc_deleted']) ? true : false); } - + $o = replace_macros(get_markup_template('locmanage.tpl'), array( '$header' => t('Manage Channel Locations'), '$loc' => t('Location'), @@ -129,8 +135,8 @@ class Locs extends Controller { '$last_resort' => t('Use this form to drop the location if the hub is no longer operating.'), '$hubs' => $r )); - + return $o; } - + } -- cgit v1.2.3