2014-06-23 18:37:51 +02:00
|
|
|
<?php
|
|
|
|
|
|
|
|
final class PhabricatorConfigWelcomeController
|
|
|
|
extends PhabricatorConfigController {
|
|
|
|
|
|
|
|
public function processRequest() {
|
|
|
|
$request = $this->getRequest();
|
|
|
|
$viewer = $request->getUser();
|
|
|
|
|
|
|
|
$nav = $this->buildSideNavView();
|
|
|
|
$nav->selectFilter('welcome/');
|
|
|
|
|
|
|
|
$title = pht('Welcome');
|
|
|
|
|
|
|
|
$crumbs = $this
|
|
|
|
->buildApplicationCrumbs()
|
2015-03-03 00:42:25 +01:00
|
|
|
->setBorder(true)
|
2014-06-23 18:37:51 +02:00
|
|
|
->addTextCrumb(pht('Welcome'));
|
|
|
|
|
|
|
|
$nav->setCrumbs($crumbs);
|
|
|
|
$nav->appendChild($this->buildWelcomeScreen($request));
|
|
|
|
|
|
|
|
return $this->buildApplicationPage(
|
|
|
|
$nav,
|
|
|
|
array(
|
|
|
|
'title' => $title,
|
|
|
|
));
|
|
|
|
}
|
|
|
|
|
|
|
|
public function buildWelcomeScreen(AphrontRequest $request) {
|
|
|
|
$viewer = $request->getUser();
|
2015-03-03 00:42:25 +01:00
|
|
|
$this->requireResource('config-welcome-css');
|
2014-06-23 18:37:51 +02:00
|
|
|
|
|
|
|
$content = pht(
|
2015-03-03 00:42:25 +01:00
|
|
|
"==== Install Phabricator ====\n\n".
|
2014-06-23 18:37:51 +02:00
|
|
|
"You have successfully installed Phabricator. This screen will guide ".
|
2015-03-03 00:42:25 +01:00
|
|
|
"you through configuration and orientation. ".
|
|
|
|
"These steps are optional, and you can go through them in any order. ".
|
2014-06-23 18:37:51 +02:00
|
|
|
"If you want to get back to this screen later on, you can find it in ".
|
|
|
|
"the **Config** application under **Welcome Screen**.");
|
|
|
|
|
|
|
|
$setup = array();
|
|
|
|
|
|
|
|
$setup[] = $this->newItem(
|
|
|
|
$request,
|
2015-03-03 00:42:25 +01:00
|
|
|
'fa-check-square-o green',
|
2014-06-23 18:37:51 +02:00
|
|
|
$content);
|
|
|
|
|
2015-02-11 22:00:59 +01:00
|
|
|
$issues_resolved = !PhabricatorSetupCheck::getOpenSetupIssueKeys();
|
2014-06-23 18:37:51 +02:00
|
|
|
|
|
|
|
$setup_href = PhabricatorEnv::getURI('/config/issue/');
|
|
|
|
if ($issues_resolved) {
|
|
|
|
$content = pht(
|
2015-03-03 00:42:25 +01:00
|
|
|
"==== Resolve Setup Issues ====\n\n".
|
|
|
|
"You've resolved (or ignored) all outstanding setup issues. ".
|
2014-06-23 18:37:51 +02:00
|
|
|
"You can review issues in the **Config** application, under ".
|
|
|
|
"**[[ %s | Setup Issues ]]**.",
|
|
|
|
$setup_href);
|
2015-03-03 00:42:25 +01:00
|
|
|
$icon = 'fa-check-square-o green';
|
2014-06-23 18:37:51 +02:00
|
|
|
} else {
|
|
|
|
$content = pht(
|
2015-03-03 00:42:25 +01:00
|
|
|
"==== Resolve Setup Issues ====\n\n".
|
2014-06-23 18:37:51 +02:00
|
|
|
"You have some unresolved setup issues to take care of. Click ".
|
|
|
|
"the link in the yellow banner at the top of the screen to see ".
|
|
|
|
"them, or find them in the **Config** application under ".
|
2015-03-03 00:42:25 +01:00
|
|
|
"**[[ %s | Setup Issues ]]**. ".
|
2014-06-23 18:37:51 +02:00
|
|
|
"Although most setup issues should be resolved, sometimes an issue ".
|
2015-03-03 00:42:25 +01:00
|
|
|
"is not applicable to an install. ".
|
2014-06-23 18:37:51 +02:00
|
|
|
"If you don't intend to fix a setup issue (or don't want to fix ".
|
|
|
|
"it for now), you can use the \"Ignore\" action to mark it as ".
|
|
|
|
"something you don't plan to deal with.",
|
|
|
|
$setup_href);
|
2015-03-03 00:42:25 +01:00
|
|
|
$icon = 'fa-warning red';
|
2014-06-23 18:37:51 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
$setup[] = $this->newItem(
|
|
|
|
$request,
|
2015-03-03 00:42:25 +01:00
|
|
|
$icon,
|
2014-06-23 18:37:51 +02:00
|
|
|
$content);
|
|
|
|
|
|
|
|
$configs = id(new PhabricatorAuthProviderConfigQuery())
|
|
|
|
->setViewer(PhabricatorUser::getOmnipotentUser())
|
|
|
|
->execute();
|
|
|
|
|
|
|
|
$auth_href = PhabricatorEnv::getURI('/auth/');
|
|
|
|
$have_auth = (bool)$configs;
|
|
|
|
if ($have_auth) {
|
|
|
|
$content = pht(
|
2015-03-03 00:42:25 +01:00
|
|
|
"==== Login and Registration ====\n\n".
|
2014-06-23 18:37:51 +02:00
|
|
|
"You've configured at least one authentication provider, so users ".
|
2015-03-03 00:42:25 +01:00
|
|
|
"can register or log in. ".
|
2014-06-23 18:37:51 +02:00
|
|
|
"To configure more providers or adjust settings, use the ".
|
|
|
|
"**[[ %s | Auth Application ]]**.",
|
|
|
|
$auth_href);
|
2015-03-03 00:42:25 +01:00
|
|
|
$icon = 'fa-check-square-o green';
|
2014-06-23 18:37:51 +02:00
|
|
|
} else {
|
|
|
|
$content = pht(
|
2015-03-03 00:42:25 +01:00
|
|
|
"==== Login and Registration ====\n\n".
|
|
|
|
"You haven't configured any authentication providers yet. ".
|
2014-06-23 18:37:51 +02:00
|
|
|
"Authentication providers allow users to register accounts and ".
|
|
|
|
"log in to Phabricator. You can configure Phabricator to accept ".
|
2015-03-03 00:42:25 +01:00
|
|
|
"credentials like username and password, LDAP, or Google OAuth. ".
|
2014-06-23 18:37:51 +02:00
|
|
|
"You can configure authentication using the ".
|
|
|
|
"**[[ %s | Auth Application ]]**.",
|
|
|
|
$auth_href);
|
2015-03-03 00:42:25 +01:00
|
|
|
$icon = 'fa-warning red';
|
2014-06-23 18:37:51 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
$setup[] = $this->newItem(
|
|
|
|
$request,
|
2015-03-03 00:42:25 +01:00
|
|
|
$icon,
|
2014-06-23 18:37:51 +02:00
|
|
|
$content);
|
|
|
|
|
|
|
|
$config_href = PhabricatorEnv::getURI('/config/');
|
|
|
|
|
|
|
|
// Just load any config value at all; if one exists the install has figured
|
|
|
|
// out how to configure things.
|
|
|
|
$have_config = (bool)id(new PhabricatorConfigEntry())->loadAllWhere(
|
|
|
|
'1 = 1 LIMIT 1');
|
|
|
|
|
|
|
|
if ($have_config) {
|
|
|
|
$content = pht(
|
2015-03-03 00:42:25 +01:00
|
|
|
"==== Configure Phabricator Settings ====\n\n".
|
|
|
|
"You've configured at least one setting from the web interface. ".
|
2014-06-23 18:37:51 +02:00
|
|
|
"To configure more settings later, use the ".
|
|
|
|
"**[[ %s | Config Application ]]**.",
|
|
|
|
$config_href);
|
2015-03-03 00:42:25 +01:00
|
|
|
$icon = 'fa-check-square-o green';
|
2014-06-23 18:37:51 +02:00
|
|
|
} else {
|
|
|
|
$content = pht(
|
2015-03-03 00:42:25 +01:00
|
|
|
"==== Configure Phabricator Settings ====\n\n".
|
2014-06-23 18:37:51 +02:00
|
|
|
'Many aspects of Phabricator are configurable. To explore and '.
|
|
|
|
'adjust settings, use the **[[ %s | Config Application ]]**.',
|
|
|
|
$config_href);
|
2015-03-03 00:42:25 +01:00
|
|
|
$icon = 'fa-info-circle';
|
2014-06-23 18:37:51 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
$setup[] = $this->newItem(
|
|
|
|
$request,
|
2015-03-03 00:42:25 +01:00
|
|
|
$icon,
|
2014-06-23 18:37:51 +02:00
|
|
|
$content);
|
|
|
|
|
|
|
|
$settings_href = PhabricatorEnv::getURI('/settings/');
|
2014-06-23 18:40:15 +02:00
|
|
|
$prefs = $viewer->loadPreferences()->getPreferences();
|
|
|
|
$have_settings = !empty($prefs);
|
2014-06-23 18:37:51 +02:00
|
|
|
if ($have_settings) {
|
|
|
|
$content = pht(
|
2015-03-03 00:42:25 +01:00
|
|
|
"==== Adjust Account Settings ====\n\n".
|
|
|
|
"You've adjusted at least one setting on your account. ".
|
2014-06-23 18:37:51 +02:00
|
|
|
"To make more adjustments, visit the ".
|
|
|
|
"**[[ %s | Settings Application ]]**.",
|
|
|
|
$settings_href);
|
2015-03-03 00:42:25 +01:00
|
|
|
$icon = 'fa-check-square-o green';
|
2014-06-23 18:37:51 +02:00
|
|
|
} else {
|
|
|
|
$content = pht(
|
2015-03-03 00:42:25 +01:00
|
|
|
"==== Adjust Account Settings ====\n\n".
|
2014-06-23 18:37:51 +02:00
|
|
|
'You can configure settings for your account by clicking the '.
|
|
|
|
'wrench icon in the main menu bar, or visiting the '.
|
|
|
|
'**[[ %s | Settings Application ]]** directly.',
|
|
|
|
$settings_href);
|
2015-03-03 00:42:25 +01:00
|
|
|
$icon = 'fa-info-circle';
|
2014-06-23 18:37:51 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
$setup[] = $this->newItem(
|
|
|
|
$request,
|
2015-03-03 00:42:25 +01:00
|
|
|
$icon,
|
2014-06-23 18:37:51 +02:00
|
|
|
$content);
|
|
|
|
|
|
|
|
$dashboard_href = PhabricatorEnv::getURI('/dashboard/');
|
2014-06-24 00:14:38 +02:00
|
|
|
$have_dashboard = (bool)PhabricatorDashboardInstall::getDashboard(
|
|
|
|
$viewer,
|
2014-07-23 02:03:09 +02:00
|
|
|
PhabricatorHomeApplication::DASHBOARD_DEFAULT,
|
|
|
|
'PhabricatorHomeApplication');
|
2014-06-23 18:37:51 +02:00
|
|
|
if ($have_dashboard) {
|
|
|
|
$content = pht(
|
2015-03-03 00:42:25 +01:00
|
|
|
"==== Customize Home Page ====\n\n".
|
2014-06-23 18:37:51 +02:00
|
|
|
"You've installed a default dashboard to replace this welcome screen ".
|
2015-03-03 00:42:25 +01:00
|
|
|
"on the home page. ".
|
2014-06-23 18:37:51 +02:00
|
|
|
"You can still visit the welcome screen here at any time if you ".
|
2015-03-03 00:42:25 +01:00
|
|
|
"have steps you want to complete later, or if you feel lonely. ".
|
2014-06-23 18:37:51 +02:00
|
|
|
"If you've changed your mind about the dashboard you installed, ".
|
|
|
|
"you can install a different default dashboard with the ".
|
|
|
|
"**[[ %s | Dashboards Application ]]**.",
|
|
|
|
$dashboard_href);
|
2015-03-03 00:42:25 +01:00
|
|
|
$icon = 'fa-check-square-o green';
|
2014-06-23 18:37:51 +02:00
|
|
|
} else {
|
|
|
|
$content = pht(
|
2015-03-03 00:42:25 +01:00
|
|
|
"==== Customize Home Page ====\n\n".
|
2014-06-23 18:37:51 +02:00
|
|
|
"When you're done setting things up, you can create a custom ".
|
|
|
|
"dashboard and install it. Your dashboard will replace this ".
|
2015-03-03 00:42:25 +01:00
|
|
|
"welcome screen on the Phabricator home page. ".
|
2014-06-23 18:37:51 +02:00
|
|
|
"Dashboards can show users the information that's most important to ".
|
|
|
|
"your organization. You can configure them to display things like: ".
|
|
|
|
"a custom welcome message, a feed of recent activity, or a list of ".
|
2015-03-03 00:42:25 +01:00
|
|
|
"open tasks, waiting reviews, recent commits, and so on. ".
|
2014-06-23 18:37:51 +02:00
|
|
|
"After you install a default dashboard, it will replace this page. ".
|
|
|
|
"You can find this page later by visiting the **Config** ".
|
2015-03-03 00:42:25 +01:00
|
|
|
"application, under **Welcome Page**. ".
|
2014-06-23 18:37:51 +02:00
|
|
|
"To get started building a dashboard, use the ".
|
2015-03-03 00:42:25 +01:00
|
|
|
"**[[ %s | Dashboards Application ]]**. ",
|
2014-06-23 18:37:51 +02:00
|
|
|
$dashboard_href);
|
2015-03-03 00:42:25 +01:00
|
|
|
$icon = 'fa-info-circle';
|
2014-06-23 18:37:51 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
$setup[] = $this->newItem(
|
|
|
|
$request,
|
2015-03-03 00:42:25 +01:00
|
|
|
$icon,
|
2014-06-23 18:37:51 +02:00
|
|
|
$content);
|
|
|
|
|
|
|
|
$apps_href = PhabricatorEnv::getURI('/applications/');
|
|
|
|
$content = pht(
|
2015-03-03 00:42:25 +01:00
|
|
|
"==== Explore Applications ====\n\n".
|
2014-06-23 18:37:51 +02:00
|
|
|
"Phabricator is a large suite of applications that work together to ".
|
|
|
|
"help you develop software, manage tasks, and communicate. A few of ".
|
|
|
|
"the most commonly used applications are pinned to the left navigation ".
|
|
|
|
"bar by default.\n\n".
|
|
|
|
"To explore all of the Phabricator applications, adjust settings, or ".
|
|
|
|
"uninstall applications you don't plan to use, visit the ".
|
|
|
|
"**[[ %s | Applications Application ]]**. You can also click the ".
|
|
|
|
"**Applications** button in the left navigation menu, or search for an ".
|
2015-03-03 00:42:25 +01:00
|
|
|
"application by name in the main menu bar. ",
|
2014-06-23 18:37:51 +02:00
|
|
|
$apps_href);
|
|
|
|
|
|
|
|
$explore = array();
|
|
|
|
$explore[] = $this->newItem(
|
|
|
|
$request,
|
2015-03-03 00:42:25 +01:00
|
|
|
'fa-globe',
|
2014-06-23 18:37:51 +02:00
|
|
|
$content);
|
|
|
|
|
|
|
|
$support_href = PhabricatorEnv::getDoclink('Give Feedback! Get Support!');
|
|
|
|
$content = pht(
|
2015-03-03 00:42:25 +01:00
|
|
|
"==== Need Help with Setup? ====\n\n".
|
2014-06-23 18:37:51 +02:00
|
|
|
'Having trouble getting something set up? See '.
|
|
|
|
'**[[ %s | Give Feedback! Get Support! ]]** for ways to get in touch '.
|
2014-07-07 10:49:10 +02:00
|
|
|
'to get answers to questions, report bugs, and request features.',
|
2014-06-23 18:37:51 +02:00
|
|
|
$support_href);
|
|
|
|
|
|
|
|
$explore[] = $this->newItem(
|
|
|
|
$request,
|
2015-03-03 00:42:25 +01:00
|
|
|
'fa-life-ring',
|
2014-06-23 18:37:51 +02:00
|
|
|
$content);
|
|
|
|
|
|
|
|
$differential_uri = PhabricatorEnv::getURI('/differential/');
|
|
|
|
$differential_create_uri = PhabricatorEnv::getURI(
|
|
|
|
'/differential/diff/create/');
|
|
|
|
$differential_all_uri = PhabricatorEnv::getURI('/differential/query/all/');
|
|
|
|
|
|
|
|
$differential_user_guide = PhabricatorEnv::getDoclink(
|
|
|
|
'Differential User Guide');
|
|
|
|
$differential_vs_uri = PhabricatorEnv::getDoclink(
|
|
|
|
'User Guide: Review vs Audit');
|
|
|
|
|
|
|
|
$quick = array();
|
|
|
|
$quick[] = $this->newItem(
|
|
|
|
$request,
|
2015-03-03 00:42:25 +01:00
|
|
|
'fa-gear',
|
2014-06-23 18:37:51 +02:00
|
|
|
pht(
|
2015-03-03 00:42:25 +01:00
|
|
|
"==== Quick Start: Code Review ====\n\n".
|
|
|
|
"Review code with **[[ %s | Differential ]]**. ".
|
2014-06-23 18:37:51 +02:00
|
|
|
"Engineers can use Differential to share, review, and approve ".
|
2015-03-03 00:42:25 +01:00
|
|
|
"changes to source code. ".
|
2014-06-23 18:37:51 +02:00
|
|
|
"To get started with code review:\n\n".
|
|
|
|
" - **[[ %s | Create a Revision ]]** //(Copy and paste a diff from ".
|
|
|
|
" the command line into the web UI to quickly get a feel for ".
|
|
|
|
" review.)//\n".
|
|
|
|
" - **[[ %s | View All Revisions ]]**\n\n".
|
|
|
|
"For more information, see these articles in the documentation:\n\n".
|
|
|
|
" - **[[ %s | Differential User Guide ]]**, for a general overview ".
|
|
|
|
" of Differential.\n".
|
|
|
|
" - **[[ %s | User Guide: Review vs Audit ]]**, for a discussion ".
|
|
|
|
" of different code review workflows.",
|
|
|
|
$differential_uri,
|
|
|
|
$differential_create_uri,
|
|
|
|
$differential_all_uri,
|
|
|
|
$differential_user_guide,
|
|
|
|
$differential_vs_uri));
|
|
|
|
|
|
|
|
|
|
|
|
$maniphest_uri = PhabricatorEnv::getURI('/maniphest/');
|
|
|
|
$maniphest_create_uri = PhabricatorEnv::getURI('/maniphest/task/create/');
|
|
|
|
$maniphest_all_uri = PhabricatorEnv::getURI('/maniphest/query/all/');
|
|
|
|
$quick[] = $this->newItem(
|
|
|
|
$request,
|
2015-03-03 00:42:25 +01:00
|
|
|
'fa-anchor',
|
2014-06-23 18:37:51 +02:00
|
|
|
pht(
|
2015-03-03 00:42:25 +01:00
|
|
|
"==== Quick Start: Bugs and Tasks ====\n\n".
|
2014-06-23 18:37:51 +02:00
|
|
|
"Track bugs and tasks in Phabricator with ".
|
2015-03-03 00:42:25 +01:00
|
|
|
"**[[ %s | Maniphest ]]**. ".
|
2014-06-23 18:37:51 +02:00
|
|
|
"Users in all roles can use Maniphest to manage current and ".
|
2015-03-03 00:42:25 +01:00
|
|
|
"planned work and to track bugs and issues. ".
|
2014-06-23 18:37:51 +02:00
|
|
|
"To get started with bugs and tasks:\n\n".
|
|
|
|
" - **[[ %s | Create a Task ]]**\n".
|
|
|
|
" - **[[ %s | View All Tasks ]]**\n",
|
|
|
|
$maniphest_uri,
|
|
|
|
$maniphest_create_uri,
|
|
|
|
$maniphest_all_uri));
|
|
|
|
|
|
|
|
|
|
|
|
$pholio_uri = PhabricatorEnv::getURI('/pholio/');
|
|
|
|
$pholio_create_uri = PhabricatorEnv::getURI('/pholio/new/');
|
|
|
|
$pholio_all_uri = PhabricatorEnv::getURI('/pholio/query/all/');
|
|
|
|
|
|
|
|
$quick[] = $this->newItem(
|
|
|
|
$request,
|
2015-03-03 00:42:25 +01:00
|
|
|
'fa-camera-retro',
|
2014-06-23 18:37:51 +02:00
|
|
|
pht(
|
2015-03-03 00:42:25 +01:00
|
|
|
"==== Quick Start: Design Review ====\n\n".
|
|
|
|
"Review proposed designs with **[[ %s | Pholio ]]**. ".
|
2014-06-23 18:37:51 +02:00
|
|
|
"Designers can use Pholio to share images of what they're working on ".
|
2015-03-03 00:42:25 +01:00
|
|
|
"and show off things they've made. ".
|
2014-06-23 18:37:51 +02:00
|
|
|
"To get started with design review:\n\n".
|
|
|
|
" - **[[ %s | Create a Mock ]]**\n".
|
|
|
|
" - **[[ %s | View All Mocks ]]**",
|
|
|
|
$pholio_uri,
|
|
|
|
$pholio_create_uri,
|
|
|
|
$pholio_all_uri));
|
|
|
|
|
|
|
|
|
|
|
|
$diffusion_uri = PhabricatorEnv::getURI('/diffusion/');
|
|
|
|
$diffusion_create_uri = PhabricatorEnv::getURI('/diffusion/create/');
|
|
|
|
$diffusion_all_uri = PhabricatorEnv::getURI('/diffusion/query/all/');
|
|
|
|
|
|
|
|
$diffusion_user_guide = PhabricatorEnv::getDoclink('Diffusion User Guide');
|
|
|
|
$diffusion_setup_guide = PhabricatorEnv::getDoclink(
|
|
|
|
'Diffusion User Guide: Repository Hosting');
|
|
|
|
|
|
|
|
$quick[] = $this->newItem(
|
|
|
|
$request,
|
2015-03-03 00:42:25 +01:00
|
|
|
'fa-code',
|
2014-06-23 18:37:51 +02:00
|
|
|
pht(
|
2015-03-03 00:42:25 +01:00
|
|
|
"==== Quick Start: Repositories ====\n\n".
|
2014-06-23 18:37:51 +02:00
|
|
|
"Manage and browse source code repositories with ".
|
2015-03-03 00:42:25 +01:00
|
|
|
"**[[ %s | Diffusion ]]**. ".
|
|
|
|
"Engineers can use Diffusion to browse and audit source code. ".
|
2014-06-23 18:37:51 +02:00
|
|
|
"You can configure Phabricator to host repositories, or have it ".
|
|
|
|
"track existing repositories hosted elsewhere (like GitHub, ".
|
2015-03-03 00:42:25 +01:00
|
|
|
"Bitbucket, or an internal server). ".
|
2014-06-23 18:37:51 +02:00
|
|
|
"To get started with repositories:\n\n".
|
|
|
|
" - **[[ %s | Create a New Repository ]]**\n".
|
|
|
|
" - **[[ %s | View All Repositories ]]**\n\n".
|
|
|
|
"For more information, see these articles in the documentation:\n\n".
|
|
|
|
" - **[[ %s | Diffusion User Guide ]]**, for a general overview of ".
|
|
|
|
" Diffusion.\n".
|
|
|
|
" - **[[ %s | Diffusion User Guide: Repository Hosting ]]**, ".
|
|
|
|
" for instructions on configuring repository hosting.\n\n".
|
|
|
|
"Phabricator supports Git, Mercurial and Subversion.",
|
|
|
|
$diffusion_uri,
|
|
|
|
$diffusion_create_uri,
|
|
|
|
$diffusion_all_uri,
|
|
|
|
$diffusion_user_guide,
|
|
|
|
$diffusion_setup_guide));
|
|
|
|
|
2015-03-03 00:42:25 +01:00
|
|
|
$header = id(new PHUIHeaderView())
|
|
|
|
->setHeader(pht('Welcome to Phabricator'));
|
|
|
|
|
|
|
|
$setup_header = id(new PHUIHeaderView())
|
|
|
|
->setHeader(pht('Setup and Configuration'))
|
|
|
|
->setBleedHeader(true);
|
|
|
|
|
|
|
|
$explore_header = id(new PHUIHeaderView())
|
|
|
|
->setHeader(pht('Explore Phabricator'))
|
|
|
|
->setBleedHeader(true);
|
|
|
|
|
|
|
|
$quick_header = id(new PHUIHeaderView())
|
|
|
|
->setHeader(pht('Quick Start Guides'))
|
|
|
|
->setBleedHeader(true);
|
|
|
|
|
|
|
|
return id(new PHUIDocumentView())
|
|
|
|
->setHeader($header)
|
|
|
|
->setFluid(true)
|
|
|
|
->setFontKit(PHUIDocumentView::FONT_SOURCE_SANS)
|
|
|
|
// ->setSidenav($sidenav)
|
|
|
|
->appendChild($setup_header)
|
|
|
|
->appendChild($setup)
|
|
|
|
->appendChild($explore_header)
|
|
|
|
->appendChild($explore)
|
|
|
|
->appendChild($quick_header)
|
|
|
|
->appendChild($quick);
|
2014-06-23 18:37:51 +02:00
|
|
|
}
|
|
|
|
|
2015-03-03 00:42:25 +01:00
|
|
|
private function newItem(AphrontRequest $request, $icon, $content) {
|
2014-06-24 18:39:32 +02:00
|
|
|
$viewer = $request->getUser();
|
2014-06-23 18:37:51 +02:00
|
|
|
|
2015-03-03 00:42:25 +01:00
|
|
|
$icon = id(new PHUIIconView())
|
|
|
|
->setIconFont($icon.' fa-2x');
|
2014-06-23 18:37:51 +02:00
|
|
|
|
|
|
|
$content = PhabricatorMarkupEngine::renderOneObject(
|
|
|
|
id(new PhabricatorMarkupOneOff())->setContent($content),
|
|
|
|
'default',
|
|
|
|
$viewer);
|
|
|
|
|
2015-03-03 00:42:25 +01:00
|
|
|
$icon = phutil_tag(
|
|
|
|
'div',
|
|
|
|
array(
|
|
|
|
'class' => 'config-welcome-icon',
|
|
|
|
),
|
|
|
|
$icon);
|
|
|
|
|
2014-06-23 18:37:51 +02:00
|
|
|
$content = phutil_tag(
|
|
|
|
'div',
|
|
|
|
array(
|
2015-03-03 00:42:25 +01:00
|
|
|
'class' => 'config-welcome-content',
|
2014-06-23 18:37:51 +02:00
|
|
|
),
|
|
|
|
$content);
|
|
|
|
|
2015-03-03 00:42:25 +01:00
|
|
|
$view = phutil_tag(
|
|
|
|
'div',
|
|
|
|
array(
|
|
|
|
'class' => 'config-welcome-box grouped',
|
|
|
|
),
|
|
|
|
array(
|
|
|
|
$icon,
|
|
|
|
$content,
|
|
|
|
));
|
2014-06-24 18:39:32 +02:00
|
|
|
|
2015-03-03 00:42:25 +01:00
|
|
|
return $view;
|
2014-06-23 18:37:51 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
}
|