Page MenuHomePhabricator

D20822.id49642.diff
No OneTemporary

D20822.id49642.diff

diff --git a/src/applications/fact/application/PhabricatorFactApplication.php b/src/applications/fact/application/PhabricatorFactApplication.php
--- a/src/applications/fact/application/PhabricatorFactApplication.php
+++ b/src/applications/fact/application/PhabricatorFactApplication.php
@@ -22,15 +22,10 @@
return self::GROUP_UTILITIES;
}
- public function isPrototype() {
- return true;
- }
-
public function getRoutes() {
return array(
'/fact/' => array(
'' => 'PhabricatorFactHomeController',
- 'chart/' => 'PhabricatorFactChartController',
'chart/(?P<chartKey>[^/]+)/(?:(?P<mode>draw)/)?' =>
'PhabricatorFactChartController',
'object/(?<phid>[^/]+)/' => 'PhabricatorFactObjectController',
diff --git a/src/applications/fact/controller/PhabricatorFactChartController.php b/src/applications/fact/controller/PhabricatorFactChartController.php
--- a/src/applications/fact/controller/PhabricatorFactChartController.php
+++ b/src/applications/fact/controller/PhabricatorFactChartController.php
@@ -1,13 +1,14 @@
<?php
-final class PhabricatorFactChartController extends PhabricatorFactController {
+final class PhabricatorFactChartController
+ extends PhabricatorFactController {
public function handleRequest(AphrontRequest $request) {
$viewer = $request->getViewer();
$chart_key = $request->getURIData('chartKey');
- if ($chart_key === null) {
- return $this->newDemoChart();
+ if (!$chart_key) {
+ return new Aphront404Response();
}
$engine = id(new PhabricatorChartRenderingEngine())
@@ -24,21 +25,28 @@
$mode = $request->getURIData('mode');
$is_draw_mode = ($mode === 'draw');
- // TODO: For now, always pull the data. We'll throw it away if we're just
- // drawing the frame, but this makes errors easier to debug.
- $chart_data = $engine->newChartData();
+ $want_data = $is_draw_mode;
+
+ // In developer mode, always pull the data in the main request. We'll
+ // throw it away if we're just drawing the chart frame, but this currently
+ // makes errors quite a bit easier to debug.
+ if (PhabricatorEnv::getEnvConfig('phabricator.developer-mode')) {
+ $want_data = true;
+ }
- if ($is_draw_mode) {
- return id(new AphrontAjaxResponse())->setContent($chart_data);
+ if ($want_data) {
+ $chart_data = $engine->newChartData();
+ if ($is_draw_mode) {
+ return id(new AphrontAjaxResponse())->setContent($chart_data);
+ }
}
$chart_view = $engine->newChartView();
- $tabular_view = $engine->newTabularView();
- return $this->newChartResponse($chart_view, $tabular_view);
+ return $this->newChartResponse($chart_view);
}
- private function newChartResponse($chart_view, $tabular_view) {
+ private function newChartResponse($chart_view) {
$box = id(new PHUIObjectBoxView())
->setHeaderText(pht('Chart'))
->appendChild($chart_view);
@@ -55,18 +63,7 @@
->appendChild(
array(
$box,
- $tabular_view,
));
}
- private function newDemoChart() {
- $viewer = $this->getViewer();
-
- $chart = id(new PhabricatorDemoChartEngine())
- ->setViewer($viewer)
- ->newStoredChart();
-
- return id(new AphrontRedirectResponse())->setURI($chart->getURI());
- }
-
}
diff --git a/src/applications/fact/controller/PhabricatorFactHomeController.php b/src/applications/fact/controller/PhabricatorFactHomeController.php
--- a/src/applications/fact/controller/PhabricatorFactHomeController.php
+++ b/src/applications/fact/controller/PhabricatorFactHomeController.php
@@ -1,59 +1,20 @@
<?php
-final class PhabricatorFactHomeController extends PhabricatorFactController {
+final class PhabricatorFactHomeController
+ extends PhabricatorFactController {
public function shouldAllowPublic() {
return true;
}
public function handleRequest(AphrontRequest $request) {
- $viewer = $request->getViewer();
+ $viewer = $this->getViewer();
- if ($request->isFormPost()) {
- $uri = new PhutilURI('/fact/chart/');
- $uri->replaceQueryParam('y1', $request->getStr('y1'));
- return id(new AphrontRedirectResponse())->setURI($uri);
- }
+ $chart = id(new PhabricatorDemoChartEngine())
+ ->setViewer($viewer)
+ ->newStoredChart();
- $chart_form = $this->buildChartForm();
-
- $crumbs = $this->buildApplicationCrumbs();
- $crumbs->addTextCrumb(pht('Home'));
-
- $title = pht('Facts');
-
- return $this->newPage()
- ->setTitle($title)
- ->setCrumbs($crumbs)
- ->appendChild(
- array(
- $chart_form,
- ));
- }
-
- private function buildChartForm() {
- $request = $this->getRequest();
- $viewer = $request->getUser();
-
- $specs = PhabricatorFact::getAllFacts();
- $options = mpull($specs, 'getName', 'getKey');
-
- $form = id(new AphrontFormView())
- ->setUser($viewer)
- ->appendChild(
- id(new AphrontFormSelectControl())
- ->setLabel(pht('Y-Axis'))
- ->setName('y1')
- ->setOptions($options))
- ->appendChild(
- id(new AphrontFormSubmitControl())
- ->setValue(pht('Plot Chart')));
-
- $panel = new PHUIObjectBoxView();
- $panel->setForm($form);
- $panel->setHeaderText(pht('Plot Chart'));
-
- return $panel;
+ return id(new AphrontRedirectResponse())->setURI($chart->getURI());
}
}
diff --git a/src/applications/fact/engine/PhabricatorDemoChartEngine.php b/src/applications/fact/engine/PhabricatorDemoChartEngine.php
--- a/src/applications/fact/engine/PhabricatorDemoChartEngine.php
+++ b/src/applications/fact/engine/PhabricatorDemoChartEngine.php
@@ -17,6 +17,7 @@
array('shift', 256));
$function->getFunctionLabel()
+ ->setKey('cos-x')
->setName(pht('cos(x)'))
->setColor('rgba(0, 200, 0, 1)')
->setFillColor('rgba(0, 200, 0, 0.15)');
@@ -27,6 +28,7 @@
array('constant', 345));
$function->getFunctionLabel()
+ ->setKey('constant-345')
->setName(pht('constant(345)'))
->setColor('rgba(0, 0, 200, 1)')
->setFillColor('rgba(0, 0, 200, 0.15)');
diff --git a/src/applications/maniphest/controller/ManiphestReportController.php b/src/applications/maniphest/controller/ManiphestReportController.php
--- a/src/applications/maniphest/controller/ManiphestReportController.php
+++ b/src/applications/maniphest/controller/ManiphestReportController.php
@@ -35,8 +35,12 @@
$nav->addLabel(pht('Open Tasks'));
$nav->addFilter('user', pht('By User'));
$nav->addFilter('project', pht('By Project'));
- $nav->addLabel(pht('Burnup'));
- $nav->addFilter('burn', pht('Burnup Rate'));
+
+ $class = 'PhabricatorFactApplication';
+ if (PhabricatorApplication::isClassInstalledForViewer($class, $viewer)) {
+ $nav->addLabel(pht('Burnup'));
+ $nav->addFilter('burn', pht('Burnup Rate'));
+ }
$this->view = $nav->selectFilter($this->view, 'user');
diff --git a/src/applications/project/menuitem/PhabricatorProjectReportsProfileMenuItem.php b/src/applications/project/menuitem/PhabricatorProjectReportsProfileMenuItem.php
--- a/src/applications/project/menuitem/PhabricatorProjectReportsProfileMenuItem.php
+++ b/src/applications/project/menuitem/PhabricatorProjectReportsProfileMenuItem.php
@@ -34,6 +34,11 @@
return false;
}
+ $class = 'PhabricatorFactApplication';
+ if (!PhabricatorApplication::isClassInstalledForViewer($class, $viewer)) {
+ return false;
+ }
+
return true;
}

File Metadata

Mime Type
text/plain
Expires
Tue, Mar 18, 4:00 PM (6 d, 22 h ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
7710097
Default Alt Text
D20822.id49642.diff (7 KB)

Event Timeline