Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F483916
PhabricatorProjectColumnOrder.php
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Size
4 KB
Referenced Files
None
Subscribers
None
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'
)
->
execute
();
}
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
();
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
public
function
toDictionary
()
{
return
array
(
'orderKey'
=>
$this
->
getColumnOrderKey
(),
'hasHeaders'
=>
$this
->
getHasHeaders
(),
'canReorder'
=>
$this
->
getCanReorder
(),
);
}
}
File Metadata
Details
Attached
Mime Type
text/x-php
Expires
Wed, May 7, 3:28 PM (2 d)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
89660
Default Alt Text
PhabricatorProjectColumnOrder.php (4 KB)
Attached To
Mode
rP Phorge
Attached
Detach File
Event Timeline
Log In to Comment