Merge pull request #5822 from antons-/patch-1

Use columns from gridfield for export
This commit is contained in:
Daniel Hensby 2016-07-18 23:39:44 +01:00 committed by GitHub
commit 6f164c03fe

View File

@ -91,6 +91,25 @@ class GridFieldExportButton implements GridField_HTMLProvider, GridField_ActionP
return SS_HTTPRequest::send_file($fileData, $fileName, 'text/csv');
}
}
/**
* Return the columns to export
*
* @param GridField $gridField
*
* @return array
*/
protected function getExportColumnsForGridField(GridField $gridField) {
if($this->exportColumns) {
$exportColumns = $this->exportColumns;
} else if($dataCols = $gridField->getConfig()->getComponentByType('GridFieldDataColumns')) {
$exportColumns = $dataCols->getDisplayFields($gridField);
} else {
$exportColumns = singleton($gridField->getModelClass())->summaryFields();
}
return $exportColumns;
}
/**
* Generate export fields for CSV.
@ -100,9 +119,7 @@ class GridFieldExportButton implements GridField_HTMLProvider, GridField_ActionP
*/
public function generateExportFileData($gridField) {
$separator = $this->csvSeparator;
$csvColumns = ($this->exportColumns)
? $this->exportColumns
: singleton($gridField->getModelClass())->summaryFields();
$csvColumns = $this->getExportColumnsForGridField($gridField);
$fileData = '';
if($this->csvHasHeader) {