Page Menu
Home
c4science
Search
Configure Global Search
Log In
Files
F99427490
PhabricatorProjectColumn.php
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Subscribers
None
File Metadata
Details
File Info
Storage
Attached
Created
Fri, Jan 24, 11:39
Size
4 KB
Mime Type
text/x-php
Expires
Sun, Jan 26, 11:39 (1 d, 23 h)
Engine
blob
Format
Raw Data
Handle
23798323
Attached To
rPH Phabricator
PhabricatorProjectColumn.php
View Options
<?php
final
class
PhabricatorProjectColumn
extends
PhabricatorProjectDAO
implements
PhabricatorApplicationTransactionInterface
,
PhabricatorPolicyInterface
,
PhabricatorDestructibleInterface
{
const
STATUS_ACTIVE
=
0
;
const
STATUS_HIDDEN
=
1
;
const
DEFAULT_ORDER
=
'natural'
;
const
ORDER_NATURAL
=
'natural'
;
const
ORDER_PRIORITY
=
'priority'
;
protected
$name
;
protected
$status
;
protected
$projectPHID
;
protected
$sequence
;
protected
$properties
=
array
();
private
$project
=
self
::
ATTACHABLE
;
public
static
function
initializeNewColumn
(
PhabricatorUser
$user
)
{
return
id
(
new
PhabricatorProjectColumn
())
->
setName
(
''
)
->
setStatus
(
self
::
STATUS_ACTIVE
);
}
protected
function
getConfiguration
()
{
return
array
(
self
::
CONFIG_AUX_PHID
=>
true
,
self
::
CONFIG_SERIALIZATION
=>
array
(
'properties'
=>
self
::
SERIALIZATION_JSON
,
),
self
::
CONFIG_COLUMN_SCHEMA
=>
array
(
'name'
=>
'text255'
,
'status'
=>
'uint32'
,
'sequence'
=>
'uint32'
,
),
self
::
CONFIG_KEY_SCHEMA
=>
array
(
'key_status'
=>
array
(
'columns'
=>
array
(
'projectPHID'
,
'status'
,
'sequence'
),
),
'key_sequence'
=>
array
(
'columns'
=>
array
(
'projectPHID'
,
'sequence'
),
),
),
)
+
parent
::
getConfiguration
();
}
public
function
generatePHID
()
{
return
PhabricatorPHID
::
generateNewPHID
(
PhabricatorProjectColumnPHIDType
::
TYPECONST
);
}
public
function
attachProject
(
PhabricatorProject
$project
)
{
$this
->
project
=
$project
;
return
$this
;
}
public
function
getProject
()
{
return
$this
->
assertAttached
(
$this
->
project
);
}
public
function
isDefaultColumn
()
{
return
(
bool
)
$this
->
getProperty
(
'isDefault'
);
}
public
function
isHidden
()
{
return
(
$this
->
getStatus
()
==
self
::
STATUS_HIDDEN
);
}
public
function
getDisplayName
()
{
$name
=
$this
->
getName
();
if
(
strlen
(
$name
))
{
return
$name
;
}
if
(
$this
->
isDefaultColumn
())
{
return
pht
(
'Backlog'
);
}
return
pht
(
'Unnamed Column'
);
}
public
function
getDisplayType
()
{
if
(
$this
->
isDefaultColumn
())
{
return
pht
(
'(Default)'
);
}
if
(
$this
->
isHidden
())
{
return
pht
(
'(Hidden)'
);
}
return
null
;
}
public
function
getHeaderIcon
()
{
$icon
=
null
;
if
(
$this
->
isHidden
())
{
$icon
=
'fa-eye-slash'
;
$text
=
pht
(
'Hidden'
);
}
if
(
$icon
)
{
return
id
(
new
PHUIIconView
())
->
setIconFont
(
$icon
)
->
addSigil
(
'has-tooltip'
)
->
setMetadata
(
array
(
'tip'
=>
$text
,
));;
}
return
null
;
}
public
function
getProperty
(
$key
,
$default
=
null
)
{
return
idx
(
$this
->
properties
,
$key
,
$default
);
}
public
function
setProperty
(
$key
,
$value
)
{
$this
->
properties
[
$key
]
=
$value
;
return
$this
;
}
public
function
getPointLimit
()
{
return
$this
->
getProperty
(
'pointLimit'
);
}
public
function
setPointLimit
(
$limit
)
{
$this
->
setProperty
(
'pointLimit'
,
$limit
);
return
$this
;
}
/* -( PhabricatorApplicationTransactionInterface )------------------------- */
public
function
getApplicationTransactionEditor
()
{
return
new
PhabricatorProjectColumnTransactionEditor
();
}
public
function
getApplicationTransactionObject
()
{
return
$this
;
}
public
function
getApplicationTransactionTemplate
()
{
return
new
PhabricatorProjectColumnTransaction
();
}
public
function
willRenderTimeline
(
PhabricatorApplicationTransactionView
$timeline
,
AphrontRequest
$request
)
{
return
$timeline
;
}
/* -( PhabricatorPolicyInterface )----------------------------------------- */
public
function
getCapabilities
()
{
return
array
(
PhabricatorPolicyCapability
::
CAN_VIEW
,
PhabricatorPolicyCapability
::
CAN_EDIT
,
);
}
public
function
getPolicy
(
$capability
)
{
return
$this
->
getProject
()->
getPolicy
(
$capability
);
}
public
function
hasAutomaticCapability
(
$capability
,
PhabricatorUser
$viewer
)
{
return
$this
->
getProject
()->
hasAutomaticCapability
(
$capability
,
$viewer
);
}
public
function
describeAutomaticCapability
(
$capability
)
{
return
pht
(
'Users must be able to see a project to see its board.'
);
}
/* -( PhabricatorDestructibleInterface )----------------------------------- */
public
function
destroyObjectPermanently
(
PhabricatorDestructionEngine
$engine
)
{
$this
->
openTransaction
();
$this
->
delete
();
$this
->
saveTransaction
();
}
}
Event Timeline
Log In to Comment