1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-12-23 14:00:56 +01:00

Give tokenizer tokens CSS color classes on the container instead of the icon

Summary:
Ref T4100. See D12465.

  - Instead of putting CSS color classes on the tokenizer icons, put them on the container tags.
  - Note that this removes the "bluegrey" default classes.
  - This doesn't actually add CSS for the classes so, e.g., "green" doesn't make things green yet. This just supports D12465.

Test Plan: Viewed markup, saw classes.

Reviewers: chad

Reviewed By: chad

Subscribers: epriestley

Maniphest Tasks: T4100

Differential Revision: https://secure.phabricator.com/D12467
This commit is contained in:
epriestley 2015-04-19 07:17:54 -07:00
parent 2106a553e4
commit 8f61eb45ab
6 changed files with 46 additions and 10 deletions

View file

@ -63,7 +63,8 @@ final class PhabricatorProjectDatasource
->setDisplayType('Project')
->setURI('/tag/'.$proj->getPrimarySlug().'/')
->setPHID($proj->getPHID())
->setIcon($proj->getIcon().' '.$proj->getColor())
->setIcon($proj->getIcon())
->setColor($proj->getColor())
->setPriorityType('proj')
->setClosed($closed);

View file

@ -12,6 +12,7 @@ final class PhabricatorTypeaheadResult {
private $priorityType;
private $imageSprite;
private $icon;
private $color;
private $closed;
private $tokenType;
private $unique;
@ -104,6 +105,15 @@ final class PhabricatorTypeaheadResult {
return $this->tokenType;
}
public function setColor($color) {
$this->color = $color;
return $this;
}
public function getColor() {
return $this->color;
}
public function getSortKey() {
// Put unique results (special parameter functions) ahead of other
// results.
@ -129,6 +139,7 @@ final class PhabricatorTypeaheadResult {
$this->getIcon(),
$this->closed,
$this->imageSprite ? (string)$this->imageSprite : null,
$this->color,
$this->tokenType,
$this->unique ? 1 : null,
);
@ -151,7 +162,7 @@ final class PhabricatorTypeaheadResult {
foreach ($types as $type) {
$icon = $type->getTypeIcon();
if ($icon !== null) {
$map[$type->getTypeConstant()] = "{$icon} bluegrey";
$map[$type->getTypeConstant()] = $icon;
}
}

View file

@ -10,6 +10,7 @@ final class PhabricatorTypeaheadTokenView
private $key;
private $icon;
private $color;
private $inputName;
private $value;
private $tokenType = self::TYPE_OBJECT;
@ -20,6 +21,7 @@ final class PhabricatorTypeaheadTokenView
return id(new PhabricatorTypeaheadTokenView())
->setKey($result->getPHID())
->setIcon($result->getIcon())
->setColor($result->getColor())
->setValue($result->getDisplayName())
->setTokenType($result->getTokenType());
}
@ -30,11 +32,13 @@ final class PhabricatorTypeaheadTokenView
$token = id(new PhabricatorTypeaheadTokenView())
->setKey($handle->getPHID())
->setValue($handle->getFullName())
->setIcon(rtrim($handle->getIcon().' '.$handle->getIconColor()));
->setIcon($handle->getIcon());
if ($handle->isDisabled() ||
$handle->getStatus() == PhabricatorObjectHandleStatus::STATUS_CLOSED) {
$token->setTokenType(self::TYPE_DISABLED);
} else {
$token->setColor($handle->getTagColor());
}
return $token;
@ -76,6 +80,15 @@ final class PhabricatorTypeaheadTokenView
return $this->icon;
}
public function setColor($color) {
$this->color = $color;
return $this;
}
public function getColor() {
return $this->color;
}
public function setValue($value) {
$this->value = $value;
return $this;
@ -107,6 +120,8 @@ final class PhabricatorTypeaheadTokenView
break;
}
$classes[] = $this->getColor();
return array(
'class' => $classes,
);
@ -126,7 +141,7 @@ final class PhabricatorTypeaheadTokenView
phutil_tag(
'span',
array(
'class' => 'phui-icon-view phui-font-fa bluetext '.$icon,
'class' => 'phui-icon-view phui-font-fa '.$icon,
)),
$value,
);

View file

@ -24,8 +24,9 @@ final class PHUITypeaheadExample extends PhabricatorUIExample {
->setIcon('fa-user');
$token_list[] = id(new PhabricatorTypeaheadTokenView())
->setValue(pht('Custom Object'))
->setIcon('fa-tag green');
->setValue(pht('Object with Color'))
->setIcon('fa-tag')
->setColor('green');
$token_list[] = id(new PhabricatorTypeaheadTokenView())
->setValue(pht('Function Token'))

View file

@ -125,6 +125,7 @@ final class AphrontFormTokenizerControl extends AphrontFormControl {
'value' => mpull($tokens, 'getValue', 'getKey'),
'icons' => mpull($tokens, 'getIcon', 'getKey'),
'types' => mpull($tokens, 'getTokenType', 'getKey'),
'colors' => mpull($tokens, 'getColor', 'getKey'),
'limit' => $this->limit,
'username' => $username,
'placeholder' => $placeholder,

View file

@ -177,21 +177,27 @@ JX.install('Prefab', {
var icon;
var type;
var color;
if (result) {
icon = result.icon;
value = result.displayName;
type = result.tokenType;
color = result.color;
} else {
icon = config.icons[key];
type = config.types[key];
color = config.colors[key];
}
if (icon) {
icon = JX.Prefab._renderIcon(icon);
}
if (type) {
JX.DOM.alterClass(container, 'jx-tokenizer-token-' + type, true);
type = type || 'object';
JX.DOM.alterClass(container, 'jx-tokenizer-token-' + type, true);
if (color) {
JX.DOM.alterClass(container, color, true);
}
return [icon, value];
@ -292,8 +298,9 @@ JX.install('Prefab', {
closed: closed,
type: fields[5],
sprite: fields[10],
tokenType: fields[11],
unique: fields[12] || false
color: fields[11],
tokenType: fields[12],
unique: fields[13] || false
};
},