From 50c7e4c722a39582c185eafe452f0b321dd39e7e Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Thu, 19 Jun 2008 12:18:14 -0400 Subject: posting from a form takes you back to the same page darcs-hash:20080619161814-5ed1f-5add55346470e71a53a676d39617062acc0f19bf.gz --- actions/all.php | 2 +- actions/newnotice.php | 18 ++++++++++++++---- actions/public.php | 2 +- actions/showstream.php | 2 +- lib/util.php | 5 ++++- 5 files changed, 21 insertions(+), 8 deletions(-) diff --git a/actions/all.php b/actions/all.php index 44e3fd239..a8b08565a 100644 --- a/actions/all.php +++ b/actions/all.php @@ -65,7 +65,7 @@ class AllAction extends StreamAction { $cur = common_current_user(); if ($cur && $cur->id == $user->id) { - common_notice_form(); + common_notice_form('all'); } $this->views_menu(); diff --git a/actions/newnotice.php b/actions/newnotice.php index b65edf4c3..a3ba4c9cc 100644 --- a/actions/newnotice.php +++ b/actions/newnotice.php @@ -69,15 +69,25 @@ class NewnoticeAction extends Action { } common_broadcast_notice($notice); - common_redirect(common_local_url('shownotice', - array('notice' => $id)), 303); + $returnto = $this->trimmed('returnto'); + if ($returnto) { + $url = common_local_url($returnto, + array('nickname' => $user->nickname)); + } else { + $url = common_local_url('shownotice', + array('notice' => $id)); + } + common_redirect($url, 303); } - function show_form($msg=NULL) { - common_show_header(_t('New notice')); + function show_top($msg=NULL) { if ($msg) { common_element('div', 'error', $msg); } + } + + function show_form($msg=NULL) { + common_show_header(_t('New notice'), NULL, $msg, array($this, 'show_top')); common_notice_form(); common_show_footer(); } diff --git a/actions/public.php b/actions/public.php index 5d06c3c29..23d9f0397 100644 --- a/actions/public.php +++ b/actions/public.php @@ -43,7 +43,7 @@ class PublicAction extends StreamAction { function show_top() { if (common_logged_in()) { - common_notice_form(); + common_notice_form('public'); } } diff --git a/actions/showstream.php b/actions/showstream.php index d9637c377..7ccdc894f 100644 --- a/actions/showstream.php +++ b/actions/showstream.php @@ -68,7 +68,7 @@ class ShowstreamAction extends StreamAction { $cur = common_current_user(); if ($cur && $cur->id == $user->id) { - common_notice_form(); + common_notice_form('showstream'); } $this->views_menu(); diff --git a/lib/util.php b/lib/util.php index a4c30cbe4..88ddbcc00 100644 --- a/lib/util.php +++ b/lib/util.php @@ -650,7 +650,7 @@ function common_profile_url($nickname) { # Don't call if nobody's logged in -function common_notice_form() { +function common_notice_form($action=NULL) { $user = common_current_user(); assert(!is_null($user)); common_element_start('form', array('id' => 'status_form', @@ -663,6 +663,9 @@ function common_notice_form() { common_element('textarea', array('id' => 'status_textarea', 'name' => 'status_textarea'), ' '); + if ($action) { + common_hidden('returnto', $action); + } common_element('input', array('id' => 'status_submit', 'name' => 'status_submit', 'type' => 'submit', -- cgit v1.2.3