Initial inline listing of favoriters

This commit is contained in:
Brion Vibber 2011-03-17 14:19:03 -07:00
parent 58d39153c6
commit ed6d5c6e7a
2 changed files with 40 additions and 7 deletions

View File

@ -181,10 +181,10 @@ class ThreadedNoticeListItem extends NoticeListItem
$notices[] = clone($notice); // *grumble* inefficient as hell
}
$this->out->elementStart('ul', 'notices threaded-replies xoxo');
$item = new ThreadedNoticeListFavesItem($this->notice, $this->out);
$hasFaves = $item->show();
if ($notices) {
$this->out->elementStart('ul', 'notices threaded-replies xoxo');
$item = new ThreadedNoticeListFavesItem($this->notice, $this->out);
$hasFaves = $item->show();
if ($moreCutoff) {
$item = new ThreadedNoticeListMoreItem($moreCutoff, $this->out);
$item->show();
@ -193,14 +193,16 @@ class ThreadedNoticeListItem extends NoticeListItem
$item = new ThreadedNoticeListSubItem($notice, $this->out);
$item->show();
}
}
if ($notices || $hasFaves) {
// @fixme do a proper can-post check that's consistent
// with the JS side
if (common_current_user()) {
$item = new ThreadedNoticeListReplyItem($this->notice, $this->out);
$item->show();
}
$this->out->elementEnd('ul');
}
$this->out->elementEnd('ul');
}
parent::showEnd();
@ -229,6 +231,13 @@ class ThreadedNoticeListSubItem extends NoticeListItem
{
//
}
function showEnd()
{
$item = new ThreadedNoticeListInlineFavesItem($this->notice, $this->out);
$hasFaves = $item->show();
parent::showEnd();
}
}
/**
@ -368,15 +377,25 @@ class ThreadedNoticeListFavesItem extends NoticeListItem
}
$out = sprintf($msg, $this->magicList($links));
$this->out->elementStart('li', array('class' => 'notice-faves'));
$this->showStart();
$this->out->raw($out);
$this->out->elementEnd('li');
$this->showEnd();
return $count;
} else {
return 0;
}
}
function showStart()
{
$this->out->elementStart('li', array('class' => 'notice-data notice-faves'));
}
function showEnd()
{
$this->out->elementEnd('li');
}
function magicList($items)
{
if (count($items) == 0) {
@ -391,3 +410,16 @@ class ThreadedNoticeListFavesItem extends NoticeListItem
}
}
}
class ThreadedNoticeListInlineFavesItem extends ThreadedNoticeListFavesItem
{
function showStart()
{
$this->out->elementStart('div', array('class' => 'entry-content notice-faves'));
}
function showEnd()
{
$this->out->elementEnd('div');
}
}

View File

@ -577,7 +577,8 @@ div.entry-content a.response:after {
font-size: 1em;
}
#content .notice .threaded-replies .notice {
#content .notice .threaded-replies .notice,
#content .notice .threaded-replies .notice-data {
width: 440px;
min-height: 1px;
padding-bottom: 14px;