+ '
%s
',
$view->render());
diff --git a/src/applications/project/controller/PhabricatorProjectController.php b/src/applications/project/controller/PhabricatorProjectController.php
index c098f4e21b..7df3bc03aa 100644
--- a/src/applications/project/controller/PhabricatorProjectController.php
+++ b/src/applications/project/controller/PhabricatorProjectController.php
@@ -30,16 +30,15 @@ abstract class PhabricatorProjectController extends PhabricatorController {
$edit_uri = '/project/edit/'.$id.'/';
$members_uri = '/project/members/'.$id.'/';
+ $nav_view->addLabel(pht('Project'));
$nav_view->addFilter('dashboard', pht('Dashboard'));
- $nav_view->addFilter('feed', pht('Feed'));
$nav_view->addFilter(null, pht('Tasks').' '.$external_arrow, $tasks_uri);
$nav_view->addFilter(null, pht('Wiki').' '.$external_arrow, $phriction_uri);
- $nav_view->addFilter('people', pht('People'));
- $nav_view->addFilter('about', pht('About'));
$user = $this->getRequest()->getUser();
$can_edit = PhabricatorPolicyCapability::CAN_EDIT;
+ $nav_view->addLabel(pht('Manage'));
if (PhabricatorPolicyFilter::hasCapability($user, $project, $can_edit)) {
$nav_view->addFilter('edit', pht("Edit Project"), $edit_uri);
$nav_view->addFilter('members', pht("Edit Members"), $members_uri);
@@ -61,10 +60,6 @@ abstract class PhabricatorProjectController extends PhabricatorController {
return $nav_view;
}
- public function buildApplicationMenu() {
- return $this->buildSideNavView(null, true)->getMenu();
- }
-
public function buildSideNavView($filter = null, $for_app = false) {
$user = $this->getRequest()->getUser();
diff --git a/src/applications/project/controller/PhabricatorProjectListController.php b/src/applications/project/controller/PhabricatorProjectListController.php
index 41ef51ebb8..9b8bf336fa 100644
--- a/src/applications/project/controller/PhabricatorProjectListController.php
+++ b/src/applications/project/controller/PhabricatorProjectListController.php
@@ -144,4 +144,8 @@ final class PhabricatorProjectListController
'dust' => true,
));
}
+
+ public function buildApplicationMenu() {
+ return $this->buildSideNavView(null, true)->getMenu();
+ }
}
diff --git a/src/applications/project/controller/PhabricatorProjectProfileController.php b/src/applications/project/controller/PhabricatorProjectProfileController.php
index 4c85607be2..daf2b48fe1 100644
--- a/src/applications/project/controller/PhabricatorProjectProfileController.php
+++ b/src/applications/project/controller/PhabricatorProjectProfileController.php
@@ -18,11 +18,8 @@ final class PhabricatorProjectProfileController
$query = id(new PhabricatorProjectQuery())
->setViewer($user)
- ->withIDs(array($this->id));
-
- if ($this->page == 'people') {
- $query->needMembers(true);
- }
+ ->withIDs(array($this->id))
+ ->needMembers(true);
$project = $query->executeOne();
$this->project = $project;
@@ -42,34 +39,31 @@ final class PhabricatorProjectProfileController
$this->page = $nav_view->selectFilter($this->page, 'dashboard');
require_celerity_resource('phabricator-profile-css');
- switch ($this->page) {
- case 'dashboard':
- $content = $this->renderTasksPage($project, $profile);
- $query = new PhabricatorFeedQuery();
- $query->setFilterPHIDs(
- array(
- $project->getPHID(),
- ));
- $query->setLimit(50);
- $query->setViewer($this->getRequest()->getUser());
- $stories = $query->execute();
+ $tasks = $this->renderTasksPage($project, $profile);
- $content = hsprintf('%s%s', $content, $this->renderStories($stories));
- break;
- case 'about':
- $content = $this->renderAboutPage($project, $profile);
- break;
- case 'people':
- $content = $this->renderPeoplePage($project, $profile);
- break;
- case 'feed':
- $content = $this->renderFeedPage($project, $profile);
- break;
- default:
- throw new Exception("Unimplemented filter '{$this->page}'.");
- }
+ $query = new PhabricatorFeedQuery();
+ $query->setFilterPHIDs(
+ array(
+ $project->getPHID(),
+ ));
+ $query->setLimit(50);
+ $query->setViewer($this->getRequest()->getUser());
+ $stories = $query->execute();
+ $feed = $this->renderStories($stories);
+ $about = $this->renderAboutPage($project, $profile);
+ $people = $this->renderPeoplePage($project, $profile);
+ $col1 = hsprintf('%s%s', $about, $people);
+ $content = id(new AphrontMultiColumnView())
+ ->addColumn($col1)
+ ->addColumn($feed)
+ ->setFluidLayout(true);
+
+ $content = hsprintf(
+ '
%s%s
',
+ $tasks,
+ $content);
$header = new PhabricatorProfileHeaderView();
$header->setName($project->getName());
@@ -111,16 +105,15 @@ final class PhabricatorProjectProfileController
}
$header->addAction($action);
-
$nav_view->appendChild($header);
-
- $content = hsprintf('
%s
', $content);
$header->appendChild($content);
return $this->buildApplicationPage(
$nav_view,
array(
'title' => pht('%s Project', $project->getName()),
+ 'device' => true,
+ 'dust' => true,
));
}
@@ -140,8 +133,8 @@ final class PhabricatorProjectProfileController
$timestamp = phabricator_datetime($project->getDateCreated(), $viewer);
$about = hsprintf(
- '
-
+ '
+
@@ -163,6 +156,7 @@ final class PhabricatorProjectProfileController
',
+ pht('About This Project'),
pht('Creator'),
$handles[$project->getAuthorPHID()]->renderLink(),
pht('Created'),
@@ -194,7 +188,7 @@ final class PhabricatorProjectProfileController
}
return hsprintf(
- '
'.
+ '
',
@@ -227,11 +221,9 @@ final class PhabricatorProjectProfileController
$view = $builder->buildView();
return hsprintf(
- '
'.
- ''.
- '
%s
'.
+ '
'.
+ '%s'.
'
',
- pht('Activity Feed'),
$view->render());
}
@@ -273,7 +265,7 @@ final class PhabricatorProjectProfileController
pht("View All Open Tasks \xC2\xBB"));
$content = hsprintf(
- '
+ '
'.
'
'.
'%s'.
@@ -287,4 +279,8 @@ final class PhabricatorProjectProfileController
return $content;
}
+ public function buildApplicationMenu() {
+ return $this->buildLocalNavigation($this->project)->getMenu();
+ }
+
}
diff --git a/src/view/phui/PHUIFeedStoryView.php b/src/view/phui/PHUIFeedStoryView.php
index 3d417b5908..a9e861d1a5 100644
--- a/src/view/phui/PHUIFeedStoryView.php
+++ b/src/view/phui/PHUIFeedStoryView.php
@@ -100,13 +100,15 @@ final class PHUIFeedStoryView extends AphrontView {
$body = null;
$foot = null;
$image_style = null;
-
- $body = phutil_tag(
- 'div',
- array(
- 'class' => 'phui-feed-story-body',
- ),
- $this->renderChildren());
+ $body_content = $this->renderChildren();
+ if ($body_content) {
+ $body = phutil_tag(
+ 'div',
+ array(
+ 'class' => 'phui-feed-story-body',
+ ),
+ $body_content);
+ }
if ($this->epoch) {
$foot = phabricator_datetime($this->epoch, $this->user);
diff --git a/webroot/rsrc/css/application/feed/feed.css b/webroot/rsrc/css/application/feed/feed.css
index cd272dcf86..52de120898 100644
--- a/webroot/rsrc/css/application/feed/feed.css
+++ b/webroot/rsrc/css/application/feed/feed.css
@@ -3,7 +3,12 @@
*/
.phabricator-feed-frame {
+ margin: 20px 10px;
+}
+
+.phabricator-public-feed-frame {
margin: 10px;
+ max-width: 600px;
}
.phabricator-feed-frame .phabricator-action-header-title {
@@ -12,8 +17,8 @@
}
.device-desktop .phabricator-feed-frame {
- width: 600px;
- margin: 20px auto;
+ max-width: 600px;
+ margin: 20px;
}
.phabricator-feed-story-date-separator {
@@ -29,3 +34,15 @@
float: right;
font-weight: bold;
}
+
+.phabricator-public-feed-frame .phui-feed-story-foot {
+ background: none;
+}
+
+.phabricator-public-feed-frame .phui-feed-story {
+ box-shadow: none;
+}
+
+.phabricator-public-feed-frame .phui-feed-wrap {
+ border: none;
+}
diff --git a/webroot/rsrc/css/application/profile/profile-header-view.css b/webroot/rsrc/css/application/profile/profile-header-view.css
index 0343a3951c..ea8e2af7e5 100644
--- a/webroot/rsrc/css/application/profile/profile-header-view.css
+++ b/webroot/rsrc/css/application/profile/profile-header-view.css
@@ -8,7 +8,6 @@
border-style: solid;
border-color: #c0c5d1;
width: 100%;
- box-shadow: 0 1px 3px rgba(0,0,0,0.2);
}
.phabricator-profile-header .profile-header-name {
diff --git a/webroot/rsrc/css/application/profile/profile-view.css b/webroot/rsrc/css/application/profile/profile-view.css
index be613a2df3..e42d421c4b 100644
--- a/webroot/rsrc/css/application/profile/profile-view.css
+++ b/webroot/rsrc/css/application/profile/profile-view.css
@@ -102,3 +102,27 @@ img.phabricator-profile-image {
font-weight: bold;
margin: .5em 1em 0;
}
+
+.profile-wrap-responsive {
+ margin: 20px;
+}
+
+.device .profile-wrap-responsive {
+ margin-left: 10px;
+ margin-right: 10px;
+}
+
+.device-desktop .profile-feed {
+ max-width: 640px;
+}
+
+.profile-feed .phabricator-action-header-title {
+ font-size: 16px;
+ margin-bottom: 5px;
+}
+
+.device-desktop .phabricator-project-layout
+ .aphront-multi-column-column-outer:first-child
+ .phabricator-profile-info-group {
+ margin-right: 0;
+}