Page MenuHomestyx hydra

No OneTemporary

diff --git a/src/applications/phame/controller/PhameController.php b/src/applications/phame/controller/PhameController.php
index 5e786e9d41..adf72c0e7d 100644
--- a/src/applications/phame/controller/PhameController.php
+++ b/src/applications/phame/controller/PhameController.php
@@ -1,136 +1,136 @@
<?php
abstract class PhameController extends PhabricatorController {
protected function renderSideNavFilterView() {
$base_uri = new PhutilURI($this->getApplicationURI());
$nav = new AphrontSideNavFilterView();
$nav->setBaseURI($base_uri);
$nav->addLabel(pht('Create'));
$nav->addFilter('post/new', pht('New Post'));
$nav->addFilter('blog/new', pht('New Blog'));
$nav->addLabel(pht('Posts'));
$nav->addFilter('post/draft', pht('My Drafts'));
$nav->addFilter('post', pht('My Posts'));
$nav->addFilter('post/all', pht('All Posts'));
$nav->addLabel(pht('Blogs'));
$nav->addFilter('blog/user', pht('Joinable Blogs'));
$nav->addFilter('blog/all', pht('All Blogs'));
$nav->selectFilter(null);
return $nav;
}
protected function renderPostList(
array $posts,
PhabricatorUser $viewer,
$nodata) {
assert_instances_of($posts, 'PhamePost');
$handle_phids = array();
foreach ($posts as $post) {
$handle_phids[] = $post->getBloggerPHID();
if ($post->getBlog()) {
$handle_phids[] = $post->getBlog()->getPHID();
}
}
$handles = $viewer->loadHandles($handle_phids);
$stories = array();
foreach ($posts as $post) {
$blogger = $handles[$post->getBloggerPHID()]->renderLink();
$blogger_uri = $handles[$post->getBloggerPHID()]->getURI();
$blogger_image = $handles[$post->getBloggerPHID()]->getImageURI();
$blog = null;
if ($post->getBlog()) {
$blog = $handles[$post->getBlog()->getPHID()]->renderLink();
}
$phame_post = '';
if ($post->getBody()) {
$phame_post = PhabricatorMarkupEngine::summarize($post->getBody());
}
$blog_view = $post->getViewURI();
$phame_title = phutil_tag('a', array('href' => $blog_view),
$post->getTitle());
$blogger = phutil_tag('strong', array(), $blogger);
if ($post->isDraft()) {
$title = pht(
'%s drafted a blog post on %s.',
$blogger,
$blog);
$title = phutil_tag('em', array(), $title);
} else {
$title = pht(
'%s wrote a blog post on %s.',
$blogger,
$blog);
}
$item = id(new PHUIObjectItemView())
->setObject($post)
->setHeader($post->getTitle())
->setHref($this->getApplicationURI('post/view/'.$post->getID().'/'));
$story = id(new PHUIFeedStoryView())
->setTitle($title)
->setImage($blogger_image)
->setImageHref($blogger_uri)
->setAppIcon('fa-star')
->setUser($viewer)
->setPontification($phame_post, $phame_title);
if (PhabricatorPolicyFilter::hasCapability(
$viewer,
$post,
PhabricatorPolicyCapability::CAN_EDIT)) {
$story->addAction(id(new PHUIIconView())
->setHref($this->getApplicationURI('post/edit/'.$post->getID().'/'))
->setIconFont('fa-pencil'));
}
if ($post->getDatePublished()) {
$story->setEpoch($post->getDatePublished());
}
$stories[] = $story;
}
if (empty($stories)) {
- return id(new PHUIInfoView())
- ->setSeverity(PHUIInfoView::SEVERITY_NODATA)
- ->appendChild($nodata);
+ return id(new PHUIBoxView())
+ ->appendChild($nodata)
+ ->addClass('mlt mlb msr msl');
}
return $stories;
}
public function buildApplicationMenu() {
return $this->renderSideNavFilterView()->getMenu();
}
protected function buildApplicationCrumbs() {
$crumbs = parent::buildApplicationCrumbs();
$crumbs->addAction(
id(new PHUIListItemView())
->setName(pht('New Blog'))
->setHref($this->getApplicationURI('/blog/new'))
->setIcon('fa-plus-square'));
$crumbs->addAction(
id(new PHUIListItemView())
->setName(pht('New Post'))
->setHref($this->getApplicationURI('/post/new'))
->setIcon('fa-pencil'));
return $crumbs;
}
}
diff --git a/src/applications/phame/controller/blog/PhameBlogListController.php b/src/applications/phame/controller/blog/PhameBlogListController.php
index 2b9391d044..16486b95da 100644
--- a/src/applications/phame/controller/blog/PhameBlogListController.php
+++ b/src/applications/phame/controller/blog/PhameBlogListController.php
@@ -1,78 +1,82 @@
<?php
final class PhameBlogListController extends PhameController {
public function handleRequest(AphrontRequest $request) {
$user = $request->getUser();
$nav = $this->renderSideNavFilterView(null);
$filter = $request->getURIData('filter');
$filter = $nav->selectFilter('blog/'.$filter, 'blog/user');
$query = id(new PhameBlogQuery())
->setViewer($user);
switch ($filter) {
case 'blog/all':
$title = pht('All Blogs');
$nodata = pht('No blogs have been created.');
break;
case 'blog/user':
$title = pht('Joinable Blogs');
$nodata = pht('There are no blogs you can contribute to.');
$query->requireCapabilities(
array(
PhabricatorPolicyCapability::CAN_JOIN,
));
break;
default:
throw new Exception(pht("Unknown filter '%s'!", $filter));
}
$pager = id(new PHUIPagerView())
->setURI($request->getRequestURI(), 'offset')
->setOffset($request->getInt('offset'));
$blogs = $query->executeWithOffsetPager($pager);
$blog_list = $this->renderBlogList($blogs, $user, $nodata);
$blog_list->setPager($pager);
+ $box = id (new PHUIObjectBoxView())
+ ->setHeaderText($title)
+ ->setObjectList($blog_list);
+
$crumbs = $this->buildApplicationCrumbs();
$crumbs->addTextCrumb($title, $this->getApplicationURI());
$nav->appendChild(
array(
$crumbs,
- $blog_list,
+ $box,
));
return $this->buildApplicationPage(
$nav,
array(
'title' => $title,
));
}
private function renderBlogList(
array $blogs,
PhabricatorUser $user,
$nodata) {
$view = new PHUIObjectItemListView();
$view->setNoDataString($nodata);
$view->setUser($user);
foreach ($blogs as $blog) {
$item = id(new PHUIObjectItemView())
->setHeader($blog->getName())
->setHref($this->getApplicationURI('blog/view/'.$blog->getID().'/'))
->setObject($blog);
$view->addItem($item);
}
return $view;
}
}
diff --git a/src/applications/phame/controller/post/PhamePostListController.php b/src/applications/phame/controller/post/PhamePostListController.php
index 7c82319158..90ba2a1ae7 100644
--- a/src/applications/phame/controller/post/PhamePostListController.php
+++ b/src/applications/phame/controller/post/PhamePostListController.php
@@ -1,89 +1,88 @@
<?php
final class PhamePostListController extends PhameController {
private $bloggername;
private $filter;
public function willProcessRequest(array $data) {
$this->filter = idx($data, 'filter', 'blogger');
$this->bloggername = idx($data, 'bloggername');
}
public function processRequest() {
$request = $this->getRequest();
$user = $request->getUser();
$query = id(new PhamePostQuery())
->setViewer($user);
$nav = $this->renderSideNavFilterView();
+ $nodata = null;
switch ($this->filter) {
case 'draft':
$query->withBloggerPHIDs(array($user->getPHID()));
$query->withVisibility(PhamePost::VISIBILITY_DRAFT);
$nodata = pht('You have no unpublished drafts.');
$title = pht('Unpublished Drafts');
$nav->selectFilter('post/draft');
break;
case 'blogger':
if ($this->bloggername) {
$blogger = id(new PhabricatorUser())->loadOneWhere(
'username = %s',
$this->bloggername);
if (!$blogger) {
return new Aphront404Response();
}
} else {
$blogger = $user;
}
$query->withBloggerPHIDs(array($blogger->getPHID()));
if ($blogger->getPHID() == $user->getPHID()) {
$nav->selectFilter('post');
$nodata = pht('You have not written any posts.');
} else {
$nodata = pht('%s has not written any posts.', $blogger);
}
- $title = pht('Posts By %s', $blogger);
+ $title = pht('Posts by %s', $blogger);
break;
case 'all':
$nodata = pht('There are no visible posts.');
$title = pht('Posts');
$nav->selectFilter('post/all');
break;
default:
throw new Exception(pht("Unknown filter '%s'!", $this->filter));
}
$pager = id(new AphrontCursorPagerView())
->readFromRequest($request);
$posts = $query->executeWithCursorPager($pager);
require_celerity_resource('phame-css');
$post_list = $this->renderPostList($posts, $user, $nodata);
- $post_list = id(new PHUIBoxView())
- ->addPadding(PHUI::PADDING_LARGE)
- ->addClass('phame-post-list')
+ $post_list = id(new PHUIObjectBoxView())
+ ->setHeaderText($title)
->appendChild($post_list);
$crumbs = $this->buildApplicationCrumbs();
- $crumbs->setBorder(true);
$crumbs->addTextCrumb($title, $this->getApplicationURI());
$nav->appendChild(
array(
$crumbs,
$post_list,
));
return $this->buildApplicationPage(
$nav,
array(
'title' => $title,
));
}
}

File Metadata

Mime Type
text/x-diff
Expires
Tue, Jun 10, 10:39 PM (22 h, 38 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
141223
Default Alt Text
(9 KB)

Event Timeline