Example #1
0
 /**
  * Scaffolds the relation WidgetArea into the context CMSFields and configurates
  * the GridField.
  * 
  * @param DataObject $context Context to get Widget admin for
  * 
  * @return void
  *
  * @author Sebastian Diel <*****@*****.**>
  * @since 05.03.2014
  */
 public static function scaffold_widget_area_fields_for($context)
 {
     $fields = $context->WidgetArea()->scaffoldFormFields(array('includeRelations' => $context->isInDB(), 'tabbed' => false, 'ajaxSafe' => true));
     if ($context->isInDB()) {
         $widgetsField = $fields->dataFieldByName('Widgets');
         $widgetsFieldConfig = $widgetsField->getConfig();
         $widgetsFieldConfig->removeComponentsByType('GridFieldAddExistingAutocompleter');
         if (class_exists('GridFieldSortableRows')) {
             $widgetsFieldConfig->addComponent(new GridFieldSortableRows('Sort'));
         }
         $widgetsFieldConfig->getComponentByType('GridFieldDataColumns')->setDisplayFields(array('Title' => $context->fieldLabel('Title'), 'ClassName' => _t('WidgetSetWidget.TYPE')));
         // this is configured with a remove relation button by default which results in unaccessible widgets
         $widgetsFieldConfig->removeComponentsByType('GridFieldDeleteAction');
         // so we add a new one without a relation button
         $widgetsFieldConfig->addComponent(new GridFieldDeleteAction());
     }
     return $fields;
 }