Changeset View
Changeset View
Standalone View
Standalone View
src/applications/search/query/PhabricatorFulltextToken.php
- This file was added.
<?php | |||||
final class PhabricatorFulltextToken extends Phobject { | |||||
private $token; | |||||
private $isShort; | |||||
private $isStopword; | |||||
public function setToken(PhutilSearchQueryToken $token) { | |||||
$this->token = $token; | |||||
return $this; | |||||
} | |||||
public function getToken() { | |||||
return $this->token; | |||||
} | |||||
public function isQueryable() { | |||||
return !$this->getIsShort() && !$this->getIsStopword(); | |||||
} | |||||
public function setIsShort($is_short) { | |||||
$this->isShort = $is_short; | |||||
return $this; | |||||
} | |||||
public function getIsShort() { | |||||
return $this->isShort; | |||||
} | |||||
public function setIsStopword($is_stopword) { | |||||
$this->isStopword = $is_stopword; | |||||
return $this; | |||||
} | |||||
public function getIsStopword() { | |||||
return $this->isStopword; | |||||
} | |||||
public function newTag() { | |||||
$token = $this->getToken(); | |||||
$tip = null; | |||||
$icon = null; | |||||
if ($this->getIsShort()) { | |||||
$shade = PHUITagView::COLOR_GREY; | |||||
$tip = pht('Ignored Short Word'); | |||||
} else if ($this->getIsStopword()) { | |||||
$shade = PHUITagView::COLOR_GREY; | |||||
$tip = pht('Ignored Common Word'); | |||||
} else { | |||||
$operator = $token->getOperator(); | |||||
switch ($operator) { | |||||
case PhutilSearchQueryCompiler::OPERATOR_NOT: | |||||
$shade = PHUITagView::COLOR_RED; | |||||
$icon = 'fa-minus'; | |||||
break; | |||||
default: | |||||
$shade = PHUITagView::COLOR_BLUE; | |||||
break; | |||||
} | |||||
} | |||||
$tag = id(new PHUITagView()) | |||||
->setType(PHUITagView::TYPE_SHADE) | |||||
->setShade($shade) | |||||
->setName($token->getValue()); | |||||
if ($tip !== null) { | |||||
Javelin::initBehavior('phabricator-tooltips'); | |||||
$tag | |||||
->addSigil('has-tooltip') | |||||
->setMetadata( | |||||
array( | |||||
'tip' => $tip, | |||||
)); | |||||
} | |||||
if ($icon !== null) { | |||||
$tag->setIcon($icon); | |||||
} | |||||
return $tag; | |||||
} | |||||
} |