Support "select" types in bulk editor (status, priority)
Summary: Depends on D18864. Ref T13025. Adds bulk edit support back for "status" and "priority" using `<select />` controls.
Test Plan:
Used bulk editor to change status and priority for tasks.
{F5374436}
Reviewers: amckinley
Reviewed By: amckinley
Maniphest Tasks: T13025
Differential Revision: https://secure.phabricator.com/D18866
This commit is contained in:
@@ -223,6 +223,7 @@ phutil_register_library_map(array(
|
||||
'AuditQueryConduitAPIMethod' => 'applications/audit/conduit/AuditQueryConduitAPIMethod.php',
|
||||
'AuthManageProvidersCapability' => 'applications/auth/capability/AuthManageProvidersCapability.php',
|
||||
'BulkParameterType' => 'applications/transactions/bulk/type/BulkParameterType.php',
|
||||
'BulkSelectParameterType' => 'applications/transactions/bulk/type/BulkSelectParameterType.php',
|
||||
'BulkStringParameterType' => 'applications/transactions/bulk/type/BulkStringParameterType.php',
|
||||
'CalendarTimeUtil' => 'applications/calendar/util/CalendarTimeUtil.php',
|
||||
'CalendarTimeUtilTestCase' => 'applications/calendar/__tests__/CalendarTimeUtilTestCase.php',
|
||||
@@ -5244,6 +5245,7 @@ phutil_register_library_map(array(
|
||||
'AuditQueryConduitAPIMethod' => 'AuditConduitAPIMethod',
|
||||
'AuthManageProvidersCapability' => 'PhabricatorPolicyCapability',
|
||||
'BulkParameterType' => 'Phobject',
|
||||
'BulkSelectParameterType' => 'BulkParameterType',
|
||||
'BulkStringParameterType' => 'BulkParameterType',
|
||||
'CalendarTimeUtil' => 'Phobject',
|
||||
'CalendarTimeUtilTestCase' => 'PhabricatorTestCase',
|
||||
|
||||
@@ -201,6 +201,7 @@ EODOCS
|
||||
id(new PhabricatorSelectEditField())
|
||||
->setKey('status')
|
||||
->setLabel(pht('Status'))
|
||||
->setBulkEditLabel(pht('Set status to'))
|
||||
->setDescription(pht('Status of the task.'))
|
||||
->setConduitDescription(pht('Change the task status.'))
|
||||
->setConduitTypeDescription(pht('New task status constant.'))
|
||||
@@ -213,6 +214,7 @@ EODOCS
|
||||
id(new PhabricatorSelectEditField())
|
||||
->setKey('priority')
|
||||
->setLabel(pht('Priority'))
|
||||
->setBulkEditLabel(pht('Set priority to'))
|
||||
->setDescription(pht('Priority of the task.'))
|
||||
->setConduitDescription(pht('Change the priority of the task.'))
|
||||
->setConduitTypeDescription(pht('New task priority constant.'))
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
abstract class BulkParameterType extends Phobject {
|
||||
|
||||
private $viewer;
|
||||
private $field;
|
||||
|
||||
final public function setViewer(PhabricatorUser $viewer) {
|
||||
$this->viewer = $viewer;
|
||||
@@ -13,6 +14,15 @@ abstract class BulkParameterType extends Phobject {
|
||||
return $this->viewer;
|
||||
}
|
||||
|
||||
final public function setField(PhabricatorEditField $field) {
|
||||
$this->field = $field;
|
||||
return $this;
|
||||
}
|
||||
|
||||
final public function getField() {
|
||||
return $this->field;
|
||||
}
|
||||
|
||||
abstract public function getPHUIXControlType();
|
||||
|
||||
public function getPHUIXControlSpecification() {
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
<?php
|
||||
|
||||
final class BulkSelectParameterType
|
||||
extends BulkParameterType {
|
||||
|
||||
public function getOptions() {
|
||||
return $this->getField()->getOptions();
|
||||
}
|
||||
|
||||
public function getPHUIXControlType() {
|
||||
return 'select';
|
||||
}
|
||||
|
||||
public function getPHUIXControlSpecification() {
|
||||
return array(
|
||||
'options' => $this->getOptions(),
|
||||
'order' => array_keys($this->getOptions()),
|
||||
'value' => null,
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -643,7 +643,9 @@ abstract class PhabricatorEditField extends Phobject {
|
||||
return null;
|
||||
}
|
||||
|
||||
$type->setViewer($this->getViewer());
|
||||
$type
|
||||
->setField($this)
|
||||
->setViewer($this->getViewer());
|
||||
|
||||
return $type;
|
||||
}
|
||||
|
||||
@@ -54,6 +54,10 @@ final class PhabricatorSelectEditField
|
||||
return new ConduitStringParameterType();
|
||||
}
|
||||
|
||||
protected function newBulkParameterType() {
|
||||
return new BulkSelectParameterType();
|
||||
}
|
||||
|
||||
private function getCanonicalValue($value) {
|
||||
$options = $this->getOptions();
|
||||
if (!isset($options[$value])) {
|
||||
|
||||
Reference in New Issue
Block a user