Page MenuHomePhorge

Dashboard Panel list: missing welcome page
Closed, ResolvedPublic

Description

This is a follow-up from D25649.

It seems we have a feature called "NUX" ("new user interface") that was probably never shown where needed in Dashboard things.

You can force the page with ?nux=1 apparently. Note results:

โœ… https://we.phorge.it/maniphest/?nux=1 (you see welcome page)

๐Ÿ”ถ https://we.phorge.it/dashboard/?nux=1 (you see normal results)

๐Ÿ”ถ https://we.phorge.it/dashboard/panel/?nux=1

๐Ÿ”ถ https://we.phorge.it/portal/?nux=1

Current situation:

PageControllerresult of getSearchEngine()result of renderNewUserView()
/maniphest/?nux=1ManiphestTaskListControllerManiphestTaskSearchEnginesomething
/dashboard/panel/?nux=1PhabricatorDashboardPanelListControllerPhabricatorDashboardPanelSearchEnginenull

It seems the method getNewUserBody() should be defined in a "search engine". But note that for panels its defined in the controller, probably by mistake:

grep -R 'function getNewUserBody' .
./applications/files/query/PhabricatorFileSearchEngine.php:  protected function getNewUserBody() {
./applications/calendar/query/PhabricatorCalendarExportSearchEngine.php:  protected function getNewUserBody() { ๐Ÿ’š engine
./applications/slowvote/query/PhabricatorSlowvoteSearchEngine.php:  protected function getNewUserBody() { ๐Ÿ’š engine
./applications/herald/query/HeraldRuleSearchEngine.php:  protected function getNewUserBody() { ๐Ÿ’š engine
./applications/audit/query/PhabricatorCommitSearchEngine.php:  protected function getNewUserBody() { ๐Ÿ’š engine
./applications/ponder/query/PonderQuestionSearchEngine.php:  protected function getNewUserBody() { ๐Ÿ’š engine
./applications/passphrase/query/PassphraseCredentialSearchEngine.php:  protected function getNewUserBody() { ๐Ÿ’š engine
./applications/project/query/PhabricatorProjectSearchEngine.php:  protected function getNewUserBody() { ๐Ÿ’š engine
./applications/paste/query/PhabricatorPasteSearchEngine.php:  protected function getNewUserBody() { ๐Ÿ’š engine
./applications/differential/query/DifferentialRevisionSearchEngine.php:  protected function getNewUserBody() { ๐Ÿ’š engine
./applications/countdown/query/PhabricatorCountdownSearchEngine.php:  protected function getNewUserBody() { ๐Ÿ’š engine
./applications/phurl/query/PhabricatorPhurlURLSearchEngine.php:  protected function getNewUserBody() { ๐Ÿ’š engine
./applications/spaces/query/PhabricatorSpacesNamespaceSearchEngine.php:  protected function getNewUserBody() { ๐Ÿ’š engine
./applications/badges/query/PhabricatorBadgesSearchEngine.php:  protected function getNewUserBody() { ๐Ÿ’š engine
./applications/maniphest/query/ManiphestTaskSearchEngine.php:  protected function getNewUserBody() { ๐Ÿ’š engine
./applications/owners/query/PhabricatorOwnersPackageSearchEngine.php:  protected function getNewUserBody() { ๐Ÿ’š engine
./applications/macro/query/PhabricatorMacroSearchEngine.php:  protected function getNewUserBody() { ๐Ÿ’š engine
./applications/search/engine/PhabricatorApplicationSearchEngine.php:  protected function getNewUserBody() { ๐Ÿ’š engine
./applications/repository/query/PhabricatorRepositorySearchEngine.php:  protected function getNewUserBody() { ๐Ÿ’š engine
./applications/pholio/query/PholioMockSearchEngine.php:  protected function getNewUserBody() { ๐Ÿ’š engine
./applications/legalpad/query/LegalpadDocumentSearchEngine.php:  protected function getNewUserBody() { ๐Ÿ’š engine
./applications/dashboard/controller/panel/PhabricatorDashboardPanelListController.php:  protected function getNewUserBody() {  ๐Ÿ”ด controller

So we should probably move the method, from/to:

  • PhabricatorDashboardPanelListController
  • PhabricatorDashboardPanelSearchEngine

If I move that method there, gotcha, we catch this exception:

Call to undefined method PhabricatorDashboardPanelSearchEngine::getCurrentApplication()
Depth	Library	File	Where
10	phorge	applications/search/engine/PhabricatorApplicationSearchEngine.php : 1458	PhabricatorDashboardPanelSearchEngine::getNewUserBody()
9	phorge	applications/search/controller/PhabricatorApplicationSearchController.php : 789	PhabricatorApplicationSearchEngine::renderNewUserView()
8	phorge	applications/search/controller/PhabricatorApplicationSearchController.php : 261	PhabricatorApplicationSearchController::renderNewUserView()
7	phorge	applications/search/controller/PhabricatorApplicationSearchController.php : 91	PhabricatorApplicationSearchController::processSearchRequest()
6	phorge	aphront/AphrontController.php : 29	PhabricatorApplicationSearchController::processRequest()
5	phorge	aphront/AphrontController.php : 71	AphrontController::handleRequest()
4	phorge	applications/dashboard/controller/panel/PhabricatorDashboardPanelListController.php : 19	AphrontController::delegateToController()
3	phorge	aphront/configuration/AphrontApplicationConfiguration.php : 284	PhabricatorDashboardPanelListController::handleRequest()
2	phorge	aphront/configuration/AphrontApplicationConfiguration.php : 204	AphrontApplicationConfiguration::processRequest()
1		/var/www/phorge/webroot/index.php : 35	AphrontApplicationConfiguration::runHTTPRequest()

And that is the root problem of D25649.