Page MenuHomePhabricator

Revamp Projects with new navigation
ClosedPublic

Authored by chad on Jan 8 2015, 12:06 AM.
Tags
None
Referenced Files
Unknown Object (File)
Wed, Dec 25, 7:59 AM
Unknown Object (File)
Tue, Dec 24, 5:07 AM
Unknown Object (File)
Thu, Dec 19, 6:06 PM
Unknown Object (File)
Thu, Dec 19, 1:02 AM
Unknown Object (File)
Thu, Dec 19, 12:50 AM
Unknown Object (File)
Mon, Dec 16, 10:50 PM
Unknown Object (File)
Mon, Dec 16, 6:57 PM
Unknown Object (File)
Fri, Dec 13, 12:58 PM
Subscribers

Details

Reviewers
epriestley
btrahan
Commits
Restricted Diffusion Commit
rP953f281dc08f: Revamp Projects with new navigation
Summary

A refresh of Projects including a new navigations UI.

  • New Navigation UI.
  • Auto switch default page if Workboard has been initialized
  • Move Feed to it's own page
  • Increase 'tasks' on Project Home to 50 over 10
  • Fix various display bugs on Workboards
  • Remove 'crumbs' from Project portal (unneeded).
Test Plan
  • clicked a link for a project with no workboard and saw the profile
  • clicked a link for a project with a workboard and saw the workboard
  • navigated around the various edit pages, inspecting links and making sure things linked back to the new profile uri

Screen_Shot_2015-01-12_at_9.47.04_AM.png (1×2 px, 314 KB)

Screen_Shot_2015-01-12_at_9.47.00_AM.png (1×2 px, 399 KB)

Screen_Shot_2015-01-12_at_9.46.56_AM.png (1×2 px, 370 KB)

Screen_Shot_2015-01-12_at_9.46.50_AM.png (1×2 px, 459 KB)

Screen_Shot_2015-01-12_at_9.47.08_AM.png (1×2 px, 550 KB)

Diff Detail

Repository
rP Phabricator
Branch
arcpatch-D11272
Lint
Lint Passed
Unit
Tests Passed
Build Status
Buildable 3727
Build 3738: [Placeholder Plan] Wait for 30 Seconds

Event Timeline

btrahan retitled this revision from to WIP - Projects - new project homepage....
btrahan updated this object.
btrahan edited the test plan for this revision. (Show Details)
btrahan added reviewers: epriestley, chad.
btrahan added inline comments.
src/applications/project/controller/PhabricatorProjectViewController.php
37–40

This is potentially dodgy and maybe should be a first class table? I think its okay as just a user preference, but we lose the ability to easily query this data, change it en masse, etc.

Evan and I talked about this on the ride home, sorry I didn't update you on the mock. We think it might be better to be semi-automagical. Basically if a workboard has been initialized on a project, default to that viewer, if not, default to the details page.

However, if we look at Projects that will eventually have more items on the left dock, like Phriction, Calendar, maybe an actual per project toggle might be better.

Enable Workboard
Enable Wiki
Enable Calendar

Oh no worries... The bulk of this diff is introducing the "view" controller to do something automagic, so no worries on the specific magic changing. :D

I really like that "if workboard exists its default, else profile" logic for deciding what the default is... Sticky stuff can sit on top of that per user or we can skip it. Easy enough to add, especially if its okay to keep in the existing user preference data object.

btrahan edited edge metadata.
  • implement magic of "does workboard exist? then that's the default, else the profile"
  • smooth out stuff all over, making sure we end up at the profile controller for suresies if we're in an edit scenario, etc
  • miscellanous bug fix or two, like having crumbs that linked back to the application home be the plain text they were intended to be

Things of note with this diff that could be better...

  • once a workboard is the default, getting to the profile might be trickier; its the title / picture in the upper left
    • the new UI will make this better
  • once a workboard is the default, adding yourself to the project is hidden behind clicking the project title / picture in the upper left to get to the profile.
    • should we surface something to the board about members? I think the policy control is going to get clicked all the time for folks looking to change membership with the board they are viewing
  • search results now explicitly include a "profile" link along with "board" and "members" -- maybe too much stuff here? its an ugly flat list too.
btrahan retitled this revision from WIP - Projects - new project homepage... to Projects - make project links automagically route to workboard or profile.Jan 8 2015, 6:58 PM
btrahan updated this object.
btrahan edited the test plan for this revision. (Show Details)
epriestley edited edge metadata.

Maybe hold this until the new UI is ready since I think the nav is a little bit confusing, but it looks good to me.

This revision is now accepted and ready to land.Jan 8 2015, 7:08 PM

Should I commandeer this and just ship one diff?

chad edited reviewers, added: btrahan; removed: chad.

I will try.

Sorry, I was deep in the codes and the debugging and such. Whatever works!

Building everything at once and testing it locally first will really help. Though I guess I could make my diff depend on your diff? I feel there are parts of git branching I underutilize.

chad edited edge metadata.
  • Seems workable for testing

I feel there are parts of git branching I underutilize.

It's possible to build on top of uncommitted changes locally, but not super easy.

You can do something like this, if you feel adventurous:

$ arc patch D11272
$ # Now you're on a new branch called "arcpatch-D11272" with Bob's stuff.
$ git checkout -b newstuff
$ # Now you're on a new local branch on top of Bob's stuff.
$ # Make some changes.
$ git commit
$ arc diff arcpatch-D11272 # Send just the changes you made for review.

When you're ready to land it, disentangling the changes can be a little messy, though. And it isn't very easy to incorporate new changes to the diff you depend on.

This latest update looks good to me, code / behavior wise.

(I couldn't find a way to easily switch on mobile, but I don't think that's too important for now.)

Mostly a does this feel right pass. Will update for mobile, etc, next update.

  • Add mobile menu support, fix dashboard css scoping
src/applications/project/controller/PhabricatorProjectBoardController.php
42

One problem I'm having is getting this to trigger selected when the URL is /tag/board/

src/applications/project/controller/PhabricatorProjectController.php
15

mobile menu stuff here

src/applications/project/controller/PhabricatorProjectBoardController.php
42

Maybe have buildIconNavView exist in just the PhabricatorProjectController. Then, any given controller can have a buildIconNavView implementation like...

$nav = parent::buildIconNavView();
$nav->selectActiveIcon('board'); // whatever controller is
return $nav;

Not sure how selectActiveIcon works of course... An alternatve might be to have PhabricatorProjectController also have an abstract method "getActiveIcon()" which all subclasses must thus implement. buildIconNavView inside of PhabricatorProjectController can then use this method to select the icon if that makes it easier.

  • Remove crumbs from all individual project pages
  • Fix navigation highlights
  • Remove workboard link
  • Make members page viewable, only show 'add/remove' with permission
  • Fix icon nav tooltips
  • Make Feed a separate page/controller
  • Rebase
  • Change home icon to be actual Project Image
  • Make projects explicit for icon nav
  • Cleanup feed

This is reasonably ready for review.

chad requested a review of this revision.Jan 10 2015, 11:08 PM
chad edited edge metadata.
chad edited edge metadata.
  • Add white border to profile image
chad retitled this revision from Projects - make project links automagically route to workboard or profile to Revamp Projects with new navigation.Jan 12 2015, 5:50 PM
chad updated this object.
chad edited the test plan for this revision. (Show Details)

I'll leave the accept to @btrahan, but I didn't catch anything bad.

src/view/phui/PHUIListItemView.php
174–175

I think the initBehavior() should automatically do the CSS require.

btrahan edited edge metadata.

shipitquick

src/applications/project/controller/PhabricatorProjectProfileController.php
120

"Now with five times as many tasks!"

This revision is now accepted and ready to land.Jan 12 2015, 5:58 PM
This revision was automatically updated to reflect the committed changes.

Alrighty, can we roll secure and see if I broke anything here. Thanks!

Rolled. Seems good to me, and like a huge leap forward in project usability. I like that the icon is always visible.

Couple of random thoughts:

  • Kick the picture off the workboard and edit now that it's in nav?
  • Grey out "Workboard" if one hasn't been created yet?
  • Task list on the profile feels more worthless than ever to me.