Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F2889375
LegalpadDocumentEditEngine.php
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Award Token
Flag For Later
Advanced/Developer...
View Handle
View Hovercard
Size
5 KB
Referenced Files
None
Subscribers
None
LegalpadDocumentEditEngine.php
View Options
<?php
final
class
LegalpadDocumentEditEngine
extends
PhabricatorEditEngine
{
const
ENGINECONST
=
'legalpad.document'
;
public
function
getEngineName
(
)
{
return
pht
(
'Legalpad'
)
;
}
public
function
getEngineApplicationClass
(
)
{
return
PhabricatorLegalpadApplication
::
class
;
}
public
function
getSummaryHeader
(
)
{
return
pht
(
'Configure Legalpad Forms'
)
;
}
public
function
getSummaryText
(
)
{
return
pht
(
'Configure creation and editing documents in Legalpad.'
)
;
}
public
function
isEngineConfigurable
(
)
{
return
false
;
}
protected
function
newEditableObject
(
)
{
$viewer
=
$this
->
getViewer
(
)
;
$document
=
LegalpadDocument
::
initializeNewDocument
(
$viewer
)
;
$body
=
id
(
new
LegalpadDocumentBody
(
)
)
->
setCreatorPHID
(
$viewer
->
getPHID
(
)
)
;
$document
->
attachDocumentBody
(
$body
)
;
$document
->
setDocumentBodyPHID
(
PhabricatorPHIDConstants
::
PHID_VOID
)
;
return
$document
;
}
protected
function
newObjectQuery
(
)
{
return
id
(
new
LegalpadDocumentQuery
(
)
)
->
needDocumentBodies
(
true
)
;
}
protected
function
getObjectCreateTitleText
(
$object
)
{
return
pht
(
'Create New Document'
)
;
}
protected
function
getObjectEditTitleText
(
$object
)
{
$body
=
$object
->
getDocumentBody
(
)
;
$title
=
$body
->
getTitle
(
)
;
return
pht
(
'Edit Document: %s'
,
$title
)
;
}
protected
function
getObjectEditShortText
(
$object
)
{
$body
=
$object
->
getDocumentBody
(
)
;
return
$body
->
getTitle
(
)
;
}
protected
function
getObjectCreateShortText
(
)
{
return
pht
(
'Create Document'
)
;
}
protected
function
getObjectName
(
)
{
return
pht
(
'Document'
)
;
}
protected
function
getObjectCreateCancelURI
(
$object
)
{
return
$this
->
getApplication
(
)
->
getApplicationURI
(
'/'
)
;
}
protected
function
getEditorURI
(
)
{
return
$this
->
getApplication
(
)
->
getApplicationURI
(
'edit/'
)
;
}
protected
function
getObjectViewURI
(
$object
)
{
$id
=
$object
->
getID
(
)
;
return
$this
->
getApplication
(
)
->
getApplicationURI
(
'view/'
.
$id
.
'/'
)
;
}
protected
function
getCreateNewObjectPolicy
(
)
{
return
$this
->
getApplication
(
)
->
getPolicy
(
LegalpadCreateDocumentsCapability
::
CAPABILITY
)
;
}
protected
function
buildCustomEditFields
(
$object
)
{
$viewer
=
$this
->
getViewer
(
)
;
$body
=
$object
->
getDocumentBody
(
)
;
$document_body
=
$body
->
getText
(
)
;
$is_create
=
$this
->
getIsCreate
(
)
;
$is_admin
=
$viewer
->
getIsAdmin
(
)
;
$fields
=
array
(
)
;
$fields
[
]
=
id
(
new
PhabricatorTextEditField
(
)
)
->
setKey
(
'title'
)
->
setLabel
(
pht
(
'Title'
)
)
->
setDescription
(
pht
(
'Document Title.'
)
)
->
setConduitTypeDescription
(
pht
(
'New document title.'
)
)
->
setValue
(
$object
->
getTitle
(
)
)
->
setIsRequired
(
true
)
->
setTransactionType
(
LegalpadDocumentTitleTransaction
::
TRANSACTIONTYPE
)
;
if
(
$is_create
)
{
$fields
[
]
=
id
(
new
PhabricatorSelectEditField
(
)
)
->
setKey
(
'signatureType'
)
->
setLabel
(
pht
(
'Who Should Sign?'
)
)
->
setDescription
(
pht
(
'Type of signature required'
)
)
->
setConduitTypeDescription
(
pht
(
'New document signature type.'
)
)
->
setValue
(
$object
->
getSignatureType
(
)
)
->
setOptions
(
LegalpadDocument
::
getSignatureTypeMap
(
)
)
->
setTransactionType
(
LegalpadDocumentSignatureTypeTransaction
::
TRANSACTIONTYPE
)
;
$show_require
=
true
;
}
else
{
$fields
[
]
=
id
(
new
PhabricatorStaticEditField
(
)
)
->
setLabel
(
pht
(
'Who Should Sign?'
)
)
->
setValue
(
$object
->
getSignatureTypeName
(
)
)
;
$individual
=
LegalpadDocument
::
SIGNATURE_TYPE_INDIVIDUAL
;
$show_require
=
$object
->
getSignatureType
(
)
==
$individual
;
}
if
(
$show_require
&&
$is_admin
)
{
$fields
[
]
=
id
(
new
PhabricatorBoolEditField
(
)
)
->
setKey
(
'requireSignature'
)
->
setOptions
(
pht
(
'No Signature Required'
)
,
pht
(
'Signature Required to Log In'
)
)
->
setAsCheckbox
(
true
)
->
setTransactionType
(
LegalpadDocumentRequireSignatureTransaction
::
TRANSACTIONTYPE
)
->
setDescription
(
pht
(
'Marks this document as required signing.'
)
)
->
setConduitDescription
(
pht
(
'Marks this document as required signing.'
)
)
->
setValue
(
$object
->
getRequireSignature
(
)
)
;
}
$fields
[
]
=
id
(
new
PhabricatorRemarkupEditField
(
)
)
->
setKey
(
'preamble'
)
->
setLabel
(
pht
(
'Preamble'
)
)
->
setDescription
(
pht
(
'The preamble of the document.'
)
)
->
setConduitTypeDescription
(
pht
(
'New document preamble.'
)
)
->
setValue
(
$object
->
getPreamble
(
)
)
->
setTransactionType
(
LegalpadDocumentPreambleTransaction
::
TRANSACTIONTYPE
)
;
$fields
[
]
=
id
(
new
PhabricatorRemarkupEditField
(
)
)
->
setKey
(
'text'
)
->
setLabel
(
pht
(
'Document Body'
)
)
->
setDescription
(
pht
(
'The body of text of the document.'
)
)
->
setConduitTypeDescription
(
pht
(
'New document body.'
)
)
->
setValue
(
$document_body
)
->
setIsRequired
(
true
)
->
setTransactionType
(
LegalpadDocumentTextTransaction
::
TRANSACTIONTYPE
)
;
return
$fields
;
}
}
File Metadata
Details
Attached
Mime Type
text/x-php
Expires
Jan 19 2025, 12:04 (4 w, 4 d ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
1124367
Default Alt Text
LegalpadDocumentEditEngine.php (5 KB)
Attached To
Mode
rP Phorge
Attached
Detach File
Event Timeline
Log In to Comment