mirror of
https://github.com/silverstripe/silverstripe-dms
synced 2024-10-22 14:05:56 +02:00
FEATURE: WIP add existing document to page
This commit is contained in:
parent
546546ced1
commit
8be5a754bc
@ -73,18 +73,28 @@ class DMSDocumentAddController extends LeftAndMain {
|
|||||||
<a class=\"ss-ui-button ss-ui-action-constructive cms-panel-link ui-corner-all\" href=\"".$backlink."\">
|
<a class=\"ss-ui-button ss-ui-action-constructive cms-panel-link ui-corner-all\" href=\"".$backlink."\">
|
||||||
Done!
|
Done!
|
||||||
</a>";
|
</a>";
|
||||||
|
|
||||||
|
$addExistingField = new DMSDocumentAddExistingField('AddExisting', 'Add Existing');
|
||||||
|
$addExistingField->setRecord($page);
|
||||||
$form = new Form(
|
$form = new Form(
|
||||||
$this,
|
$this,
|
||||||
'getEditForm',
|
'getEditForm',
|
||||||
new FieldList(
|
new FieldList(
|
||||||
new HiddenField('ID', false, $page->ID),
|
new TabSet('Main',
|
||||||
$uploadField,
|
new Tab('From your computer',
|
||||||
new LiteralField(
|
new HiddenField('ID', false, $page->ID),
|
||||||
'AllowedExtensions',
|
$uploadField,
|
||||||
sprintf(
|
new LiteralField(
|
||||||
'<p>%s: %s</p>',
|
'AllowedExtensions',
|
||||||
_t('AssetAdmin.ALLOWEDEXTS', 'Allowed extensions'),
|
sprintf(
|
||||||
implode('<em>, </em>', $exts)
|
'<p>%s: %s</p>',
|
||||||
|
_t('AssetAdmin.ALLOWEDEXTS', 'Allowed extensions'),
|
||||||
|
implode('<em>, </em>', $exts)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
),
|
||||||
|
new Tab('From the CMS',
|
||||||
|
$addExistingField
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
|
37
code/cms/DMSDocumentAddExistingField.php
Normal file
37
code/cms/DMSDocumentAddExistingField.php
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
class DMSDocumentAddExistingField extends FormField {
|
||||||
|
/**
|
||||||
|
* Force a record to be used as "Parent" for uploaded Files (eg a Page with a has_one to File)
|
||||||
|
* @param DataObject $record
|
||||||
|
*/
|
||||||
|
public function setRecord($record) {
|
||||||
|
$this->record = $record;
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* Get the record to use as "Parent" for uploaded Files (eg a Page with a has_one to File) If none is set, it will use Form->getRecord() or Form->Controller()->data()
|
||||||
|
* @return DataObject
|
||||||
|
*/
|
||||||
|
public function getRecord() {
|
||||||
|
if (!$this->record && $this->form) {
|
||||||
|
if ($this->form->getRecord() && is_a($this->form->getRecord(), 'DataObject')) {
|
||||||
|
$this->record = $this->form->getRecord();
|
||||||
|
} elseif ($this->form->Controller() && $this->form->Controller()->hasMethod('data')
|
||||||
|
&& $this->form->Controller()->data() && is_a($this->form->Controller()->data(), 'DataObject')) {
|
||||||
|
$this->record = $this->form->Controller()->data();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return $this->record;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function FieldHolder($properties = array()) {
|
||||||
|
return $this->Field($properties);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function Field($properties = array()) {
|
||||||
|
return $this->renderWith('DMSDocumentAddExistingField');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
?>
|
20
templates/DMSDocumentAddExistingField.ss
Normal file
20
templates/DMSDocumentAddExistingField.ss
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
<div class="field">
|
||||||
|
|
||||||
|
<h3>
|
||||||
|
<span class="step-label">
|
||||||
|
<span class="flyout">1</span><span class="arrow"></span>
|
||||||
|
<span class="title">Link a Document</span>
|
||||||
|
</span>
|
||||||
|
</h3>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<h3>
|
||||||
|
<span class="step-label">
|
||||||
|
<span class="flyout">2</span><span class="arrow"></span>
|
||||||
|
<span class="title">Edit details</span>
|
||||||
|
</span>
|
||||||
|
</h3>
|
||||||
|
<div class="fileOverview">
|
||||||
|
<ul class="files"></ul>
|
||||||
|
</div>
|
Loading…
Reference in New Issue
Block a user