public static function eventConfig() { $gridEventConfig = GridFieldConfig_RecordEditor::create(); //Custom detail form $gridEventConfig->removeComponentsByType('GridFieldDetailForm'); $gridEventConfig->addComponent(new CalendarEventGridFieldDetailForm()); //Custom columns $gridEventConfig->removeComponentsByType('GridFieldDataColumns'); $dataColumns = new GridFieldDataColumns(); $summaryFields = Event::$summary_fields; //Show the page if the event is connected to an event page if (CalendarConfig::subpackage_setting('pagetypes', 'enable_eventpage')) { $summaryFields['getEventPageCalendarTitle'] = 'Page'; } //event classname - we might not always want it here - but here it is - for now $summaryFields['i18n_singular_name'] = 'Type'; $dataColumns->setDisplayFields($summaryFields); $gridEventConfig->addComponent($dataColumns, 'GridFieldEditButton'); return $gridEventConfig; }
/** * Frontend fields * Simple list of the basic fields - how they're intended to be edited */ function getFrontEndFields($params = null) { //parent::getFrontEndFields($params); $timeFrameHeaderText = 'Time Frame'; if (!CalendarConfig::subpackage_setting('events', 'force_end')) { $timeFrameHeaderText = 'End Date / Time (optional)'; } $fields = FieldList::create(TextField::create('Title')->setAttribute('placeholder', 'Enter a title'), CheckboxField::create('AllDay', 'All-day'), $startDateTime = DatetimeField::create('StartDateTime', 'Start'), CheckboxField::create('NoEnd', 'Open End'), HeaderField::create('TimeFrameHeader', $timeFrameHeaderText, 5), SelectionGroup::create('TimeFrameType', array("Duration//Duration" => TimeField::create('Duration', '')->setRightTitle('up to 24h')->setAttribute('placeholder', 'Enter duration'), "DateTime//Date/Time" => $endDateTime = DateTimeField::create('EndDateTime', ''))), LiteralField::create('Clear', '<div class="clear"></div>')); //Date field settings $timeExpl = 'Time, e.g. 11:15am or 15:30'; //$startDateTime->setConfig('datavalueformat', 'YYYY-MM-dd HH:mm'); //$endDateTime->setConfig('datavalueformat', 'YYYY-MM-dd HH:mm'); $startDateTime->getDateField()->setConfig('showcalendar', 1)->setAttribute('placeholder', 'Enter date')->setAttribute('readonly', 'true'); //we only want input through the datepicker $startDateTime->getTimeField()->setConfig('timeformat', 'HH:mm')->setAttribute('placeholder', 'Enter time'); $endDateTime->getDateField()->setConfig('showcalendar', 1)->setAttribute('placeholder', 'Enter date')->setAttribute('readonly', 'true'); //we only want input through the datepicker $endDateTime->getTimeField()->setConfig('timeformat', 'HH:mm')->setAttribute('placeholder', 'Enter time'); //removing AllDay checkbox if allday events are disabled if (!CalendarConfig::subpackage_setting('events', 'enable_allday_events')) { $fields->removeByName('AllDay'); } //removing NoEnd checkbox if end dates are enforced if (CalendarConfig::subpackage_setting('events', 'force_end')) { $fields->removeByName('NoEnd'); } else { //we don't want the NoEnd checkbox when creating new events if (!$this->ID) { //$fields->removeByName('NoEnd'); } } $this->extend('updateFrontEndFields', $fields); return $fields; }