Page Menu
Home
c4science
Search
Configure Global Search
Log In
Files
F101483096
PhabricatorProjectColumnOrder.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
Mon, Feb 10, 21:42
Size
5 KB
Mime Type
text/x-php
Expires
Wed, Feb 12, 21:42 (1 d, 23 h)
Engine
blob
Format
Raw Data
Handle
24161585
Attached To
rPH Phabricator
PhabricatorProjectColumnOrder.php
View Options
<?php
abstract
class
PhabricatorProjectColumnOrder
extends
Phobject
{
private
$viewer
;
final
public
function
setViewer
(
PhabricatorUser
$viewer
)
{
$this
->
viewer
=
$viewer
;
return
$this
;
}
final
public
function
getViewer
()
{
return
$this
->
viewer
;
}
final
public
function
getColumnOrderKey
()
{
return
$this
->
getPhobjectClassConstant
(
'ORDERKEY'
);
}
final
public
static
function
getAllOrders
()
{
return
id
(
new
PhutilClassMapQuery
())
->
setAncestorClass
(
__CLASS__
)
->
setUniqueMethod
(
'getColumnOrderKey'
)
->
setSortMethod
(
'getMenuOrder'
)
->
execute
();
}
final
public
static
function
getEnabledOrders
()
{
$map
=
self
::
getAllOrders
();
foreach
(
$map
as
$key
=>
$order
)
{
if
(!
$order
->
isEnabled
())
{
unset
(
$map
[
$key
]);
}
}
return
$map
;
}
final
public
static
function
getOrderByKey
(
$key
)
{
$map
=
self
::
getAllOrders
();
if
(!
isset
(
$map
[
$key
]))
{
throw
new
Exception
(
pht
(
'No column ordering exists with key "%s".'
,
$key
));
}
return
$map
[
$key
];
}
final
public
function
getColumnTransactions
(
$object
,
array
$header
)
{
$result
=
$this
->
newColumnTransactions
(
$object
,
$header
);
if
(!
is_array
(
$result
)
&&
!
is_null
(
$result
))
{
throw
new
Exception
(
pht
(
'Expected "newColumnTransactions()" on "%s" to return "null" or a '
.
'list of transactions, but got "%s".'
,
get_class
(
$this
),
phutil_describe_type
(
$result
)));
}
if
(
$result
===
null
)
{
$result
=
array
();
}
assert_instances_of
(
$result
,
'PhabricatorApplicationTransaction'
);
return
$result
;
}
final
public
function
getMenuIconIcon
()
{
return
$this
->
newMenuIconIcon
();
}
protected
function
newMenuIconIcon
()
{
return
'fa-sort-amount-asc'
;
}
abstract
public
function
getDisplayName
();
abstract
public
function
getHasHeaders
();
abstract
public
function
getCanReorder
();
public
function
getMenuOrder
()
{
return
9000
;
}
public
function
isEnabled
()
{
return
true
;
}
protected
function
newColumnTransactions
(
$object
,
array
$header
)
{
return
array
();
}
final
public
function
getHeadersForObjects
(
array
$objects
)
{
$headers
=
$this
->
newHeadersForObjects
(
$objects
);
if
(!
is_array
(
$headers
))
{
throw
new
Exception
(
pht
(
'Expected "newHeadersForObjects()" on "%s" to return a list '
.
'of headers, but got "%s".'
,
get_class
(
$this
),
phutil_describe_type
(
$headers
)));
}
assert_instances_of
(
$headers
,
'PhabricatorProjectColumnHeader'
);
// Add a "0" to the end of each header. This makes them sort above object
// cards in the same group.
foreach
(
$headers
as
$header
)
{
$vector
=
$header
->
getSortVector
();
$vector
[]
=
0
;
$header
->
setSortVector
(
$vector
);
}
return
$headers
;
}
protected
function
newHeadersForObjects
(
array
$objects
)
{
return
array
();
}
final
public
function
getSortVectorsForObjects
(
array
$objects
)
{
$vectors
=
$this
->
newSortVectorsForObjects
(
$objects
);
if
(!
is_array
(
$vectors
))
{
throw
new
Exception
(
pht
(
'Expected "newSortVectorsForObjects()" on "%s" to return a '
.
'map of vectors, but got "%s".'
,
get_class
(
$this
),
phutil_describe_type
(
$vectors
)));
}
assert_same_keys
(
$objects
,
$vectors
);
return
$vectors
;
}
protected
function
newSortVectorsForObjects
(
array
$objects
)
{
$vectors
=
array
();
foreach
(
$objects
as
$key
=>
$object
)
{
$vectors
[
$key
]
=
$this
->
newSortVectorForObject
(
$object
);
}
return
$vectors
;
}
protected
function
newSortVectorForObject
(
$object
)
{
return
array
();
}
final
public
function
getHeaderKeysForObjects
(
array
$objects
)
{
$header_keys
=
$this
->
newHeaderKeysForObjects
(
$objects
);
if
(!
is_array
(
$header_keys
))
{
throw
new
Exception
(
pht
(
'Expected "newHeaderKeysForObject()" on "%s" to return a '
.
'map of header keys, but got "%s".'
,
get_class
(
$this
),
phutil_describe_type
(
$header_keys
)));
}
assert_same_keys
(
$objects
,
$header_keys
);
return
$header_keys
;
}
protected
function
newHeaderKeysForObjects
(
array
$objects
)
{
$header_keys
=
array
();
foreach
(
$objects
as
$key
=>
$object
)
{
$header_keys
[
$key
]
=
$this
->
newHeaderKeyForObject
(
$object
);
}
return
$header_keys
;
}
protected
function
newHeaderKeyForObject
(
$object
)
{
return
null
;
}
final
protected
function
newTransaction
(
$object
)
{
return
$object
->
getApplicationTransactionTemplate
();
}
final
protected
function
newHeader
()
{
return
id
(
new
PhabricatorProjectColumnHeader
())
->
setOrderKey
(
$this
->
getColumnOrderKey
());
}
final
protected
function
newEffect
()
{
return
new
PhabricatorProjectDropEffect
();
}
final
public
function
toDictionary
()
{
return
array
(
'orderKey'
=>
$this
->
getColumnOrderKey
(),
'hasHeaders'
=>
$this
->
getHasHeaders
(),
'canReorder'
=>
$this
->
getCanReorder
(),
);
}
}
Event Timeline
Log In to Comment