mirror of
https://we.phorge.it/source/phorge.git
synced 2024-12-24 14:30:56 +01:00
Remove Copy Dashboard
Summary: Ref T10390. This removes the "Copy Dashboard" feature, which was more of a crutch to assist in the complexity of building and maintaining dashboards. I think we're close enough now that removing this and adding in some simpler edit dialogs should negate any benefit to keeping this around. Also removed an un-used "Uninstall Dashboard" dialog. Test Plan: Visit manage, edit, no longer see option to copy dashboard. grep /dashboards/ for "copy" and remove all traces. Add some panels to a dashboard I own. Reviewers: epriestley Reviewed By: epriestley Subscribers: Korvin Maniphest Tasks: T10390 Differential Revision: https://secure.phabricator.com/D17338
This commit is contained in:
parent
5a850ab235
commit
554c4f10c5
9 changed files with 2 additions and 326 deletions
|
@ -2466,7 +2466,6 @@ phutil_register_library_map(array(
|
||||||
'PhabricatorDashboardArchiveController' => 'applications/dashboard/controller/PhabricatorDashboardArchiveController.php',
|
'PhabricatorDashboardArchiveController' => 'applications/dashboard/controller/PhabricatorDashboardArchiveController.php',
|
||||||
'PhabricatorDashboardArrangeController' => 'applications/dashboard/controller/PhabricatorDashboardArrangeController.php',
|
'PhabricatorDashboardArrangeController' => 'applications/dashboard/controller/PhabricatorDashboardArrangeController.php',
|
||||||
'PhabricatorDashboardController' => 'applications/dashboard/controller/PhabricatorDashboardController.php',
|
'PhabricatorDashboardController' => 'applications/dashboard/controller/PhabricatorDashboardController.php',
|
||||||
'PhabricatorDashboardCopyController' => 'applications/dashboard/controller/PhabricatorDashboardCopyController.php',
|
|
||||||
'PhabricatorDashboardDAO' => 'applications/dashboard/storage/PhabricatorDashboardDAO.php',
|
'PhabricatorDashboardDAO' => 'applications/dashboard/storage/PhabricatorDashboardDAO.php',
|
||||||
'PhabricatorDashboardDashboardHasPanelEdgeType' => 'applications/dashboard/edge/PhabricatorDashboardDashboardHasPanelEdgeType.php',
|
'PhabricatorDashboardDashboardHasPanelEdgeType' => 'applications/dashboard/edge/PhabricatorDashboardDashboardHasPanelEdgeType.php',
|
||||||
'PhabricatorDashboardDashboardPHIDType' => 'applications/dashboard/phid/PhabricatorDashboardDashboardPHIDType.php',
|
'PhabricatorDashboardDashboardPHIDType' => 'applications/dashboard/phid/PhabricatorDashboardDashboardPHIDType.php',
|
||||||
|
@ -2518,7 +2517,6 @@ phutil_register_library_map(array(
|
||||||
'PhabricatorDashboardTransaction' => 'applications/dashboard/storage/PhabricatorDashboardTransaction.php',
|
'PhabricatorDashboardTransaction' => 'applications/dashboard/storage/PhabricatorDashboardTransaction.php',
|
||||||
'PhabricatorDashboardTransactionEditor' => 'applications/dashboard/editor/PhabricatorDashboardTransactionEditor.php',
|
'PhabricatorDashboardTransactionEditor' => 'applications/dashboard/editor/PhabricatorDashboardTransactionEditor.php',
|
||||||
'PhabricatorDashboardTransactionQuery' => 'applications/dashboard/query/PhabricatorDashboardTransactionQuery.php',
|
'PhabricatorDashboardTransactionQuery' => 'applications/dashboard/query/PhabricatorDashboardTransactionQuery.php',
|
||||||
'PhabricatorDashboardUninstallController' => 'applications/dashboard/controller/PhabricatorDashboardUninstallController.php',
|
|
||||||
'PhabricatorDashboardViewController' => 'applications/dashboard/controller/PhabricatorDashboardViewController.php',
|
'PhabricatorDashboardViewController' => 'applications/dashboard/controller/PhabricatorDashboardViewController.php',
|
||||||
'PhabricatorDataCacheSpec' => 'applications/cache/spec/PhabricatorDataCacheSpec.php',
|
'PhabricatorDataCacheSpec' => 'applications/cache/spec/PhabricatorDataCacheSpec.php',
|
||||||
'PhabricatorDataNotAttachedException' => 'infrastructure/storage/lisk/PhabricatorDataNotAttachedException.php',
|
'PhabricatorDataNotAttachedException' => 'infrastructure/storage/lisk/PhabricatorDataNotAttachedException.php',
|
||||||
|
@ -7476,7 +7474,6 @@ phutil_register_library_map(array(
|
||||||
'PhabricatorDashboardArchiveController' => 'PhabricatorDashboardController',
|
'PhabricatorDashboardArchiveController' => 'PhabricatorDashboardController',
|
||||||
'PhabricatorDashboardArrangeController' => 'PhabricatorDashboardProfileController',
|
'PhabricatorDashboardArrangeController' => 'PhabricatorDashboardProfileController',
|
||||||
'PhabricatorDashboardController' => 'PhabricatorController',
|
'PhabricatorDashboardController' => 'PhabricatorController',
|
||||||
'PhabricatorDashboardCopyController' => 'PhabricatorDashboardController',
|
|
||||||
'PhabricatorDashboardDAO' => 'PhabricatorLiskDAO',
|
'PhabricatorDashboardDAO' => 'PhabricatorLiskDAO',
|
||||||
'PhabricatorDashboardDashboardHasPanelEdgeType' => 'PhabricatorEdgeType',
|
'PhabricatorDashboardDashboardHasPanelEdgeType' => 'PhabricatorEdgeType',
|
||||||
'PhabricatorDashboardDashboardPHIDType' => 'PhabricatorPHIDType',
|
'PhabricatorDashboardDashboardPHIDType' => 'PhabricatorPHIDType',
|
||||||
|
@ -7539,7 +7536,6 @@ phutil_register_library_map(array(
|
||||||
'PhabricatorDashboardTransaction' => 'PhabricatorApplicationTransaction',
|
'PhabricatorDashboardTransaction' => 'PhabricatorApplicationTransaction',
|
||||||
'PhabricatorDashboardTransactionEditor' => 'PhabricatorApplicationTransactionEditor',
|
'PhabricatorDashboardTransactionEditor' => 'PhabricatorApplicationTransactionEditor',
|
||||||
'PhabricatorDashboardTransactionQuery' => 'PhabricatorApplicationTransactionQuery',
|
'PhabricatorDashboardTransactionQuery' => 'PhabricatorApplicationTransactionQuery',
|
||||||
'PhabricatorDashboardUninstallController' => 'PhabricatorDashboardController',
|
|
||||||
'PhabricatorDashboardViewController' => 'PhabricatorDashboardProfileController',
|
'PhabricatorDashboardViewController' => 'PhabricatorDashboardProfileController',
|
||||||
'PhabricatorDataCacheSpec' => 'PhabricatorCacheSpec',
|
'PhabricatorDataCacheSpec' => 'PhabricatorCacheSpec',
|
||||||
'PhabricatorDataNotAttachedException' => 'Exception',
|
'PhabricatorDataNotAttachedException' => 'Exception',
|
||||||
|
|
|
@ -29,9 +29,7 @@ final class PhabricatorDashboardApplication extends PhabricatorApplication {
|
||||||
'manage/(?P<id>\d+)/' => 'PhabricatorDashboardManageController',
|
'manage/(?P<id>\d+)/' => 'PhabricatorDashboardManageController',
|
||||||
'arrange/(?P<id>\d+)/' => 'PhabricatorDashboardArrangeController',
|
'arrange/(?P<id>\d+)/' => 'PhabricatorDashboardArrangeController',
|
||||||
'create/' => 'PhabricatorDashboardEditController',
|
'create/' => 'PhabricatorDashboardEditController',
|
||||||
'copy/(?:(?P<id>\d+)/)?' => 'PhabricatorDashboardCopyController',
|
|
||||||
'edit/(?:(?P<id>\d+)/)?' => 'PhabricatorDashboardEditController',
|
'edit/(?:(?P<id>\d+)/)?' => 'PhabricatorDashboardEditController',
|
||||||
'uninstall/(?P<id>\d+)/' => 'PhabricatorDashboardUninstallController',
|
|
||||||
'addpanel/(?P<id>\d+)/' => 'PhabricatorDashboardAddPanelController',
|
'addpanel/(?P<id>\d+)/' => 'PhabricatorDashboardAddPanelController',
|
||||||
'movepanel/(?P<id>\d+)/' => 'PhabricatorDashboardMovePanelController',
|
'movepanel/(?P<id>\d+)/' => 'PhabricatorDashboardMovePanelController',
|
||||||
'removepanel/(?P<id>\d+)/'
|
'removepanel/(?P<id>\d+)/'
|
||||||
|
|
|
@ -34,8 +34,7 @@ final class PhabricatorDashboardArrangeController
|
||||||
$info_view = null;
|
$info_view = null;
|
||||||
if (!$can_edit) {
|
if (!$can_edit) {
|
||||||
$no_edit = pht(
|
$no_edit = pht(
|
||||||
'You do not have permission to edit this dashboard. If you want to '.
|
'You do not have permission to edit this dashboard.');
|
||||||
'make changes, make a copy first.');
|
|
||||||
|
|
||||||
$info_view = id(new PHUIInfoView())
|
$info_view = id(new PHUIInfoView())
|
||||||
->setSeverity(PHUIInfoView::SEVERITY_NOTICE)
|
->setSeverity(PHUIInfoView::SEVERITY_NOTICE)
|
||||||
|
|
|
@ -1,62 +0,0 @@
|
||||||
<?php
|
|
||||||
|
|
||||||
final class PhabricatorDashboardCopyController
|
|
||||||
extends PhabricatorDashboardController {
|
|
||||||
|
|
||||||
public function handleRequest(AphrontRequest $request) {
|
|
||||||
$viewer = $request->getViewer();
|
|
||||||
$id = $request->getURIData('id');
|
|
||||||
|
|
||||||
$dashboard = id(new PhabricatorDashboardQuery())
|
|
||||||
->setViewer($viewer)
|
|
||||||
->withIDs(array($id))
|
|
||||||
->needPanels(true)
|
|
||||||
->executeOne();
|
|
||||||
if (!$dashboard) {
|
|
||||||
return new Aphront404Response();
|
|
||||||
}
|
|
||||||
|
|
||||||
$cancel_uri = $this->getApplicationURI('manage/'.$dashboard->getID().'/');
|
|
||||||
|
|
||||||
if ($request->isFormPost()) {
|
|
||||||
|
|
||||||
$copy = PhabricatorDashboard::initializeNewDashboard($viewer);
|
|
||||||
$copy = PhabricatorDashboard::copyDashboard($copy, $dashboard);
|
|
||||||
|
|
||||||
$copy->setName(pht('Copy of %s', $copy->getName()));
|
|
||||||
|
|
||||||
// Set up all the edges for the new dashboard.
|
|
||||||
|
|
||||||
$xactions = array();
|
|
||||||
$xactions[] = id(new PhabricatorDashboardTransaction())
|
|
||||||
->setTransactionType(PhabricatorTransactions::TYPE_EDGE)
|
|
||||||
->setMetadataValue(
|
|
||||||
'edge:type',
|
|
||||||
PhabricatorDashboardDashboardHasPanelEdgeType::EDGECONST)
|
|
||||||
->setNewValue(
|
|
||||||
array(
|
|
||||||
'=' => array_fuse($dashboard->getPanelPHIDs()),
|
|
||||||
));
|
|
||||||
|
|
||||||
$editor = id(new PhabricatorDashboardTransactionEditor())
|
|
||||||
->setActor($viewer)
|
|
||||||
->setContentSourceFromRequest($request)
|
|
||||||
->setContinueOnMissingFields(true)
|
|
||||||
->setContinueOnNoEffect(true)
|
|
||||||
->applyTransactions($copy, $xactions);
|
|
||||||
|
|
||||||
$cancel_uri = $this->getApplicationURI('edit/'.$copy->getID().'/');
|
|
||||||
return id(new AphrontRedirectResponse())->setURI($cancel_uri);
|
|
||||||
}
|
|
||||||
|
|
||||||
return $this->newDialog()
|
|
||||||
->setTitle(pht('Copy Dashboard'))
|
|
||||||
->appendParagraph(
|
|
||||||
pht(
|
|
||||||
'Create a copy of the dashboard "%s"?',
|
|
||||||
phutil_tag('strong', array(), $dashboard->getName())))
|
|
||||||
->addCancelButton($cancel_uri)
|
|
||||||
->addSubmitButton(pht('Create Copy'));
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -47,8 +47,7 @@ final class PhabricatorDashboardManageController
|
||||||
$info_view = null;
|
$info_view = null;
|
||||||
if (!$can_edit) {
|
if (!$can_edit) {
|
||||||
$no_edit = pht(
|
$no_edit = pht(
|
||||||
'You do not have permission to edit this dashboard. If you want to '.
|
'You do not have permission to edit this dashboard.');
|
||||||
'make changes, make a copy first.');
|
|
||||||
|
|
||||||
$info_view = id(new PHUIInfoView())
|
$info_view = id(new PHUIInfoView())
|
||||||
->setSeverity(PHUIInfoView::SEVERITY_NOTICE)
|
->setSeverity(PHUIInfoView::SEVERITY_NOTICE)
|
||||||
|
@ -110,13 +109,6 @@ final class PhabricatorDashboardManageController
|
||||||
->setWorkflow($can_edit));
|
->setWorkflow($can_edit));
|
||||||
}
|
}
|
||||||
|
|
||||||
$curtain->addAction(
|
|
||||||
id(new PhabricatorActionView())
|
|
||||||
->setName(pht('Copy Dashboard'))
|
|
||||||
->setIcon('fa-files-o')
|
|
||||||
->setHref($this->getApplicationURI("copy/{$id}/"))
|
|
||||||
->setWorkflow(true));
|
|
||||||
|
|
||||||
return $curtain;
|
return $curtain;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -52,25 +52,6 @@ final class PhabricatorDashboardPanelEditController
|
||||||
return new Aphront404Response();
|
return new Aphront404Response();
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($dashboard) {
|
|
||||||
$can_edit = PhabricatorPolicyFilter::hasCapability(
|
|
||||||
$viewer,
|
|
||||||
$panel,
|
|
||||||
PhabricatorPolicyCapability::CAN_EDIT);
|
|
||||||
if (!$can_edit) {
|
|
||||||
if ($request->isFormPost() && $request->getBool('copy')) {
|
|
||||||
$panel = $this->copyPanel(
|
|
||||||
$request,
|
|
||||||
$dashboard,
|
|
||||||
$panel);
|
|
||||||
} else {
|
|
||||||
return $this->processPanelCloneRequest(
|
|
||||||
$request,
|
|
||||||
$dashboard,
|
|
||||||
$panel);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
$is_create = true;
|
$is_create = true;
|
||||||
|
|
||||||
|
@ -365,79 +346,5 @@ final class PhabricatorDashboardPanelEditController
|
||||||
->appendChild($view);
|
->appendChild($view);
|
||||||
}
|
}
|
||||||
|
|
||||||
private function processPanelCloneRequest(
|
|
||||||
AphrontRequest $request,
|
|
||||||
PhabricatorDashboard $dashboard,
|
|
||||||
PhabricatorDashboardPanel $panel) {
|
|
||||||
|
|
||||||
$viewer = $request->getUser();
|
|
||||||
|
|
||||||
$manage_uri = $this->getApplicationURI('arrange/'.$dashboard->getID().'/');
|
|
||||||
|
|
||||||
return $this->newDialog()
|
|
||||||
->setTitle(pht('Copy Panel?'))
|
|
||||||
->addHiddenInput('copy', true)
|
|
||||||
->addHiddenInput('dashboardID', $request->getInt('dashboardID'))
|
|
||||||
->addHiddenInput('column', $request->getInt('column'))
|
|
||||||
->appendParagraph(
|
|
||||||
pht(
|
|
||||||
'You do not have permission to edit this dashboard panel, but you '.
|
|
||||||
'can make a copy and edit that instead. If you choose to copy the '.
|
|
||||||
'panel, the original will be replaced with the new copy on this '.
|
|
||||||
'dashboard.'))
|
|
||||||
->appendParagraph(
|
|
||||||
pht(
|
|
||||||
'Do you want to make a copy of this panel?'))
|
|
||||||
->addCancelButton($manage_uri)
|
|
||||||
->addSubmitButton(pht('Copy Panel'));
|
|
||||||
}
|
|
||||||
|
|
||||||
private function copyPanel(
|
|
||||||
AphrontRequest $request,
|
|
||||||
PhabricatorDashboard $dashboard,
|
|
||||||
PhabricatorDashboardPanel $panel) {
|
|
||||||
|
|
||||||
$viewer = $request->getUser();
|
|
||||||
|
|
||||||
$copy = PhabricatorDashboardPanel::initializeNewPanel($viewer);
|
|
||||||
$copy = PhabricatorDashboardPanel::copyPanel($copy, $panel, $viewer);
|
|
||||||
|
|
||||||
$copy->openTransaction();
|
|
||||||
$copy->save();
|
|
||||||
|
|
||||||
// TODO: This should record a transaction on the panel copy, too.
|
|
||||||
|
|
||||||
$xactions = array();
|
|
||||||
$xactions[] = id(new PhabricatorDashboardTransaction())
|
|
||||||
->setTransactionType(PhabricatorTransactions::TYPE_EDGE)
|
|
||||||
->setMetadataValue(
|
|
||||||
'edge:type',
|
|
||||||
PhabricatorDashboardDashboardHasPanelEdgeType::EDGECONST)
|
|
||||||
->setNewValue(
|
|
||||||
array(
|
|
||||||
'+' => array(
|
|
||||||
$copy->getPHID() => $copy->getPHID(),
|
|
||||||
),
|
|
||||||
'-' => array(
|
|
||||||
$panel->getPHID() => $panel->getPHID(),
|
|
||||||
),
|
|
||||||
));
|
|
||||||
|
|
||||||
$layout_config = $dashboard->getLayoutConfigObject();
|
|
||||||
$layout_config->replacePanel($panel->getPHID(), $copy->getPHID());
|
|
||||||
$dashboard->setLayoutConfigFromObject($layout_config);
|
|
||||||
$dashboard->save();
|
|
||||||
|
|
||||||
$editor = id(new PhabricatorDashboardTransactionEditor())
|
|
||||||
->setActor($viewer)
|
|
||||||
->setContentSourceFromRequest($request)
|
|
||||||
->setContinueOnMissingFields(true)
|
|
||||||
->setContinueOnNoEffect(true)
|
|
||||||
->applyTransactions($dashboard, $xactions);
|
|
||||||
$copy->saveTransaction();
|
|
||||||
|
|
||||||
return $copy;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,131 +0,0 @@
|
||||||
<?php
|
|
||||||
|
|
||||||
final class PhabricatorDashboardUninstallController
|
|
||||||
extends PhabricatorDashboardController {
|
|
||||||
|
|
||||||
public function handleRequest(AphrontRequest $request) {
|
|
||||||
$viewer = $request->getViewer();
|
|
||||||
$id = $request->getURIData('id');
|
|
||||||
|
|
||||||
$dashboard = id(new PhabricatorDashboardQuery())
|
|
||||||
->setViewer($viewer)
|
|
||||||
->withIDs(array($id))
|
|
||||||
->executeOne();
|
|
||||||
if (!$dashboard) {
|
|
||||||
return new Aphront404Response();
|
|
||||||
}
|
|
||||||
$dashboard_phid = $dashboard->getPHID();
|
|
||||||
|
|
||||||
$object_phid = $request->getStr('objectPHID', $viewer->getPHID());
|
|
||||||
$object = id(new PhabricatorObjectQuery())
|
|
||||||
->setViewer($viewer)
|
|
||||||
->requireCapabilities(
|
|
||||||
array(
|
|
||||||
PhabricatorPolicyCapability::CAN_VIEW,
|
|
||||||
PhabricatorPolicyCapability::CAN_EDIT,
|
|
||||||
))
|
|
||||||
->withPHIDs(array($object_phid))
|
|
||||||
->executeOne();
|
|
||||||
if (!$object) {
|
|
||||||
return new Aphront404Response();
|
|
||||||
}
|
|
||||||
|
|
||||||
$application_class = $request->getStr(
|
|
||||||
'applicationClass',
|
|
||||||
'PhabricatorHomeApplication');
|
|
||||||
|
|
||||||
$dashboard_install = id(new PhabricatorDashboardInstall())
|
|
||||||
->loadOneWhere(
|
|
||||||
'objectPHID = %s AND applicationClass = %s',
|
|
||||||
$object_phid,
|
|
||||||
$application_class);
|
|
||||||
if (!$dashboard_install) {
|
|
||||||
return new Aphront404Response();
|
|
||||||
}
|
|
||||||
if ($dashboard_install->getDashboardPHID() != $dashboard_phid) {
|
|
||||||
return new Aphront404Response();
|
|
||||||
}
|
|
||||||
|
|
||||||
$installer_phid = $viewer->getPHID();
|
|
||||||
|
|
||||||
if ($request->isFormPost()) {
|
|
||||||
$dashboard_install->delete();
|
|
||||||
return id(new AphrontRedirectResponse())
|
|
||||||
->setURI($this->getRedirectURI($application_class, $object_phid));
|
|
||||||
}
|
|
||||||
|
|
||||||
$body = $this->getBodyContent(
|
|
||||||
$application_class,
|
|
||||||
$object_phid,
|
|
||||||
$installer_phid);
|
|
||||||
|
|
||||||
$form = id(new AphrontFormView())
|
|
||||||
->setUser($viewer)
|
|
||||||
->appendChild($body);
|
|
||||||
|
|
||||||
return $this->newDialog()
|
|
||||||
->setTitle(pht('Uninstall Dashboard'))
|
|
||||||
->appendChild($form->buildLayoutView())
|
|
||||||
->addCancelButton($this->getCancelURI(
|
|
||||||
$application_class, $object_phid, $id))
|
|
||||||
->addSubmitButton(pht('Uninstall Dashboard'));
|
|
||||||
}
|
|
||||||
|
|
||||||
private function getBodyContent(
|
|
||||||
$application_class,
|
|
||||||
$object_phid,
|
|
||||||
$installer_phid) {
|
|
||||||
|
|
||||||
$viewer = $this->getViewer();
|
|
||||||
|
|
||||||
$body = array();
|
|
||||||
switch ($application_class) {
|
|
||||||
case 'PhabricatorHomeApplication':
|
|
||||||
if ($installer_phid == $object_phid) {
|
|
||||||
$body[] = phutil_tag(
|
|
||||||
'p',
|
|
||||||
array(),
|
|
||||||
pht(
|
|
||||||
'Are you sure you want to uninstall this dashboard as your '.
|
|
||||||
'home page?'));
|
|
||||||
$body[] = phutil_tag(
|
|
||||||
'p',
|
|
||||||
array(),
|
|
||||||
pht(
|
|
||||||
'You will be re-directed to your bland, default home page if '.
|
|
||||||
'you choose to uninstall this dashboard.'));
|
|
||||||
} else {
|
|
||||||
$body[] = phutil_tag(
|
|
||||||
'p',
|
|
||||||
array(),
|
|
||||||
pht(
|
|
||||||
'Are you sure you want to uninstall this dashboard as the home '.
|
|
||||||
'page for %s?',
|
|
||||||
$viewer->renderHandle($object_phid)));
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
return $body;
|
|
||||||
}
|
|
||||||
|
|
||||||
private function getCancelURI($application_class, $object_phid, $id) {
|
|
||||||
$uri = null;
|
|
||||||
switch ($application_class) {
|
|
||||||
case 'PhabricatorHomeApplication':
|
|
||||||
$uri = '/dashboard/view/'.$id.'/';
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
return $uri;
|
|
||||||
}
|
|
||||||
|
|
||||||
private function getRedirectURI($application_class, $object_phid) {
|
|
||||||
$uri = null;
|
|
||||||
switch ($application_class) {
|
|
||||||
case 'PhabricatorHomeApplication':
|
|
||||||
$uri = '/';
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
return $uri;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -47,16 +47,6 @@ final class PhabricatorDashboard extends PhabricatorDashboardDAO
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function copyDashboard(
|
|
||||||
PhabricatorDashboard $dst,
|
|
||||||
PhabricatorDashboard $src) {
|
|
||||||
|
|
||||||
$dst->name = $src->name;
|
|
||||||
$dst->layoutConfig = $src->layoutConfig;
|
|
||||||
|
|
||||||
return $dst;
|
|
||||||
}
|
|
||||||
|
|
||||||
protected function getConfiguration() {
|
protected function getConfiguration() {
|
||||||
return array(
|
return array(
|
||||||
self::CONFIG_AUX_PHID => true,
|
self::CONFIG_AUX_PHID => true,
|
||||||
|
|
|
@ -31,19 +31,6 @@ final class PhabricatorDashboardPanel
|
||||||
->setEditPolicy($actor->getPHID());
|
->setEditPolicy($actor->getPHID());
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function copyPanel(
|
|
||||||
PhabricatorDashboardPanel $dst,
|
|
||||||
PhabricatorDashboardPanel $src,
|
|
||||||
PhabricatorUser $user) {
|
|
||||||
|
|
||||||
$dst->name = $src->name;
|
|
||||||
$dst->panelType = $src->panelType;
|
|
||||||
$dst->properties = $src->properties;
|
|
||||||
$dst->authorPHID = $user->getPHID();
|
|
||||||
|
|
||||||
return $dst;
|
|
||||||
}
|
|
||||||
|
|
||||||
protected function getConfiguration() {
|
protected function getConfiguration() {
|
||||||
return array(
|
return array(
|
||||||
self::CONFIG_AUX_PHID => true,
|
self::CONFIG_AUX_PHID => true,
|
||||||
|
|
Loading…
Reference in a new issue