Page Menu
Home
c4science
Search
Configure Global Search
Log In
Files
F115780039
PhabricatorDashboard.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, Jun 2, 23:10
Size
3 KB
Mime Type
text/x-php
Expires
Wed, Jun 4, 23:10 (2 d)
Engine
blob
Format
Raw Data
Handle
26495569
Attached To
rPH Phabricator
PhabricatorDashboard.php
View Options
<?php
/**
* A collection of dashboard panels with a specific layout.
*/
final
class
PhabricatorDashboard
extends
PhabricatorDashboardDAO
implements
PhabricatorPolicyInterface
,
PhabricatorDestructibleInterface
{
protected
$name
;
protected
$viewPolicy
;
protected
$editPolicy
;
protected
$layoutConfig
=
array
();
private
$panelPHIDs
=
self
::
ATTACHABLE
;
private
$panels
=
self
::
ATTACHABLE
;
public
static
function
initializeNewDashboard
(
PhabricatorUser
$actor
)
{
return
id
(
new
PhabricatorDashboard
())
->
setName
(
''
)
->
setViewPolicy
(
PhabricatorPolicies
::
POLICY_USER
)
->
setEditPolicy
(
$actor
->
getPHID
())
->
attachPanels
(
array
())
->
attachPanelPHIDs
(
array
());
}
public
static
function
copyDashboard
(
PhabricatorDashboard
$dst
,
PhabricatorDashboard
$src
)
{
$dst
->
name
=
$src
->
name
;
$dst
->
layoutConfig
=
$src
->
layoutConfig
;
return
$dst
;
}
public
function
getConfiguration
()
{
return
array
(
self
::
CONFIG_AUX_PHID
=>
true
,
self
::
CONFIG_SERIALIZATION
=>
array
(
'layoutConfig'
=>
self
::
SERIALIZATION_JSON
,
),
self
::
CONFIG_COLUMN_SCHEMA
=>
array
(
'name'
=>
'text255'
,
),
)
+
parent
::
getConfiguration
();
}
public
function
generatePHID
()
{
return
PhabricatorPHID
::
generateNewPHID
(
PhabricatorDashboardDashboardPHIDType
::
TYPECONST
);
}
public
function
getLayoutConfigObject
()
{
return
PhabricatorDashboardLayoutConfig
::
newFromDictionary
(
$this
->
getLayoutConfig
());
}
public
function
setLayoutConfigFromObject
(
PhabricatorDashboardLayoutConfig
$object
)
{
$this
->
setLayoutConfig
(
$object
->
toDictionary
());
return
$this
;
}
public
function
attachPanelPHIDs
(
array
$phids
)
{
$this
->
panelPHIDs
=
$phids
;
return
$this
;
}
public
function
getPanelPHIDs
()
{
return
$this
->
assertAttached
(
$this
->
panelPHIDs
);
}
public
function
attachPanels
(
array
$panels
)
{
assert_instances_of
(
$panels
,
'PhabricatorDashboardPanel'
);
$this
->
panels
=
$panels
;
return
$this
;
}
public
function
getPanels
()
{
return
$this
->
assertAttached
(
$this
->
panels
);
}
/* -( PhabricatorPolicyInterface )----------------------------------------- */
public
function
getCapabilities
()
{
return
array
(
PhabricatorPolicyCapability
::
CAN_VIEW
,
PhabricatorPolicyCapability
::
CAN_EDIT
,
);
}
public
function
getPolicy
(
$capability
)
{
switch
(
$capability
)
{
case
PhabricatorPolicyCapability
::
CAN_VIEW
:
return
$this
->
getViewPolicy
();
case
PhabricatorPolicyCapability
::
CAN_EDIT
:
return
$this
->
getEditPolicy
();
}
}
public
function
hasAutomaticCapability
(
$capability
,
PhabricatorUser
$viewer
)
{
return
false
;
}
public
function
describeAutomaticCapability
(
$capability
)
{
return
null
;
}
/* -( PhabricatorDestructibleInterface )----------------------------------- */
public
function
destroyObjectPermanently
(
PhabricatorDestructionEngine
$engine
)
{
$this
->
openTransaction
();
$installs
=
id
(
new
PhabricatorDashboardInstall
())->
loadAllWhere
(
'dashboardPHID = %s'
,
$this
->
getPHID
());
foreach
(
$installs
as
$install
)
{
$install
->
delete
();
}
$this
->
delete
();
$this
->
saveTransaction
();
}
}
Event Timeline
Log In to Comment