Page MenuHomestyx hydra

No OneTemporary

diff --git a/src/applications/dashboard/controller/PhabricatorDashboardMovePanelController.php b/src/applications/dashboard/controller/PhabricatorDashboardMovePanelController.php
index 4adbcf721f..a0bb30046b 100644
--- a/src/applications/dashboard/controller/PhabricatorDashboardMovePanelController.php
+++ b/src/applications/dashboard/controller/PhabricatorDashboardMovePanelController.php
@@ -1,74 +1,77 @@
<?php
final class PhabricatorDashboardMovePanelController
extends PhabricatorDashboardController {
private $id;
public function willProcessRequest(array $data) {
$this->id = $data['id'];
}
public function processRequest() {
$request = $this->getRequest();
$viewer = $request->getUser();
$column_id = $request->getStr('columnID');
$panel_phid = $request->getStr('objectPHID');
$after_phid = $request->getStr('afterPHID');
$before_phid = $request->getStr('beforePHID');
$dashboard = id(new PhabricatorDashboardQuery())
->setViewer($viewer)
->withIDs(array($this->id))
->needPanels(true)
->requireCapabilities(
array(
PhabricatorPolicyCapability::CAN_VIEW,
PhabricatorPolicyCapability::CAN_EDIT,
))
->executeOne();
if (!$dashboard) {
return new Aphront404Response();
}
$panels = mpull($dashboard->getPanels(), null, 'getPHID');
$panel = idx($panels, $panel_phid);
if (!$panel) {
return new Aphront404Response();
}
$layout_config = $dashboard->getLayoutConfigObject();
$layout_config->removePanel($panel_phid);
$panel_location_grid = $layout_config->getPanelLocations();
- $panel_columns = idx($panel_location_grid, $column_id, array());
- if ($panel_columns) {
+ $column_phids = idx($panel_location_grid, $column_id, array());
+ $column_phids = array_values($column_phids);
+ if ($column_phids) {
$insert_at = 0;
- $new_panel_columns = $panel_columns;
- foreach ($panel_columns as $index => $curr_panel_phid) {
- if ($curr_panel_phid === $before_phid) {
- $insert_at = max($index - 1, 0);
+ foreach ($column_phids as $index => $phid) {
+ if ($phid === $before_phid) {
+ $insert_at = $index;
break;
}
- if ($curr_panel_phid === $after_phid) {
- $insert_at = $index;
+ if ($phid === $after_phid) {
+ $insert_at = $index + 1;
break;
}
}
+
+ $new_column_phids = $column_phids;
array_splice(
- $new_panel_columns,
+ $new_column_phids,
$insert_at,
0,
array($panel_phid));
} else {
- $new_panel_columns = array(0 => $panel_phid);
+ $new_column_phids = array(0 => $panel_phid);
}
- $panel_location_grid[$column_id] = $new_panel_columns;
+
+ $panel_location_grid[$column_id] = $new_column_phids;
$layout_config->setPanelLocations($panel_location_grid);
$dashboard->setLayoutConfigFromObject($layout_config);
$dashboard->save();
return id(new AphrontAjaxResponse())->setContent('');
}
}

File Metadata

Mime Type
text/x-diff
Expires
Tue, Jun 10, 9:02 AM (22 h, 14 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
140318
Default Alt Text
(3 KB)

Event Timeline