Page MenuHomestyx hydra

No OneTemporary

diff --git a/src/applications/phid/PhabricatorObjectHandle.php b/src/applications/phid/PhabricatorObjectHandle.php
index f3c04d2a25..943464ed67 100644
--- a/src/applications/phid/PhabricatorObjectHandle.php
+++ b/src/applications/phid/PhabricatorObjectHandle.php
@@ -1,395 +1,405 @@
<?php
final class PhabricatorObjectHandle
extends Phobject
implements PhabricatorPolicyInterface {
const AVAILABILITY_FULL = 'full';
const AVAILABILITY_NONE = 'none';
const AVAILABILITY_PARTIAL = 'partial';
const AVAILABILITY_DISABLED = 'disabled';
const STATUS_OPEN = 'open';
const STATUS_CLOSED = 'closed';
private $uri;
private $phid;
private $type;
private $name;
private $fullName;
private $title;
private $imageURI;
private $icon;
private $tagColor;
private $timestamp;
private $status = self::STATUS_OPEN;
private $availability = self::AVAILABILITY_FULL;
private $complete;
private $objectName;
private $policyFiltered;
private $subtitle;
private $tokenIcon;
private $commandLineObjectName;
public function setIcon($icon) {
$this->icon = $icon;
return $this;
}
public function getIcon() {
if ($this->getPolicyFiltered()) {
return 'fa-lock';
}
if ($this->icon) {
return $this->icon;
}
return $this->getTypeIcon();
}
public function setSubtitle($subtitle) {
$this->subtitle = $subtitle;
return $this;
}
public function getSubtitle() {
return $this->subtitle;
}
public function setTagColor($color) {
static $colors;
if (!$colors) {
$colors = array_fuse(array_keys(PHUITagView::getShadeMap()));
}
if (isset($colors[$color])) {
$this->tagColor = $color;
}
return $this;
}
public function getTagColor() {
if ($this->getPolicyFiltered()) {
return 'disabled';
}
if ($this->tagColor) {
return $this->tagColor;
}
return 'blue';
}
public function getIconColor() {
if ($this->tagColor) {
return $this->tagColor;
}
return null;
}
public function setTokenIcon($icon) {
$this->tokenIcon = $icon;
return $this;
}
public function getTokenIcon() {
if ($this->tokenIcon !== null) {
return $this->tokenIcon;
}
return $this->getIcon();
}
public function getTypeIcon() {
if ($this->getPHIDType()) {
return $this->getPHIDType()->getTypeIcon();
}
return null;
}
public function setPolicyFiltered($policy_filered) {
$this->policyFiltered = $policy_filered;
return $this;
}
public function getPolicyFiltered() {
return $this->policyFiltered;
}
public function setObjectName($object_name) {
$this->objectName = $object_name;
return $this;
}
public function getObjectName() {
if (!$this->objectName) {
return $this->getName();
}
return $this->objectName;
}
public function setURI($uri) {
$this->uri = $uri;
return $this;
}
public function getURI() {
return $this->uri;
}
public function setPHID($phid) {
$this->phid = $phid;
return $this;
}
public function getPHID() {
return $this->phid;
}
public function setName($name) {
$this->name = $name;
return $this;
}
public function getName() {
if ($this->name === null) {
if ($this->getPolicyFiltered()) {
return pht('Restricted %s', $this->getTypeName());
} else {
return pht('Unknown Object (%s)', $this->getTypeName());
}
}
return $this->name;
}
public function setAvailability($availability) {
$this->availability = $availability;
return $this;
}
public function getAvailability() {
return $this->availability;
}
public function isDisabled() {
return ($this->getAvailability() == self::AVAILABILITY_DISABLED);
}
public function setStatus($status) {
$this->status = $status;
return $this;
}
public function getStatus() {
return $this->status;
}
public function setFullName($full_name) {
$this->fullName = $full_name;
return $this;
}
public function getFullName() {
if ($this->fullName !== null) {
return $this->fullName;
}
return $this->getName();
}
public function setCommandLineObjectName($command_line_object_name) {
$this->commandLineObjectName = $command_line_object_name;
return $this;
}
public function getCommandLineObjectName() {
if ($this->commandLineObjectName !== null) {
return $this->commandLineObjectName;
}
return $this->getObjectName();
}
public function setTitle($title) {
$this->title = $title;
return $this;
}
public function getTitle() {
return $this->title;
}
public function setType($type) {
$this->type = $type;
return $this;
}
public function getType() {
return $this->type;
}
public function setImageURI($uri) {
$this->imageURI = $uri;
return $this;
}
public function getImageURI() {
return $this->imageURI;
}
public function setTimestamp($timestamp) {
$this->timestamp = $timestamp;
return $this;
}
public function getTimestamp() {
return $this->timestamp;
}
public function getTypeName() {
if ($this->getPHIDType()) {
return $this->getPHIDType()->getTypeName();
}
return $this->getType();
}
/**
* Set whether or not the underlying object is complete. See
* @{method:isComplete} for an explanation of what it means to be complete.
*
* @param bool True if the handle represents a complete object.
* @return this
*/
public function setComplete($complete) {
$this->complete = $complete;
return $this;
}
/**
* Determine if the handle represents an object which was completely loaded
* (i.e., the underlying object exists) vs an object which could not be
* completely loaded (e.g., the type or data for the PHID could not be
* identified or located).
*
* Basically, @{class:PhabricatorHandleQuery} gives you back a handle for
* any PHID you give it, but it gives you a complete handle only for valid
* PHIDs.
*
* @return bool True if the handle represents a complete object.
*/
public function isComplete() {
return $this->complete;
}
public function renderLink($name = null) {
return $this->renderLinkWithAttributes($name, array());
}
public function renderHovercardLink($name = null) {
Javelin::initBehavior('phui-hovercards');
$attributes = array(
'sigil' => 'hovercard',
'meta' => array(
'hoverPHID' => $this->getPHID(),
),
);
return $this->renderLinkWithAttributes($name, $attributes);
}
private function renderLinkWithAttributes($name, array $attributes) {
if ($name === null) {
$name = $this->getLinkName();
}
$classes = array();
$classes[] = 'phui-handle';
$title = $this->title;
if ($this->status != self::STATUS_OPEN) {
$classes[] = 'handle-status-'.$this->status;
}
+ $circle = null;
if ($this->availability != self::AVAILABILITY_FULL) {
$classes[] = 'handle-availability-'.$this->availability;
+ $circle = array(
+ phutil_tag(
+ 'span',
+ array(
+ 'class' => 'perfect-circle',
+ ),
+ "\xE2\x80\xA2"),
+ ' ',
+ );
}
if ($this->getType() == PhabricatorPeopleUserPHIDType::TYPECONST) {
$classes[] = 'phui-link-person';
}
$uri = $this->getURI();
$icon = null;
if ($this->getPolicyFiltered()) {
$icon = id(new PHUIIconView())
->setIcon('fa-lock lightgreytext');
}
$attributes = $attributes + array(
'href' => $uri,
'class' => implode(' ', $classes),
'title' => $title,
);
return javelin_tag(
$uri ? 'a' : 'span',
$attributes,
- array($icon, $name));
+ array($circle, $icon, $name));
}
public function renderTag() {
return id(new PHUITagView())
->setType(PHUITagView::TYPE_OBJECT)
->setShade($this->getTagColor())
->setIcon($this->getIcon())
->setHref($this->getURI())
->setName($this->getLinkName());
}
public function getLinkName() {
switch ($this->getType()) {
case PhabricatorPeopleUserPHIDType::TYPECONST:
$name = $this->getName();
break;
default:
$name = $this->getFullName();
break;
}
return $name;
}
protected function getPHIDType() {
$types = PhabricatorPHIDType::getAllTypes();
return idx($types, $this->getType());
}
/* -( PhabricatorPolicyInterface )----------------------------------------- */
public function getCapabilities() {
return array(
PhabricatorPolicyCapability::CAN_VIEW,
);
}
public function getPolicy($capability) {
return PhabricatorPolicies::POLICY_PUBLIC;
}
public function hasAutomaticCapability($capability, PhabricatorUser $viewer) {
// NOTE: Handles are always visible, they just don't get populated with
// data if the user can't see the underlying object.
return true;
}
public function describeAutomaticCapability($capability) {
return null;
}
}
diff --git a/webroot/rsrc/css/application/base/standard-page-view.css b/webroot/rsrc/css/application/base/standard-page-view.css
index 36294ca288..ebcf157ad4 100644
--- a/webroot/rsrc/css/application/base/standard-page-view.css
+++ b/webroot/rsrc/css/application/base/standard-page-view.css
@@ -1,176 +1,168 @@
/**
* @provides phabricator-standard-page-view
*/
.phabricator-anchor-view,
.phabricator-anchor-navigation-marker {
position: absolute;
margin-top: -15px;
}
.phabricator-chromeless-page .phabricator-standard-page {
background: transparent;
border-width: 0px;
}
.phabricator-standard-page-body {
clear: both;
}
body.white-background {
background: #fff;
}
.phabricator-standard-page-footer {
text-align: right;
margin: 44px 16px 16px;
padding: 12px 0;
border-top: 1px solid rgba({$alphagrey},.1);
color: {$greytext};
}
.with-durable-column .phabricator-standard-page-footer {
margin: 36px 16px 28px;
}
.device .phabricator-standard-page-footer {
margin: 24px 8px 16px;
}
!print .phabricator-standard-page-footer {
display: none;
}
.device-desktop .has-local-nav + .phabricator-standard-page-footer {
margin-left: 221px;
}
.device .phabricator-side-menu-home + .phabricator-standard-page-footer {
display: none;
}
.keyboard-shortcut-help td,
.keyboard-shortcut-help th {
padding: 8px;
vertical-align: middle;
}
.keyboard-shortcut-help th {
white-space: nowrap;
color: {$greytext};
}
.keyboard-focus-focus-reticle {
background: #ffffd3;
position: absolute;
border: 1px solid #999900;
}
a.handle-status-closed {
text-decoration: line-through;
color: #676767;
}
a.handle-status-closed:hover {
text-decoration: line-through;
color: #19558D;
}
-a.handle-availability-disabled,
-a.handle-availability-none,
-a.handle-availability-partial {
- padding-left: 11px;
- background-repeat: no-repeat;
- background-position: -4px center;
+.handle-availability-none .perfect-circle {
+ color: {$red};
}
-a.handle-availability-none {
- background-image: url(/rsrc/image/icon/fatcow/bullet_red.png);
+.handle-availability-partial .perfect-circle {
+ color: {$orange};
}
-a.handle-availability-partial {
- background-image: url(/rsrc/image/icon/fatcow/bullet_orange.png);
-}
-
-a.handle-availability-disabled {
- background-image: url(/rsrc/image/icon/fatcow/bullet_black.png);
+.handle-availability-disabled .perfect-circle {
+ color: {$greytext};
}
.aphront-developer-error-callout {
position: relative;
padding: 2em;
background: #aa0000;
color: white;
text-align: center;
font-size: {$smallerfontsize};
}
.phui-handle .phui-icon-view {
display: inline-block;
margin: 2px 2px -2px 0;
}
.jx-scrollbar-frame {
position: relative;
overflow: hidden;
}
.jx-scrollbar-viewport {
position: absolute;
overflow-x: hidden;
overflow-y: scroll;
top: 0;
bottom: 0;
left: 0;
right: 0;
}
.jx-scrollbar-test {
position: absolute;
left: -300px;
}
.jx-scrollbar-bar {
position: absolute;
top: 0;
right: 0;
bottom: 7px;
width: 11px;
}
.jx-scrollbar-bar .jx-scrollbar-handle {
position: absolute;
right: 2px;
-webkit-border-radius: 7px;
-moz-border-radius: 7px;
border-radius: 7px;
min-height: 10px;
width: 7px;
opacity: 0;
-webkit-transition: opacity 0.2s linear;
-moz-transition: opacity 0.2s linear;
-o-transition: opacity 0.2s linear;
-ms-transition: opacity 0.2s linear;
transition: opacity 0.2s linear;
background: #6c6e71;
-webkit-background-clip: padding-box;
-moz-background-clip: padding;
}
.jx-scrollbar-bar:hover .jx-scrollbar-handle {
opacity: 0.7;
-webkit-transition: opacity 0 linear;
-moz-transition: opacity 0 linear;
-o-transition: opacity 0 linear;
-ms-transition: opacity 0 linear;
transition: opacity 0 linear;
}
.jx-scrollbar-bar .jx-scrollbar-visible {
opacity: 0.7;
}
.jx-scrollbar-link {
position: absolute;
left: -50px;
}
diff --git a/webroot/rsrc/image/icon/fatcow/bullet_black.png b/webroot/rsrc/image/icon/fatcow/bullet_black.png
deleted file mode 100644
index a113d8ef3b..0000000000
Binary files a/webroot/rsrc/image/icon/fatcow/bullet_black.png and /dev/null differ
diff --git a/webroot/rsrc/image/icon/fatcow/bullet_orange.png b/webroot/rsrc/image/icon/fatcow/bullet_orange.png
deleted file mode 100644
index dacfd4697f..0000000000
Binary files a/webroot/rsrc/image/icon/fatcow/bullet_orange.png and /dev/null differ
diff --git a/webroot/rsrc/image/icon/fatcow/bullet_red.png b/webroot/rsrc/image/icon/fatcow/bullet_red.png
deleted file mode 100644
index cc56c4b4b8..0000000000
Binary files a/webroot/rsrc/image/icon/fatcow/bullet_red.png and /dev/null differ

File Metadata

Mime Type
text/x-diff
Expires
Thu, Nov 6, 9:45 AM (2 h, 31 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
321868
Default Alt Text
(14 KB)

Event Timeline