Page Menu
Home
Phabricator
Search
Configure Global Search
Log In
Files
F15490257
D20371.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
24 KB
Referenced Files
None
Subscribers
None
D20371.diff
View Options
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
Details
Attached
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)
Attached To
Mode
D20371: Mostly replace the old panel "Edit" controller with the new "Editpro" controller
Attached
Detach File
Event Timeline
Log In to Comment