public function updateCMSFields(FieldList $fields)
 {
     $sortable = singleton('CleanTeaser')->hasExtension('SortableDataExtension');
     $config = GridFieldConfig_RelationEditor::create();
     $config->addComponent($gridFieldForm = new GridFieldDetailForm());
     $dataFields = array();
     if (singleton('CleanTeaser')->hasExtension('CMSPublishableDataExtension')) {
         $dataFields['PublishIndicator'] = 'Published';
     }
     $dataFields = array_merge($dataFields, array('Thumbnail' => 'Thumbnail', 'Title' => 'Title', 'CleanDescription' => 'Description'));
     $config->getComponentByType('GridFieldDataColumns')->setDisplayFields($dataFields);
     $gridFieldForm->setTemplate('CMSGridFieldPopupForms');
     if ($sortable) {
         $config->addComponent(new GridFieldSortableRows('SortOrder'));
     }
     if (ClassInfo::exists('GridFieldBulkUpload')) {
         $iu = new GridFieldBulkUpload('ImageID');
         if (singleton('CleanTeaser')->hasExtension('ControlledFolderDataExtension')) {
             $iu->setUfConfig('folderName', singleton('CleanTeaser')->getUploadFolder());
         } else {
             $iu->setUfConfig('folderName', CleanTeaser::$upload_folder);
         }
         $config->addComponent($iu);
     }
     if ($sortable) {
         $data = $this->owner->CleanTeasers("ClassName = 'CleanTeaser'")->sort('SortOrder');
     } else {
         $data = $this->owner->CleanTeasers("ClassName = 'CleanTeaser'");
     }
     // $config->removeComponentsByType('GridFieldAddNewButton');
     // if (ClassInfo::exists('GridFieldBulkUpload')) {
     // 	$config->addComponent(new GridFieldAddNewMultiClass());
     // }
     $fields->addFieldToTab("Root.Teasers", GridField::create('CleanTeasers', 'CleanTeaser', $data, $config));
 }
 public function updateCMSFields(FieldList $fields)
 {
     $sortable = singleton('CleanFile')->hasExtension('SortableDataExtension');
     $config = GridFieldConfig_RelationEditor::create();
     $config->addComponent($gridFieldForm = new GridFieldDetailForm());
     if ($sortable) {
         $config->addComponent(new GridFieldSortableRows('SortOrder'));
     }
     $iu = new GridFieldBulkUpload('Attachment');
     if (singleton('CleanFile')->hasExtension('ControlledFolderDataExtension')) {
         $iu->setUfConfig('folderName', singleton('CleanFile')->getUploadFolder());
     } else {
         $iu->setUfConfig('folderName', CleanFile::$upload_folder);
     }
     $config->addComponent($iu);
     if ($sortable) {
         $data = $this->owner->CleanFiles("ClassName = 'CleanFile'")->sort('SortOrder');
     } else {
         $data = $this->owner->CleanFiles("ClassName = 'CleanFile'");
     }
     $fields->addFieldToTab("Root.Files", GridField::create('CleanFiles', 'CleanFile', $data, $config));
 }
 public function getCMSFields()
 {
     $fields = parent::getCMSFields();
     $gridFieldConfig = GridFieldConfig_RecordEditor::create();
     //$gridFieldConfig->addComponent(new GridFieldBulkEditingTools());
     $gridFieldConfig->addComponent($gbu = new GridFieldBulkUpload());
     $editableFields = array('Title', 'Caption', 'Aperture', 'ShutterSpeed', 'Image');
     $gridFieldConfig->addComponent($gbm = new GridFieldBulkManager($editableFields));
     $gridFieldConfig->addComponent(new GridFieldSortableRows('SortOrder'));
     $galleryimagesi18n = _t('GalleryImage.PLURALNAME', 'Gallery Images');
     //$gbu->setConfig('fileRelationName','Image');
     $gbu->setUfConfig('folderName', 'galleries/' . $this->ID);
     $gbm->setConfig('editableFields', $editableFields);
     // This is no longer available... $gbm->setConfig('fieldsNameBlacklist', array('Lat', 'Lon', 'ZoomLevel'));
     $gridfield = new GridField('GalleryImages', $galleryimagesi18n, $this->GalleryImages()->sort('"SortOrder"'), $gridFieldConfig);
     $fields->addFieldToTab('Root.' . $galleryimagesi18n, $gridfield);
     $fields->addFieldToTab('Root.Date', new DateField('GalleryDate'));
     return $fields;
 }