From 17fd7b185054e260f0a9a2cedd264ff3ef43d725 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Mon, 8 Dec 2008 12:09:31 -0500 Subject: [PATCH] add returnto information to the block form darcs-hash:20081208170931-5ed1f-e7c5853e6a222b04723f20c01ebaae15eeab3687.gz --- actions/block.php | 24 ++++++++++++++++++++++-- actions/showstream.php | 11 +++++++++-- lib/util.php | 7 ++++++- 3 files changed, 37 insertions(+), 5 deletions(-) diff --git a/actions/block.php b/actions/block.php index b507af3249..8956b79ba5 100644 --- a/actions/block.php +++ b/actions/block.php @@ -95,6 +95,12 @@ class BlockAction extends Action { 'type' => 'hidden', 'value' => $id)); + foreach ($this->args as $k => $v) { + if (substr($k, 0, 9) == 'returnto-') { + common_hidden($k, $v); + } + } + common_submit('no', _('No')); common_submit('yes', _('Yes')); @@ -147,7 +153,21 @@ class BlockAction extends Action { $block->query('COMMIT'); - common_redirect(common_local_url('subscribers', - array('nickname' => $cur->nickname))); + # Now, gotta figure where we go back to + + foreach ($this->args as $k => $v) { + if ($k == 'returnto-action') { + $action = $v; + } else if (substr($k, 0, 9) == 'returnto-') { + $args[$k] = substr($k, 9); + } + } + + if ($action) { + common_redirect(common_local_url($action, $args)); + } else { + common_redirect(common_local_url('subscriptions', + array('nickname' => $cur->nickname))); + } } } diff --git a/actions/showstream.php b/actions/showstream.php index e12a227e3b..0fc3978110 100644 --- a/actions/showstream.php +++ b/actions/showstream.php @@ -203,8 +203,15 @@ class ShowstreamAction extends StreamAction { common_profile_new_message_nudge($cur, $user, $profile); if ($cur) { - common_element_start('li', array('id' => 'profile_block')); - common_block_form($profile); + $blocked = $cur->hasBlocked($profile); + common_element_start('li', array('id' => ($blocked) ? 'profile_unblock' : 'profile_block')); + if ($blocked) { +# common_unblock_form($profile, array('action' => 'showstream', +# 'nickname' => $profile->nickname)); + } else { + common_block_form($profile, array('action' => 'showstream', + 'nickname' => $profile->nickname)); + } common_element_end('li'); } diff --git a/lib/util.php b/lib/util.php index fa8248dba4..4d670edcc1 100644 --- a/lib/util.php +++ b/lib/util.php @@ -2185,7 +2185,7 @@ function common_compatible_license($from, $to) { return ($from == $to); } -function common_block_form($profile) { +function common_block_form($profile, $args=NULL) { common_element_start('form', array('id' => 'block-' . $profile->id, 'method' => 'post', 'class' => 'block', @@ -2199,6 +2199,11 @@ function common_block_form($profile) { 'class' => 'submit', 'name' => 'block', 'value' => _('Block'))); + if ($args) { + foreach ($args as $k => $v) { + common_hidden('returnto-' . $k, $v); + } + } common_element_end('form'); return; }