1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-12-21 04:50:55 +01:00

Clean up URIs in Phame

Summary: Normalize "getViewURI" and "getLiveURI" for PhameBlog and PhamePost. Use pretty URIs in PhamePost

Test Plan: View Recent, View posts, edit post, new post, move post, view live.

Reviewers: epriestley

Reviewed By: epriestley

Subscribers: Korvin

Differential Revision: https://secure.phabricator.com/D14713
This commit is contained in:
Chad Little 2015-12-08 14:51:44 -08:00
parent d53187e10a
commit dafdd39ba9
8 changed files with 27 additions and 25 deletions

View file

@ -47,6 +47,7 @@ final class PhabricatorPhameApplication extends PhabricatorApplication {
'edit/(?:(?P<id>[^/]+)/)?' => 'PhamePostEditController',
'history/(?P<id>\d+)/' => 'PhamePostHistoryController',
'view/(?P<id>\d+)/' => 'PhamePostViewController',
'view/(?P<id>\d+)/(?P<slug>[^/]+)/' => 'PhamePostViewController',
'publish/(?P<id>\d+)/' => 'PhamePostPublishController',
'preview/(?P<id>\d+)/' => 'PhamePostPreviewController',
'unpublish/(?P<id>\d+)/' => 'PhamePostUnpublishController',

View file

@ -62,7 +62,7 @@ final class PhameBlogFeedController extends PhameBlogController {
foreach ($posts as $post) {
$content[] = hsprintf('<entry>');
$content[] = phutil_tag('title', array(), $post->getTitle());
$content[] = phutil_tag('link', array('href' => $post->getViewURI()));
$content[] = phutil_tag('link', array('href' => $post->getLiveURI()));
$content[] = phutil_tag('id', array(), PhabricatorEnv::getProductionURI(
'/phame/post/view/'.$post->getID().'/'));

View file

@ -6,6 +6,10 @@ final class PhamePostEditController extends PhamePostController {
$viewer = $request->getViewer();
$id = $request->getURIData('id');
$crumbs = $this->buildApplicationCrumbs();
$crumbs->addTextCrumb(
pht('Blogs'),
$this->getApplicationURI('blog/'));
if ($id) {
$post = id(new PhamePostQuery())
->setViewer($viewer)
@ -29,6 +33,9 @@ final class PhamePostEditController extends PhamePostController {
$v_projects = array_reverse($v_projects);
$v_cc = PhabricatorSubscribersQuery::loadSubscribersForPHID(
$post->getPHID());
$blog = $post->getBlog();
} else {
$blog = id(new PhameBlogQuery())
->setViewer($viewer)
@ -102,7 +109,7 @@ final class PhamePostEditController extends PhamePostController {
try {
$editor->applyTransactions($post, $xactions);
$uri = $this->getApplicationURI('/post/view/'.$post->getID().'/');
$uri = $post->getViewURI();
return id(new AphrontRedirectResponse())->setURI($uri);
} catch (PhabricatorApplicationTransactionValidationException $ex) {
$validation_exception = $ex;
@ -192,10 +199,12 @@ final class PhamePostEditController extends PhamePostController {
->setValidationException($validation_exception)
->setForm($form);
$crumbs = $this->buildApplicationCrumbs();
$crumbs->addTextCrumb(
$blog->getName(),
$blog->getViewURI());
$crumbs->addTextCrumb(
$page_title,
$this->getApplicationURI('/post/view/'.$id.'/'));
$cancel_uri);
return $this->newPage()
->setTitle($page_title)

View file

@ -15,17 +15,10 @@ final class PhamePostNotLiveController extends PhamePostController {
}
$reasons = array();
if (!$post->getBlog()) {
$reasons[] = phutil_tag('p', array(), pht(
'You can not view the live version of this post because it '.
'is not associated with a blog. Move the post to a blog in order to '.
'view it live.'));
}
if ($post->isDraft()) {
$reasons[] = phutil_tag('p', array(), pht(
'You can not view the live version of this post because it '.
'is still a draft. Use "Preview/Publish" to publish the post.'));
'is still a draft. Use "Preview" or "Publish" to publish the post.'));
}
if ($reasons) {
@ -45,7 +38,7 @@ final class PhamePostNotLiveController extends PhamePostController {
// No reason this can't go live, maybe an old link. Kick them live and see
// what happens.
$live_uri = $post->getViewURI();
$live_uri = $post->getLiveURI();
return id(new AphrontRedirectResponse())->setURI($live_uri);
}

View file

@ -25,15 +25,9 @@ final class PhamePostViewController extends PhamePostController {
$crumbs->addTextCrumb(
pht('Blogs'),
$this->getApplicationURI('blog/'));
if ($blog) {
$crumbs->addTextCrumb(
$blog->getName(),
$this->getApplicationURI('blog/view/'.$blog->getID().'/'));
} else {
$crumbs->addTextCrumb(
pht('[No Blog]'),
null);
}
$crumbs->addTextCrumb(
$blog->getName(),
$this->getApplicationURI('blog/view/'.$blog->getID().'/'));
$crumbs->addTextCrumb(
$post->getTitle(),
$this->getApplicationURI('post/view/'.$post->getID().'/'));

View file

@ -93,7 +93,7 @@ final class PhamePostSearchEngine
->setObject($post)
->setHeader($post->getTitle())
->setStatusIcon('fa-star')
->setHref($this->getApplicationURI("/post/view/{$id}/"))
->setHref($post->getViewURI())
->addAttribute($blog_name);
if ($post->isDraft()) {
$item->setStatusIcon('fa-star-o grey');

View file

@ -48,7 +48,7 @@ final class PhamePost extends PhameDAO
return $this->blog;
}
public function getViewURI() {
public function getLiveURI() {
// go for the pretty uri if we can
$domain = ($this->blog ? $this->blog->getDomain() : '');
if ($domain) {
@ -59,6 +59,11 @@ final class PhamePost extends PhameDAO
return PhabricatorEnv::getProductionURI($uri);
}
public function getViewURI() {
$phame_title = PhabricatorSlug::normalize($this->getPhameTitle());
return '/phame/post/view/'.$this->getID().'/'.$phame_title;
}
public function getEditURI() {
return '/phame/post/edit/'.$this->getID().'/';
}

View file

@ -89,7 +89,7 @@ final class PhamePostListView extends AphrontTagView {
$item = id(new PHUIDocumentSummaryView())
->setTitle($post->getTitle())
->setHref('/phame/post/view/'.$post->getID().'/')
->setHref($post->getViewURI())
->setSubtitle($subtitle)
->setImage($blogger_image)
->setImageHref($blogger_uri)