/** * Updates the Upload/Attach response from the UploadField * with the new DataObject records for the JS template * * @param DataObject $record Newly create DataObject record * @param array $uploadResponse Upload or Attach response from UploadField * @return array Updated $uploadResponse with $record data */ protected function newRecordJSTemplateData(DataObject &$record, &$uploadResponse) { // fetch uploadedFile record and sort out previewURL // update $uploadResponse datas in case changes happened onAfterWrite() $uploadedFile = DataObject::get_by_id($this->component->getFileRelationClassName($this->gridField), $uploadResponse['id']); if ($uploadedFile) { $uploadResponse['name'] = $uploadedFile->Name; $uploadResponse['url'] = $uploadedFile->getURL(); if ($uploadedFile instanceof Image) { $uploadResponse['thumbnail_url'] = $uploadedFile->CroppedImage(30, 30)->getURL(); } else { $uploadResponse['thumbnail_url'] = $uploadedFile->Icon(); } // check if our new record has a Title, if not create one automatically $title = $record->getTitle(); if (!$title || $title === $record->ID) { if ($record->hasDatabaseField('Title')) { $record->Title = $uploadedFile->Title; $record->write(); } else { if ($record->hasDatabaseField('Name')) { $record->Name = $uploadedFile->Title; $record->write(); } } } } // Collect all data for JS template $return = array_merge($uploadResponse, array('record' => array('id' => $record->ID))); return $return; }