Page MenuHomePhabricator

Basic structure for MenuItem on Home
ClosedPublic

Authored by chad on Jan 11 2017, 7:08 PM.
Tags
None
Referenced Files
F15463303: D17180.id41316.diff
Tue, Apr 1, 10:17 PM
F15459487: D17180.id41319.diff
Mon, Mar 31, 1:26 PM
F15458273: D17180.diff
Sun, Mar 30, 10:29 PM
F15429784: D17180.id41319.diff
Mon, Mar 24, 4:16 AM
F15389432: D17180.id41320.diff
Sat, Mar 15, 5:14 AM
F15380818: D17180.id41316.diff
Fri, Mar 14, 4:37 AM
Unknown Object (File)
Feb 28 2025, 3:10 AM
Unknown Object (File)
Feb 22 2025, 4:53 PM
Subscribers

Details

Summary

Ref T11957, builds out /home/menu/ as a basic structure for adding/editing the homepage menu.

Test Plan

visit /home/menu/ and add items to global and personal. Not wired to anything.

Diff Detail

Repository
rP Phabricator
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

epriestley added inline comments.
src/applications/home/constants/PhabricatorHomeConstants.php
7–17

Instead of hard-coding these, you should add (or reuse) methods on PhabricatorApplication so each application, so the code looks something like this:

foreach ($all_applications as $app) {
  if ($app->shouldThisThingGoOnTheDefaultHomeMenu()) {
    $items[] = new item
  }
}

Then third-party applications will be able to install themselves, etc. I think isPinnedByDefault() is currently the method for this.

You can generate builtin keys like "app.".$app->getPHID() or similar. They just need to be unique; they don't need to be constants.

This revision is now accepted and ready to land.Jan 11 2017, 7:19 PM
  • rough in proper isPinnedByDefaults
This revision was automatically updated to reflect the committed changes.