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:
Page | Controller | result of getSearchEngine() | result of renderNewUserView() |
---|---|---|---|
/maniphest/?nux=1 | ManiphestTaskListController | ManiphestTaskSearchEngine | something |
/dashboard/panel/?nux=1 | PhabricatorDashboardPanelListController | PhabricatorDashboardPanelSearchEngine | null |
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.