ENHANCEMENT: Allow setting of canAttachExisting and canPreviewFolder

#62 Squashed
This commit is contained in:
James Cocker 2014-06-17 10:48:47 +01:00
parent b9d8cd9b22
commit 170d4bb72d
2 changed files with 25 additions and 5 deletions

View File

@ -23,6 +23,8 @@ The available configuration options are:
* 'folderName' : name of the folder where the images or files should be uploaded * 'folderName' : name of the folder where the images or files should be uploaded
* 'maxFileSize' : integer, maximum upload file size in bytes * 'maxFileSize' : integer, maximum upload file size in bytes
* 'sequentialUploads' : boolean, if true files will be uploaded one by one * 'sequentialUploads' : boolean, if true files will be uploaded one by one
* 'canAttachExisting' : boolean, if false the "From files" button will not be displayed in the UploadField (default: true)
* 'canPreviewFolder' : boolean, if false the upload location will not be displayed in the UploadField (default: true)
## Bulk Editing ## Bulk Editing
To get a quick edit shortcut to all the newly upload files, please also add the `GridFieldBulkManager` component to your `GridFieldConfig`. To get a quick edit shortcut to all the newly upload files, please also add the `GridFieldBulkManager` component to your `GridFieldConfig`.

View File

@ -15,13 +15,17 @@ class GridFieldBulkUpload implements GridField_HTMLProvider, GridField_URLHandle
* 'folderName' => where to upload the files * 'folderName' => where to upload the files
* 'maxFileSize' => maximum file size allowed per upload * 'maxFileSize' => maximum file size allowed per upload
* 'sequentialUploads' => process uploads 1 after the other rather than all at once * 'sequentialUploads' => process uploads 1 after the other rather than all at once
* 'canAttachExisting' => displays "From files" button in the UploadField
* 'canPreviewFolder' => displays the upload location in the UploadField
* @var array * @var array
*/ */
protected $config = array( protected $config = array(
'fileRelationName' => null, 'fileRelationName' => null,
'folderName' => 'bulkUpload', 'folderName' => 'bulkUpload',
'maxFileSize' => null, 'maxFileSize' => null,
'sequentialUploads' => false 'sequentialUploads' => false,
'canAttachExisting' => true,
'canPreviewFolder' => true
); );
@ -60,10 +64,22 @@ class GridFieldBulkUpload implements GridField_HTMLProvider, GridField_URLHandle
$value = null; $value = null;
} }
//sequentialUploads true/false //sequentialUploads true/false
if ( $reference == 'sequentialUploads' && !is_bool($value) ) if ( $reference == 'sequentialUploads' && !is_bool($value) )
{ {
$value = false; $value = false;
}
//canAttachExisting true/false
if ( $reference == 'canAttachExisting' && !is_bool($value) )
{
$value = true;
}
//canPreviewFolder true/false
if ( $reference == 'canPreviewFolder' && !is_bool($value) )
{
$value = true;
} }
$this->config[$reference] = $value; $this->config[$reference] = $value;
@ -159,7 +175,9 @@ class GridFieldBulkUpload implements GridField_HTMLProvider, GridField_URLHandle
->setConfig('previewMaxWidth', 20) ->setConfig('previewMaxWidth', 20)
->setConfig('previewMaxHeight', 20) ->setConfig('previewMaxHeight', 20)
->setConfig('changeDetection', false) ->setConfig('changeDetection', false)
->setConfig('canPreviewFolder', $this->getConfig('canPreviewFolder'))
->setConfig('canAttachExisting', $this->getConfig('canAttachExisting'))
->setRecord(DataObject::create()) // avoid UploadField to get auto-config from the Page (e.g fix allowedMaxFileNumber) ->setRecord(DataObject::create()) // avoid UploadField to get auto-config from the Page (e.g fix allowedMaxFileNumber)
->setTemplate('GridFieldBulkUploadField') ->setTemplate('GridFieldBulkUploadField')