mirror of
https://we.phorge.it/source/phorge.git
synced 2024-11-25 08:12:40 +01:00
bdef1255e3
Summary: If you have a saved query with an order alias, we currently apply the order correctly but don't show the right value in the UI. Map any saved value to the canoncial value when rendering the control. Test Plan: Added some `var_dump()` and verified order key was getting mapped forward correctly. Reviewers: btrahan Reviewed By: btrahan Subscribers: epriestley Differential Revision: https://secure.phabricator.com/D13227
50 lines
1.1 KiB
PHP
50 lines
1.1 KiB
PHP
<?php
|
|
|
|
final class PhabricatorSearchOrderField
|
|
extends PhabricatorSearchField {
|
|
|
|
private $options;
|
|
private $orderAliases;
|
|
|
|
public function setOrderAliases(array $order_aliases) {
|
|
$this->orderAliases = $order_aliases;
|
|
return $this;
|
|
}
|
|
|
|
public function getOrderAliases() {
|
|
return $this->orderAliases;
|
|
}
|
|
|
|
public function setOptions(array $options) {
|
|
$this->options = $options;
|
|
return $this;
|
|
}
|
|
|
|
public function getOptions() {
|
|
return $this->options;
|
|
}
|
|
|
|
protected function getDefaultValue() {
|
|
return null;
|
|
}
|
|
|
|
protected function getValueFromRequest(AphrontRequest $request, $key) {
|
|
return $request->getStr($key);
|
|
}
|
|
|
|
protected function getValueForControl() {
|
|
// If the SavedQuery has an alias for an order, map it to the canonical
|
|
// name for the order so the correct option is selected in the dropdown.
|
|
$value = parent::getValueForControl();
|
|
if (isset($this->orderAliases[$value])) {
|
|
$value = $this->orderAliases[$value];
|
|
}
|
|
return $value;
|
|
}
|
|
|
|
protected function newControl() {
|
|
return id(new AphrontFormSelectControl())
|
|
->setOptions($this->getOptions());
|
|
}
|
|
|
|
}
|