some more extensions of ShowstreamAction broke in last commit

This commit is contained in:
Mikael Nordfeldth 2015-06-05 21:49:34 +02:00
parent 9376a6d75a
commit c26e08d6a6
4 changed files with 24 additions and 42 deletions

View File

@ -35,13 +35,13 @@
* @link http://status.net * @link http://status.net
*/ */
if (!defined('GNUSOCIAL') && !defined('STATUSNET')) { exit(1); } if (!defined('GNUSOCIAL')) { exit(1); }
class AllAction extends ProfileAction class AllAction extends ShowstreamAction
{ {
var $notice; var $notice;
protected function profileActionPreparation() protected function getStream()
{ {
if ($this->scoped instanceof Profile && $this->scoped->isLocal() && $this->scoped->getUser()->streamModeOnly()) { if ($this->scoped instanceof Profile && $this->scoped->isLocal() && $this->scoped->getUser()->streamModeOnly()) {
$stream = new InboxNoticeStream($this->target, $this->scoped); $stream = new InboxNoticeStream($this->target, $this->scoped);
@ -49,13 +49,7 @@ class AllAction extends ProfileAction
$stream = new ThreadingInboxNoticeStream($this->target, $this->scoped); $stream = new ThreadingInboxNoticeStream($this->target, $this->scoped);
} }
$this->notice = $stream->getNotices(($this->page-1)*NOTICES_PER_PAGE, return $stream;
NOTICES_PER_PAGE + 1);
if ($this->page > 1 && $this->notice->N == 0) {
// TRANS: Client error when page not found (404).
$this->clientError(_('No such page.'), 404);
}
} }
function title() function title()

View File

@ -38,42 +38,14 @@ if (!defined('GNUSOCIAL')) { exit(1); }
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
* @link http://status.net/ * @link http://status.net/
*/ */
class RepliesAction extends ManagedAction class RepliesAction extends ShowstreamAction
{ {
var $page = null; var $page = null;
var $notice; var $notice;
protected function doPreparation() protected function getStream()
{ {
$nickname = common_canonical_nickname($this->arg('nickname')); return new ReplyNoticeStream($this->target->getID(), $this->scoped);
$this->user = User::getKV('nickname', $nickname);
if (!$this->user instanceof User) {
// TRANS: Client error displayed when trying to reply to a non-exsting user.
$this->clientError(_('No such user.'));
}
$this->target = $this->user->getProfile();
if (!$this->target instanceof Profile) {
// TRANS: Error message displayed when referring to a user without a profile.
$this->serverError(_('User has no profile.'));
}
$this->page = $this->int('page') ?: 1;
common_set_returnto($this->selfUrl());
$stream = new ReplyNoticeStream($this->target->getID(), $this->scoped);
$this->notice = $stream->getNotices(($this->page-1) * NOTICES_PER_PAGE,
NOTICES_PER_PAGE + 1);
if ($this->page > 1 && $this->notice->N == 0) {
// TRANS: Client error when page not found (404)
$this->clientError(_('No such page.'), 404);
}
} }
/** /**

View File

@ -79,6 +79,17 @@ class ShowstreamAction extends ProfileAction
} }
protected function profileActionPreparation() protected function profileActionPreparation()
{
$stream = $this->getStream();
$this->notice = $stream->getNotices(($this->page-1) * NOTICES_PER_PAGE, NOTICES_PER_PAGE + 1);
if ($this->page > 1 && $this->notice->N == 0) {
// TRANS: Client error when page not found (404).
$this->clientError(_('No such page.'), 404);
}
}
protected function getStream()
{ {
if (empty($this->tag)) { if (empty($this->tag)) {
$stream = new ProfileNoticeStream($this->target, $this->scoped); $stream = new ProfileNoticeStream($this->target, $this->scoped);
@ -86,7 +97,7 @@ class ShowstreamAction extends ProfileAction
$stream = new TaggedProfileNoticeStream($this->target, $this->tag, $this->scoped); $stream = new TaggedProfileNoticeStream($this->target, $this->tag, $this->scoped);
} }
$this->notice = $stream->getNotices(($this->page-1)*NOTICES_PER_PAGE, NOTICES_PER_PAGE + 1); return $stream;
} }

View File

@ -71,6 +71,11 @@ abstract class ProfileAction extends ManagedAction
return true; return true;
} }
protected function profileActionPreparation()
{
// Nothing to do by default.
}
public function getTarget() public function getTarget()
{ {
return $this->target; return $this->target;