Page MenuHomePhabricator

D20371.diff
No OneTemporary

D20371.diff

diff --git a/src/__phutil_library_map__.php b/src/__phutil_library_map__.php
--- a/src/__phutil_library_map__.php
+++ b/src/__phutil_library_map__.php
@@ -2933,7 +2933,6 @@
'PhabricatorDashboardPanelEditConduitAPIMethod' => 'applications/dashboard/conduit/PhabricatorDashboardPanelEditConduitAPIMethod.php',
'PhabricatorDashboardPanelEditController' => 'applications/dashboard/controller/panel/PhabricatorDashboardPanelEditController.php',
'PhabricatorDashboardPanelEditEngine' => 'applications/dashboard/editor/PhabricatorDashboardPanelEditEngine.php',
- 'PhabricatorDashboardPanelEditproController' => 'applications/dashboard/controller/panel/PhabricatorDashboardPanelEditproController.php',
'PhabricatorDashboardPanelHasDashboardEdgeType' => 'applications/dashboard/edge/PhabricatorDashboardPanelHasDashboardEdgeType.php',
'PhabricatorDashboardPanelListController' => 'applications/dashboard/controller/panel/PhabricatorDashboardPanelListController.php',
'PhabricatorDashboardPanelNameTransaction' => 'applications/dashboard/xaction/panel/PhabricatorDashboardPanelNameTransaction.php',
@@ -8915,7 +8914,6 @@
'PhabricatorDashboardPanelEditConduitAPIMethod' => 'PhabricatorEditEngineAPIMethod',
'PhabricatorDashboardPanelEditController' => 'PhabricatorDashboardController',
'PhabricatorDashboardPanelEditEngine' => 'PhabricatorEditEngine',
- 'PhabricatorDashboardPanelEditproController' => 'PhabricatorDashboardController',
'PhabricatorDashboardPanelHasDashboardEdgeType' => 'PhabricatorEdgeType',
'PhabricatorDashboardPanelListController' => 'PhabricatorDashboardController',
'PhabricatorDashboardPanelNameTransaction' => 'PhabricatorDashboardPanelTransactionType',
diff --git a/src/applications/dashboard/application/PhabricatorDashboardApplication.php b/src/applications/dashboard/application/PhabricatorDashboardApplication.php
--- a/src/applications/dashboard/application/PhabricatorDashboardApplication.php
+++ b/src/applications/dashboard/application/PhabricatorDashboardApplication.php
@@ -57,10 +57,8 @@
'PhabricatorDashboardQueryPanelInstallController',
'(?:query/(?P<queryKey>[^/]+)/)?'
=> 'PhabricatorDashboardPanelListController',
- 'create/' => 'PhabricatorDashboardPanelEditController',
- $this->getEditRoutePattern('editpro/')
- => 'PhabricatorDashboardPanelEditproController',
- 'edit/(?:(?P<id>\d+)/)?' => 'PhabricatorDashboardPanelEditController',
+ $this->getEditRoutePattern('edit/')
+ => 'PhabricatorDashboardPanelEditController',
'render/(?P<id>\d+)/' => 'PhabricatorDashboardPanelRenderController',
'archive/(?P<id>\d+)/'
=> 'PhabricatorDashboardPanelArchiveController',
diff --git a/src/applications/dashboard/controller/panel/PhabricatorDashboardPanelEditController.php b/src/applications/dashboard/controller/panel/PhabricatorDashboardPanelEditController.php
--- a/src/applications/dashboard/controller/panel/PhabricatorDashboardPanelEditController.php
+++ b/src/applications/dashboard/controller/panel/PhabricatorDashboardPanelEditController.php
@@ -4,351 +4,90 @@
extends PhabricatorDashboardController {
public function handleRequest(AphrontRequest $request) {
- $viewer = $request->getViewer();
- $id = $request->getURIData('id');
-
- // If the user is trying to create a panel directly on a dashboard, make
- // sure they have permission to see and edit the dashboard.
+ $viewer = $this->getViewer();
- $dashboard_id = $request->getInt('dashboardID');
- $dashboard = null;
- if ($dashboard_id) {
- $dashboard = id(new PhabricatorDashboardQuery())
- ->setViewer($viewer)
- ->withIDs(array($dashboard_id))
- ->requireCapabilities(
- array(
- PhabricatorPolicyCapability::CAN_VIEW,
- PhabricatorPolicyCapability::CAN_EDIT,
- ))
- ->executeOne();
- if (!$dashboard) {
- return new Aphront404Response();
- }
-
- $manage_uri = $this->getApplicationURI('arrange/'.$dashboard_id.'/');
- }
+ $engine = id(new PhabricatorDashboardPanelEditEngine())
+ ->setController($this);
- if ($id) {
- $is_create = false;
-
- if ($dashboard) {
- $capabilities = array(
- PhabricatorPolicyCapability::CAN_VIEW,
- );
+ $id = $request->getURIData('id');
+ if (!$id) {
+ $dashboard_id = $request->getStr('dashboardID');
+ $column_id = $request->getStr('columnID');
+
+ if (strlen($dashboard_id)) {
+ $dashboard = id(new PhabricatorDashboardQuery())
+ ->setViewer($viewer)
+ ->withIDs(array($dashboard_id))
+ ->requireCapabilities(
+ array(
+ PhabricatorPolicyCapability::CAN_VIEW,
+ PhabricatorPolicyCapability::CAN_EDIT,
+ ))
+ ->executeOne();
+ if (!$dashboard) {
+ return new Aphront404Response();
+ }
} else {
- $capabilities = array(
- PhabricatorPolicyCapability::CAN_VIEW,
- PhabricatorPolicyCapability::CAN_EDIT,
- );
+ $dashboard = null;
}
- $panel = id(new PhabricatorDashboardPanelQuery())
- ->setViewer($viewer)
- ->withIDs(array($id))
- ->requireCapabilities($capabilities)
- ->executeOne();
- if (!$panel) {
- return new Aphront404Response();
- }
-
- } else {
- $is_create = true;
-
- $panel = PhabricatorDashboardPanel::initializeNewPanel($viewer);
- $types = PhabricatorDashboardPanelType::getAllPanelTypes();
- $type = $request->getStr('type');
- if (empty($types[$type])) {
- return $this->processPanelTypeRequest($request);
- }
-
- $panel->setPanelType($type);
- }
-
- if ($is_create) {
- $title = pht('Create New Panel');
- $button = pht('Create Panel');
- $header_icon = 'fa-plus-square';
if ($dashboard) {
- $cancel_uri = $manage_uri;
+ $cancel_uri = $dashboard->getURI();
} else {
$cancel_uri = $this->getApplicationURI('panel/');
}
- } else {
- $title = pht('Edit Panel: %s', $panel->getName());
- $button = pht('Save Panel');
- $header_icon = 'fa-pencil';
- if ($dashboard) {
- $cancel_uri = $manage_uri;
- } else {
- $cancel_uri = '/'.$panel->getMonogram();
- }
- }
-
- $v_name = $panel->getName();
- $e_name = true;
-
- $field_list = PhabricatorCustomField::getObjectFields(
- $panel,
- PhabricatorCustomField::ROLE_EDIT);
- $field_list
- ->setViewer($viewer)
- ->readFieldsFromStorage($panel);
-
- if ($is_create && !$request->isFormPost()) {
- $panel->requireImplementation()->initializeFieldsFromRequest(
- $panel,
- $field_list,
- $request);
- }
-
- $validation_exception = null;
-
- // NOTE: We require 'edit' to distinguish between the "Choose a Type"
- // and "Create a Panel" dialogs.
-
- if ($request->isFormPost() && $request->getBool('edit')) {
- $v_name = $request->getStr('name');
- $v_view_policy = $request->getStr('viewPolicy');
- $v_edit_policy = $request->getStr('editPolicy');
-
- $type_name = PhabricatorDashboardPanelNameTransaction::TRANSACTIONTYPE;
- $type_view_policy = PhabricatorTransactions::TYPE_VIEW_POLICY;
- $type_edit_policy = PhabricatorTransactions::TYPE_EDIT_POLICY;
-
- $xactions = array();
-
- $xactions[] = id(new PhabricatorDashboardPanelTransaction())
- ->setTransactionType($type_name)
- ->setNewValue($v_name);
-
- $xactions[] = id(new PhabricatorDashboardPanelTransaction())
- ->setTransactionType($type_view_policy)
- ->setNewValue($v_view_policy);
-
- $xactions[] = id(new PhabricatorDashboardPanelTransaction())
- ->setTransactionType($type_edit_policy)
- ->setNewValue($v_edit_policy);
-
- $field_xactions = $field_list->buildFieldTransactionsFromRequest(
- new PhabricatorDashboardPanelTransaction(),
- $request);
- $xactions = array_merge($xactions, $field_xactions);
- try {
- $editor = id(new PhabricatorDashboardPanelTransactionEditor())
- ->setActor($viewer)
- ->setContinueOnNoEffect(true)
- ->setContentSourceFromRequest($request)
- ->applyTransactions($panel, $xactions);
-
- // If we're creating a panel directly on a dashboard, add it now.
- if ($dashboard && $is_create) {
- PhabricatorDashboardTransactionEditor::addPanelToDashboard(
- $viewer,
- PhabricatorContentSource::newFromRequest($request),
- $panel,
- $dashboard,
- $request->getInt('column', 0));
- }
-
- if ($dashboard) {
- $done_uri = $manage_uri;
- } else {
- $done_uri = '/'.$panel->getMonogram();
- }
-
- return id(new AphrontRedirectResponse())->setURI($done_uri);
- } catch (PhabricatorApplicationTransactionValidationException $ex) {
- $validation_exception = $ex;
-
- $e_name = $validation_exception->getShortMessage($type_name);
-
- $panel->setViewPolicy($v_view_policy);
- $panel->setEditPolicy($v_edit_policy);
+ $panel_type = $request->getStr('panelType');
+ $panel_types = PhabricatorDashboardPanelType::getAllPanelTypes();
+ if (empty($panel_types[$panel_type])) {
+ return $this->buildPanelTypeResponse($cancel_uri);
}
- }
-
- // NOTE: We're setting the submit URI explicitly because we need to edit
- // a different panel if we just cloned the original panel.
- if ($is_create) {
- $submit_uri = $this->getApplicationURI('panel/edit/');
- } else {
- $submit_uri = $this->getApplicationURI('panel/edit/'.$panel->getID().'/');
- }
-
- $policies = id(new PhabricatorPolicyQuery())
- ->setViewer($viewer)
- ->setObject($panel)
- ->execute();
-
- $form = id(new AphrontFormView())
- ->setUser($viewer)
- ->setAction($submit_uri)
- ->addHiddenInput('edit', true)
- ->addHiddenInput('dashboardID', $request->getInt('dashboardID'))
- ->addHiddenInput('column', $request->getInt('column'))
- ->appendChild(
- id(new AphrontFormTextControl())
- ->setLabel(pht('Name'))
- ->setName('name')
- ->setValue($v_name)
- ->setError($e_name));
-
- if (!$request->isAjax() || !$is_create) {
- $form
- ->appendChild(
- id(new AphrontFormPolicyControl())
- ->setName('viewPolicy')
- ->setPolicyObject($panel)
- ->setCapability(PhabricatorPolicyCapability::CAN_VIEW)
- ->setPolicies($policies))
- ->appendChild(
- id(new AphrontFormPolicyControl())
- ->setName('editPolicy')
- ->setPolicyObject($panel)
- ->setCapability(PhabricatorPolicyCapability::CAN_EDIT)
- ->setPolicies($policies));
- }
-
- $field_list->appendFieldsToForm($form);
-
- $crumbs = $this->buildApplicationCrumbs();
- $crumbs->addTextCrumb(
- pht('Panels'),
- $this->getApplicationURI('panel/'));
- if ($is_create) {
- $crumbs->addTextCrumb(pht('New Panel'));
- $form->addHiddenInput('type', $panel->getPanelType());
- } else {
- $crumbs->addTextCrumb(
- $panel->getMonogram(),
- '/'.$panel->getMonogram());
- $crumbs->addTextCrumb(pht('Edit'));
- }
- $crumbs->setBorder(true);
- if ($request->isAjax()) {
- return $this->newDialog()
- ->setTitle($title)
- ->setSubmitURI($submit_uri)
- ->setWidth(AphrontDialogView::WIDTH_FORM)
- ->setValidationException($validation_exception)
- ->appendChild($form->buildLayoutView())
- ->addCancelButton($cancel_uri)
- ->addSubmitButton($button);
- } else {
- $form
- ->appendChild(
- id(new AphrontFormSubmitControl())
- ->setValue($button)
- ->addCancelButton($cancel_uri));
+ $engine
+ ->addContextParameter('panelType', $panel_type)
+ ->addContextParameter('dashboardID', $dashboard_id)
+ ->addContextParameter('columnID', $column_id)
+ ->setPanelType($panel_type)
+ ->setDashboard($dashboard)
+ ->setColumnID($column_id);
}
- $box = id(new PHUIObjectBoxView())
- ->setHeaderText(pht('Panel'))
- ->setValidationException($validation_exception)
- ->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)
- ->setForm($form);
-
- $header = id(new PHUIHeaderView())
- ->setHeader($title)
- ->setHeaderIcon($header_icon);
-
- $view = id(new PHUITwoColumnView())
- ->setHeader($header)
- ->setFooter($box);
-
- return $this->newPage()
- ->setTitle($title)
- ->setCrumbs($crumbs)
- ->appendChild($view);
+ return $engine->buildResponse();
}
- private function processPanelTypeRequest(AphrontRequest $request) {
- $viewer = $request->getUser();
+ private function buildPanelTypeResponse($cancel_uri) {
+ $viewer = $this->getViewer();
+ $request = $this->getRequest();
- $types = PhabricatorDashboardPanelType::getAllPanelTypes();
+ $base_uri = $request->getRequestURI();
+ $base_uri = new PhutilURI($base_uri);
- $v_type = null;
- $errors = array();
- if ($request->isFormPost()) {
- $v_type = $request->getStr('type');
- if (!isset($types[$v_type])) {
- $errors[] = pht('You must select a type of panel to create.');
- }
- }
-
- $cancel_uri = $this->getApplicationURI('panel/');
-
- if (!$v_type) {
- $v_type = key($types);
- }
+ $menu = id(new PHUIObjectItemListView())
+ ->setViewer($viewer)
+ ->setFlush(true)
+ ->setBig(true);
- $panel_types = id(new AphrontFormRadioButtonControl())
- ->setName('type')
- ->setValue($v_type);
+ $panel_types = PhabricatorDashboardPanelType::getAllPanelTypes();
+ foreach ($panel_types as $panel_type) {
+ $item = id(new PHUIObjectItemView())
+ ->setClickable(true)
+ ->setImageIcon($panel_type->getIcon())
+ ->setHeader($panel_type->getPanelTypeName())
+ ->addAttribute($panel_type->getPanelTypeDescription());
- foreach ($types as $key => $type) {
- $panel_types->addButton(
- $key,
- $type->getPanelTypeName(),
- $type->getPanelTypeDescription());
- }
+ $type_uri = id(clone $base_uri)
+ ->replaceQueryParam('panelType', $panel_type->getPanelTypeKey());
- $form = id(new AphrontFormView())
- ->setUser($viewer)
- ->addHiddenInput('dashboardID', $request->getInt('dashboardID'))
- ->addHiddenInput('column', $request->getInt('column'))
- ->appendRemarkupInstructions(
- pht(
- 'Choose the type of dashboard panel to create:'))
- ->appendChild($panel_types);
+ $item->setHref($type_uri);
- if ($request->isAjax()) {
- return $this->newDialog()
- ->setTitle(pht('Add New Panel'))
- ->setWidth(AphrontDialogView::WIDTH_FORM)
- ->setErrors($errors)
- ->appendChild($form->buildLayoutView())
- ->addCancelbutton($cancel_uri)
- ->addSubmitButton(pht('Continue'));
- } else {
- $form->appendChild(
- id(new AphrontFormSubmitControl())
- ->setValue(pht('Continue'))
- ->addCancelButton($cancel_uri));
+ $menu->addItem($item);
}
- $title = pht('Create Dashboard Panel');
- $header_icon = 'fa-plus-square';
-
- $crumbs = $this->buildApplicationCrumbs();
- $crumbs->addTextCrumb(
- pht('Panels'),
- $this->getApplicationURI('panel/'));
- $crumbs->addTextCrumb(pht('New Panel'));
- $crumbs->setBorder(true);
-
- $box = id(new PHUIObjectBoxView())
- ->setHeaderText(pht('Panel'))
- ->setFormErrors($errors)
- ->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)
- ->setForm($form);
-
- $header = id(new PHUIHeaderView())
- ->setHeader($title)
- ->setHeaderIcon($header_icon);
-
- $view = id(new PHUITwoColumnView())
- ->setHeader($header)
- ->setFooter($box);
-
- return $this->newPage()
- ->setTitle($title)
- ->setCrumbs($crumbs)
- ->appendChild($view);
+ return $this->newDialog()
+ ->setTitle(pht('Choose Panel Type'))
+ ->setWidth(AphrontDialogView::WIDTH_FORM)
+ ->appendChild($menu)
+ ->addCancelButton($cancel_uri);
}
-
}
diff --git a/src/applications/dashboard/controller/panel/PhabricatorDashboardPanelEditproController.php b/src/applications/dashboard/controller/panel/PhabricatorDashboardPanelEditproController.php
deleted file mode 100644
--- a/src/applications/dashboard/controller/panel/PhabricatorDashboardPanelEditproController.php
+++ /dev/null
@@ -1,105 +0,0 @@
-<?php
-
-final class PhabricatorDashboardPanelEditproController
- extends PhabricatorDashboardController {
-
- public function handleRequest(AphrontRequest $request) {
- $engine = id(new PhabricatorDashboardPanelEditEngine())
- ->setController($this);
-
- $id = $request->getURIData('id');
- if (!$id) {
- $list_uri = $this->getApplicationURI('panel/');
-
- $panel_type = $request->getStr('panelType');
- $panel_types = PhabricatorDashboardPanelType::getAllPanelTypes();
- if (empty($panel_types[$panel_type])) {
- return $this->buildPanelTypeResponse($list_uri);
- }
-
- $engine
- ->addContextParameter('panelType', $panel_type)
- ->setPanelType($panel_type);
- }
-
- return $engine->buildResponse();
- }
-
- private function buildPanelTypeResponse($cancel_uri) {
- $panel_types = PhabricatorDashboardPanelType::getAllPanelTypes();
-
- $viewer = $this->getViewer();
- $request = $this->getRequest();
-
- $e_type = null;
- $errors = array();
- if ($request->isFormPost()) {
- $e_type = pht('Required');
- $errors[] = pht(
- 'To create a new dashboard panel, you must select a panel type.');
- }
-
- $type_control = id(new AphrontFormRadioButtonControl())
- ->setLabel(pht('Panel Type'))
- ->setName('panelType')
- ->setError($e_type);
-
- foreach ($panel_types as $key => $type) {
- $type_control->addButton(
- $key,
- $type->getPanelTypeName(),
- $type->getPanelTypeDescription());
- }
-
- $form = id(new AphrontFormView())
- ->setUser($viewer)
- ->appendRemarkupInstructions(
- pht('Choose the type of dashboard panel to create:'))
- ->appendChild($type_control);
-
- if ($request->isAjax()) {
- return $this->newDialog()
- ->setTitle(pht('Add New Panel'))
- ->setWidth(AphrontDialogView::WIDTH_FORM)
- ->setErrors($errors)
- ->appendForm($form)
- ->addCancelButton($cancel_uri)
- ->addSubmitButton(pht('Continue'));
- }
-
- $form->appendChild(
- id(new AphrontFormSubmitControl())
- ->setValue(pht('Continue'))
- ->addCancelButton($cancel_uri));
-
- $title = pht('Create Dashboard Panel');
- $header_icon = 'fa-plus-square';
-
- $crumbs = $this->buildApplicationCrumbs();
- $crumbs->addTextCrumb(
- pht('Panels'),
- $this->getApplicationURI('panel/'));
- $crumbs->addTextCrumb(pht('New Panel'));
- $crumbs->setBorder(true);
-
- $box = id(new PHUIObjectBoxView())
- ->setHeaderText(pht('Panel'))
- ->setFormErrors($errors)
- ->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)
- ->setForm($form);
-
- $header = id(new PHUIHeaderView())
- ->setHeader($title)
- ->setHeaderIcon($header_icon);
-
- $view = id(new PHUITwoColumnView())
- ->setHeader($header)
- ->setFooter($box);
-
- return $this->newPage()
- ->setTitle($title)
- ->setCrumbs($crumbs)
- ->appendChild($view);
- }
-
-}
diff --git a/src/applications/dashboard/controller/panel/PhabricatorDashboardPanelListController.php b/src/applications/dashboard/controller/panel/PhabricatorDashboardPanelListController.php
--- a/src/applications/dashboard/controller/panel/PhabricatorDashboardPanelListController.php
+++ b/src/applications/dashboard/controller/panel/PhabricatorDashboardPanelListController.php
@@ -43,7 +43,7 @@
id(new PHUIListItemView())
->setIcon('fa-plus-square')
->setName(pht('Create Panel'))
- ->setHref($this->getApplicationURI().'panel/create/'));
+ ->setHref($this->getApplicationURI().'panel/edit/'));
return $crumbs;
}
@@ -52,7 +52,7 @@
$create_button = id(new PHUIButtonView())
->setTag('a')
->setText(pht('Create a Panel'))
- ->setHref('/dashboard/panel/create/')
+ ->setHref('/dashboard/panel/edit/')
->setColor(PHUIButtonView::GREEN);
$icon = $this->getApplication()->getIcon();
diff --git a/src/applications/dashboard/editor/PhabricatorDashboardPanelEditEngine.php b/src/applications/dashboard/editor/PhabricatorDashboardPanelEditEngine.php
--- a/src/applications/dashboard/editor/PhabricatorDashboardPanelEditEngine.php
+++ b/src/applications/dashboard/editor/PhabricatorDashboardPanelEditEngine.php
@@ -6,6 +6,8 @@
const ENGINECONST = 'dashboard.panel';
private $panelType;
+ private $dashboard;
+ private $columnID;
public function setPanelType($panel_type) {
$this->panelType = $panel_type;
@@ -16,6 +18,24 @@
return $this->panelType;
}
+ public function setDashboard(PhabricatorDashboard $dashboard) {
+ $this->dashboard = $dashboard;
+ return $this;
+ }
+
+ public function getDashboard() {
+ return $this->dashboard;
+ }
+
+ public function setColumnID($column_id) {
+ $this->columnID = $column_id;
+ return $this;
+ }
+
+ public function getColumnID() {
+ return $this->columnID;
+ }
+
public function isEngineConfigurable() {
return false;
}
@@ -63,6 +83,24 @@
return pht('Create Panel');
}
+ protected function getObjectCreateCancelURI($object) {
+ $dashboard = $this->getDashboard();
+ if ($dashboard) {
+ return $dashboard->getURI();
+ }
+
+ return parent::getObjectCreateCancelURI($object);
+ }
+
+ public function getEffectiveObjectEditDoneURI($object) {
+ $dashboard = $this->getDashboard();
+ if ($dashboard) {
+ return $dashboard->getURI();
+ }
+
+ return parent::getEffectiveObjectDoneURI($object);
+ }
+
protected function getObjectEditTitleText($object) {
return pht('Edit Panel: %s', $object->getName());
}
@@ -83,6 +121,22 @@
return $object->getURI();
}
+ protected function didApplyTransactions($object, array $xactions) {
+ $dashboard = $this->getDashboard();
+ if ($dashboard) {
+ $viewer = $this->getViewer();
+ $controller = $this->getController();
+ $request = $controller->getRequest();
+
+ PhabricatorDashboardTransactionEditor::addPanelToDashboard(
+ $viewer,
+ PhabricatorContentSource::newFromRequest($request),
+ $object,
+ $dashboard,
+ (int)$this->getColumnID());
+ }
+ }
+
protected function buildCustomEditFields($object) {
return array(
id(new PhabricatorTextEditField())
diff --git a/src/applications/dashboard/engine/PhabricatorDashboardRenderingEngine.php b/src/applications/dashboard/engine/PhabricatorDashboardRenderingEngine.php
--- a/src/applications/dashboard/engine/PhabricatorDashboardRenderingEngine.php
+++ b/src/applications/dashboard/engine/PhabricatorDashboardRenderingEngine.php
@@ -112,12 +112,12 @@
private function renderAddPanelUI($column) {
$dashboard_id = $this->dashboard->getID();
- $create_uri = id(new PhutilURI('/dashboard/panel/create/'))
+ $create_uri = id(new PhutilURI('/dashboard/panel/edit/'))
->replaceQueryParam('dashboardID', $dashboard_id)
- ->replaceQueryParam('column', $column);
+ ->replaceQueryParam('columnID', $column);
$add_uri = id(new PhutilURI('/dashboard/addpanel/'.$dashboard_id.'/'))
- ->replaceQueryParam('column', $column);
+ ->replaceQueryParam('columnID', $column);
$create_button = id(new PHUIButtonView())
->setTag('a')
diff --git a/src/applications/dashboard/paneltype/PhabricatorDashboardTabsPanelType.php b/src/applications/dashboard/paneltype/PhabricatorDashboardTabsPanelType.php
--- a/src/applications/dashboard/paneltype/PhabricatorDashboardTabsPanelType.php
+++ b/src/applications/dashboard/paneltype/PhabricatorDashboardTabsPanelType.php
@@ -12,7 +12,7 @@
}
public function getIcon() {
- return 'fa-window-maximize';
+ return 'fa-columns';
}
public function getPanelTypeDescription() {
diff --git a/src/applications/dashboard/paneltype/PhabricatorDashboardTextPanelType.php b/src/applications/dashboard/paneltype/PhabricatorDashboardTextPanelType.php
--- a/src/applications/dashboard/paneltype/PhabricatorDashboardTextPanelType.php
+++ b/src/applications/dashboard/paneltype/PhabricatorDashboardTextPanelType.php
@@ -12,13 +12,13 @@
}
public function getIcon() {
- return 'fa-paragraph';
+ return 'fa-file-text-o';
}
public function getPanelTypeDescription() {
return pht(
- 'Add some static text to the dashboard. This can be used to '.
- 'provide instructions or context.');
+ 'Add a text panel to the dashboard to provide instructions or '.
+ 'context.');
}
public function getFieldSpecifications() {

File Metadata

Mime Type
text/plain
Expires
Sat, Apr 12, 3:44 PM (1 w, 4 d ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
7682462
Default Alt Text
D20371.diff (24 KB)

Event Timeline