Esempio n. 1
0
 function getCMSFields()
 {
     if ($this->ID != 0) {
         $totalCount = $this->getTotalVotes();
     } else {
         $totalCount = 0;
     }
     $fields = new FieldList($rootTab = new TabSet("Root", new Tab("Main", new TextField('Title', 'Poll title (maximum 50 characters)', null, 50), new OptionsetField('MultiChoice', 'Single answer (radio buttons)/multi-choice answer (tick boxes)', array(0 => 'Single answer', 1 => 'Multi-choice answer')), new OptionsetField('IsActive', 'Poll state', array(1 => 'Active', 0 => 'Inactive')), $embargo = new DatetimeField('Embargo', 'Embargo'), $expiry = new DatetimeField('Expiry', 'Expiry'), new HTMLEditorField('Description', 'Description'))));
     $embargo->getDateField()->setConfig('showcalendar', true);
     $embargo->getTimeField()->setConfig('showdropdown', true);
     $embargo->getDateField()->setConfig('dateformat', 'dd/MM/YYYY');
     $embargo->getTimeField()->setConfig('timeformat', 'h:m a');
     $expiry->getDateField()->setConfig('showcalendar', true);
     $expiry->getTimeField()->setConfig('showdropdown', true);
     $expiry->getDateField()->setConfig('dateformat', 'dd/MM/YYYY');
     $expiry->getTimeField()->setConfig('timeformat', 'h:m a');
     // Add the fields that depend on the poll being already saved and having an ID
     if ($this->ID != 0) {
         $config = GridFieldConfig::create();
         $config->addComponent(new GridFieldToolbarHeader());
         $config->addComponent(new GridFieldAddNewButton('toolbar-header-right'));
         $config->addComponent(new GridFieldDataColumns());
         $config->addComponent(new GridFieldEditButton());
         $config->addComponent(new GridFieldDeleteAction());
         $config->addComponent(new GridFieldDetailForm());
         $config->addComponent(new GridFieldSortableHeader());
         $pollChoicesTable = new GridField('Choices', 'Choices', $this->Choices(), $config);
         $fields->addFieldToTab('Root.Data', $pollChoicesTable);
         $fields->addFieldToTab('Root.Data', new ReadonlyField('Total', 'Total votes', $totalCount));
     } else {
         $fields->addFieldToTab('Root.Choices', new ReadOnlyField('ChoicesPlaceholder', 'Choices', 'You will be able to add options once you have saved the poll for the first time.'));
     }
     $this->extend('updateCMSFields', $fields);
     return $fields;
 }
 /**
  * @return FieldList
  */
 public function getCMSFields()
 {
     $fields = parent::getCMSFields();
     $opsMember = array();
     foreach (Group::get() as $group) {
         if ($group->Permissions()->filter("Code", "INCIDENTS.STAFF")->count()) {
             foreach ($group->Members() as $member) {
                 $opsMember[$member->ID] = $member->FirstName . ' ' . $member->Surname . ' <' . $member->Email . '>';
             }
         }
     }
     $assignable = new DropdownField('AssigneeID', 'Assigned to', $opsMember);
     $fields->replaceField('AssigneeID', $assignable);
     $startTime = new DatetimeField('StartTime', 'Start time');
     $startTime->getDateField()->setConfig('showcalendar', 1);
     $fields->replaceField('StartTime', $startTime);
     $endTime = new DatetimeField('EndTime', 'End time');
     $endTime->getDateField()->setConfig('showcalendar', 1);
     $fields->replaceField('EndTime', $endTime);
     $interimReportLink = new TextField('InterimReportLink', 'Interim report link');
     $fields->replaceField('InterimReportLink', $interimReportLink);
     $interimSent = new CheckboxField('InterimReportSent', 'Interim report sent?');
     $fields->insertAfter($interimSent, 'InterimReportLink');
     $finalReportLink = new TextField('FinalReportLink', 'Final report link');
     $fields->replaceField('FinalReportLink', $finalReportLink);
     $interimSent = new CheckboxField('FinalReportSent', 'Final report sent?');
     $fields->insertAfter($interimSent, 'FinalReportLink');
     return $fields;
 }
 function getCMSFields()
 {
     $fields = parent::getCMSFields();
     $fields->addFieldsToTab('Root.Text', array(new ReadonlyField('Readonly', 'ReadonlyField'), new TextareaField('Textarea', 'TextareaField - 8 rows', 8), new TextField('Text', 'TextField'), new HtmlEditorField('HTMLField', 'HtmlEditorField'), new EmailField('Email', 'EmailField'), new PasswordField('Password', 'PasswordField'), new AjaxUniqueTextField('AjaxUniqueText', 'AjaxUniqueTextField', 'AjaxUniqueText', 'BasicFieldsTestPage')));
     $fields->addFieldsToTab('Root.Numeric', array(new NumericField('Number', 'NumericField'), new CurrencyField('Price', 'CurrencyField'), new PhoneNumberField('PhoneNumber', 'PhoneNumberField'), new CreditCardField('CreditCard', 'CreditCardField')));
     $fields->addFieldsToTab('Root.Option', array(new CheckboxField('Checkbox', 'CheckboxField'), new CheckboxSetField('CheckboxSet', 'CheckboxSetField', TestCategory::map()), new DropdownField('DropdownID', 'DropdownField', TestCategory::map()), new GroupedDropdownField('GroupedDropdownID', 'GroupedDropdown', array('Test Categorys' => TestCategory::map())), new ListboxField('ListboxFieldID', 'ListboxField', TestCategory::map(), array(), 3), new OptionsetField('OptionSetID', 'OptionSetField', TestCategory::map())));
     // All these date/time fields generally have issues saving directly in the CMS
     $fields->addFieldsToTab('Root.DateTime', array($calendarDateField = new DateField('CalendarDate', 'DateField with calendar'), new DateField('Date', 'DateField'), $dmyDateField = new DateField('DMYDate', 'DateField with separate fields'), new TimeField('Time', 'TimeField'), $timeFieldDropdown = new TimeField('TimeDropdown', 'TimeField with dropdown'), new DatetimeField('DateTime', 'DateTime'), $dateTimeShowCalendar = new DatetimeField('DateTimeWithCalendar', 'DateTime with calendar')));
     $calendarDateField->setConfig('showcalendar', true);
     $dmyDateField->setConfig('dmyfields', true);
     $timeFieldDropdown->setConfig('showdropdown', true);
     $dateTimeShowCalendar->getDateField()->setConfig('showcalendar', true);
     $dateTimeShowCalendar->getTimeField()->setConfig('showdropdown', true);
     $fields->addFieldsToTab('Root.File', array(UploadField::create('File', 'FileUploadField'), UploadField::create('Image', 'ImageUploadField'), UploadField::create('HasManyFiles', 'HasManyFilesUploadField'), UploadField::create('ManyManyFiles', 'ManyManyFilesUploadField')));
     $tabs = array('Root.Text', 'Root.Numeric', 'Root.Option', 'Root.DateTime', 'Root.File');
     foreach ($tabs as $tab) {
         $tabObj = $fields->fieldByName($tab);
         foreach ($tabObj->FieldList() as $field) {
             $disabledField = $field->performDisabledTransformation();
             $disabledField->setTitle($disabledField->Title() . ' (disabled)');
             $disabledField->setName($disabledField->getName() . '_disabled');
             $tabObj->insertAfter($disabledField, $field->getName());
             $readonlyField = $field->performReadonlyTransformation();
             $readonlyField->setTitle($readonlyField->Title() . ' (readonly)');
             $readonlyField->setName($readonlyField->getName() . '_readonly');
             $tabObj->insertAfter($readonlyField, $field->getName());
         }
     }
     $fields->addFieldToTab('Root.Text', new TextField('Text_NoLabel', false, 'TextField without label'), 'Text_disabled');
     return $fields;
 }
 public function getCMSFields()
 {
     $fields = parent::getCMSFields();
     Requirements::javascript(THIRDPARTY_DIR . '/jquery/jquery.js');
     Requirements::javascript('eventmanagement/javascript/event-ticket-cms.js');
     $fields->removeByName('EventID');
     $fields->removeByName('StartType');
     $fields->removeByName('StartDate');
     $fields->removeByName('StartDays');
     $fields->removeByName('StartHours');
     $fields->removeByName('StartMins');
     $fields->removeByName('EndType');
     $fields->removeByName('EndDate');
     $fields->removeByName('EndDays');
     $fields->removeByName('EndHours');
     $fields->removeByName('EndMins');
     if (class_exists('Payment')) {
         $fields->insertBefore(new OptionSetField('Type', 'Ticket type', array('Free' => 'Free ticket', 'Price' => 'Fixed price ticket')), 'Price');
     } else {
         $fields->removeByName('Type');
         $fields->removeByName('Price');
     }
     foreach (array('Start', 'End') as $type) {
         $fields->addFieldsToTab('Root.Main', array(new OptionSetField("{$type}Type", "{$type} sales at", array('Date' => 'A specific date and time', 'TimeBefore' => 'A time before the event starts')), $dateTime = new DatetimeField("{$type}Date", ''), $before = new FieldGroup("{$type}Offset", new NumericField("{$type}Days", 'Days'), new NumericField("{$type}Hours", 'Hours'), new NumericField("{$type}Mins", 'Minutes'))));
         $before->setName("{$type}Offset");
         $before->setTitle(' ');
         $dateTime->getDateField()->setConfig('showcalendar', true);
         $dateTime->getTimeField()->setConfig('showdropdown', true);
     }
     $fields->addFieldsToTab('Root.Advanced', array(new TextareaField('Description', 'Description'), new NumericField('MinTickets', 'Minimum tickets per order'), new NumericField('MaxTickets', 'Maximum tickets per order')));
     return $fields;
 }
 /**
  * Form used for displaying the currently logged items
  */
 public function LogsForm()
 {
     $fields = new FieldList(DropdownField::create('CalledMethod', _t('KapostBridgeLogViewer.CALLED_METHOD', '_Called Method'), array('blogger.getUsersBlogs' => 'blogger.getUsersBlogs', 'kapost.getPreview' => 'kapost.getPreview', 'metaWeblog.editPost' => 'metaWeblog.editPost', 'metaWeblog.getCategories' => 'metaWeblog.getCategories', 'metaWeblog.getPost' => 'metaWeblog.getPost', 'metaWeblog.newMediaObject' => 'metaWeblog.newMediaObject', 'metaWeblog.newPost' => 'metaWeblog.newPost', 'system.listMethods' => 'system.listMethods'))->setEmptyString('--- ' . _t('KapostBridgeLogViewer.FILTER_BY_METHOD', '_Filter by Method') . ' ---'), $startDate = new DatetimeField('LogStartDate', _t('KapostBridgeLogViewer.START_DATE_TIME', '_Start Date/Time')), $endDate = new DatetimeField('LogEndDate', _t('KapostBridgeLogViewer.END_DATE_TIME', '_End Date/Time')));
     $startDate->getDateField()->setConfig('showcalendar', true);
     $endDate->getDateField()->setConfig('showcalendar', true);
     $actions = new FieldList(FormAction::create('doApplyFilters', _t('KapostBridgeLogViewer.APPLY_FILTER', '_Apply Filter'))->addExtraClass('ss-ui-action-constructive')->setUseButtonTag(true), Object::create('ResetFormAction', 'clear', _t('KapostBridgeLogViewer.RESET', '_Reset'))->setUseButtonTag(true));
     $form = new Form($this, 'LogsForm', $fields, $actions);
     $form->addExtraClass('log-search-form')->setFormMethod('GET')->setFormAction($this->Link())->disableSecurityToken()->unsetValidator();
     // Load the form with previously sent search data
     $getVars = $this->request->getVars();
     //Workaround for start date field with no date or time
     if (array_key_exists('LogStartDate', $getVars)) {
         if (array_key_exists('date', $getVars['LogStartDate']) && !array_key_exists('time', $getVars['LogStartDate'])) {
             $getVars['LogStartDate']['time'] = '00:00:00';
         } else {
             if (!array_key_exists('date', $getVars['LogStartDate']) && array_key_exists('time', $getVars['LogStartDate'])) {
                 unset($getVars['LogStartDate']);
                 //Remove if there is no date present
             }
         }
     }
     //Workaround for end date field with no date or time
     if (array_key_exists('LogEndDate', $getVars)) {
         if (array_key_exists('date', $getVars['LogEndDate']) && !array_key_exists('time', $getVars['LogEndDate'])) {
             $getVars['LogEndDate']['time'] = '23:59:59';
         } else {
             if (!array_key_exists('date', $getVars['LogEndDate']) && array_key_exists('time', $getVars['LogEndDate'])) {
                 unset($getVars['LogEndDate']);
                 //Remove if there is no date present
             }
         }
     }
     $form->loadDataFrom($getVars);
     return $form;
 }
 function testSetValueWithDmyArray()
 {
     $f = new DatetimeField('Datetime', 'Datetime');
     $f->getDateField()->setConfig('dmyfields', true);
     $f->setValue(array('date' => array('day' => 29, 'month' => 03, 'year' => 2003), 'time' => '11pm'));
     $this->assertEquals($f->dataValue(), '2003-03-29 23:00:00');
 }
 public function getCMSFields()
 {
     $fields = FieldList::create(TabSet::create('Root'));
     $fields->addFieldToTab('Root.Main', new DropdownField('Type', 'Type', $this->dbObject('Type')->enumValues()));
     $fields->addFieldToTab('Root.Main', new TextField('Name', 'Name'));
     $fields->addFieldToTab('Root.Main', new TextareaField('Description', 'Description'));
     $fields->addFieldToTab('Root.Main', new TextareaField('Address', 'Address'));
     $fields->addFieldToTab('Root.Main', new TextField('Latitude', 'Latitude'));
     $fields->addFieldToTab('Root.Main', new TextField('Longitude', 'Longitude'));
     $fields->addFieldToTab('Root.Main', new TextField('LocationMessage', 'Message to display for this location'));
     $fields->addFieldToTab('Root.Main', new TextField('Website', 'Website'));
     $fields->addFieldToTab('Root.Main', new TextField('BookingLink', 'BookingLink'));
     $start_date = new DatetimeField('BookingStartDate', 'Booking Block - Start Date');
     $start_date->getDateField()->setConfig('showcalendar', true);
     $start_date->setConfig('dateformat', 'dd/MM/yyyy');
     $fields->addFieldToTab('Root.Main', $start_date);
     $end_date = new DatetimeField('BookingEndDate', 'Booking Block - End Date');
     $end_date->getDateField()->setConfig('showcalendar', true);
     $end_date->setConfig('dateformat', 'dd/MM/yyyy');
     $fields->addFieldToTab('Root.Main', $end_date);
     $fields->addFieldToTab('Root.Main', new TextField('InRangeBookingGraphic', 'URL of graphic of an in range stay'));
     $fields->addFieldToTab('Root.Main', new TextField('OutOfRangeBookingGraphic', 'URL of graphic of an out of range stay'));
     $fields->addFieldToTab('Root.Main', new CheckboxField('IsSoldOut', 'This location is <strong>sold out</strong> (applies to hotels only)'));
     $fields->addFieldToTab('Root.Main', new CheckboxField('DisplayOnSite', 'Show this location on the website. Will be hidden if unchecked.'));
     $fields->addFieldToTab('Root.Main', new CheckboxField('DetailsPage', 'Send people to a details page first?'));
     $fields->addFieldToTab('Root.Main', new TextField('DistanceFromVenue', 'Distance From Venue'));
     $fields->addFieldToTab('Root.Main', new TextField('PublicTransitInstructions', 'Public Transit Instructions'));
     return $fields;
 }
 public function getCMSFields()
 {
     $fields = new FieldList($rootTab = new TabSet("Root", $tabMain = new Tab('Main')));
     $fields->addFieldToTab('Root.Main', new TextField('Title', 'Title'));
     $start_date = new DatetimeField('StartDate', 'Start Date');
     $end_date = new DatetimeField('EndDate', 'End Date');
     $start_date->getDateField()->setConfig('showcalendar', true);
     $start_date->setConfig('dateformat', 'dd/MM/yyyy');
     $end_date->getDateField()->setConfig('showcalendar', true);
     $end_date->setConfig('dateformat', 'dd/MM/yyyy');
     $fields->addFieldToTab('Root.Main', $start_date);
     $fields->addFieldToTab('Root.Main', $end_date);
     $fields->addFieldToTab('Root.Main', new CheckboxField('Enabled', 'Is Enabled'));
     $fields->addFieldToTab('Root.Main', new HiddenField('CreatedByID', 'CreatedByID', Member::currentUserID()));
     //steps
     if ($this->ID > 0) {
         $_REQUEST['survey_template_id'] = $this->ID;
         // steps
         $config = GridFieldConfig_RecordEditor::create();
         $config->removeComponentsByType('GridFieldAddNewButton');
         $multi_class_selector = new GridFieldAddNewMultiClass();
         $step_types = array('SurveyRegularStepTemplate' => 'Regular Step', 'SurveyDynamicEntityStepTemplate' => 'Entities Holder Step');
         $count = $this->Steps()->filter('ClassName', 'SurveyThankYouStepTemplate')->count();
         if (intval($count) === 0) {
             $step_types['SurveyThankYouStepTemplate'] = 'Thank You (Final)';
         }
         $multi_class_selector->setClasses($step_types);
         $config->addComponent($multi_class_selector);
         $config->addComponent($sort = new GridFieldSortableRows('Order'));
         $gridField = new GridField('Steps', 'Steps', $this->Steps(), $config);
         $fields->addFieldToTab('Root.Main', $gridField);
         //entities
         $config = GridFieldConfig_RecordEditor::create();
         $gridField = new GridField('EntitySurveys', 'Entities', $this->EntitySurveys(), $config);
         $fields->addFieldToTab('Root.Main', $gridField);
         // instances
         $config = GridFieldConfig_RecordEditor::create(100);
         $config->removeComponentsByType('GridFieldAddNewButton');
         $gridField = new GridField('Instances', 'Instances', $this->Instances(), $config);
         $fields->addFieldToTab('Root.Surveys', $gridField);
         //migration Mappings
         $config = GridFieldConfig_RecordEditor::create();
         $config->removeComponentsByType('GridFieldAddNewButton');
         $multi_class_selector = new GridFieldAddNewMultiClass();
         $migration_mapping_types = array('NewDataModelSurveyMigrationMapping' => 'New Migration Mapping');
         $multi_class_selector->setClasses($migration_mapping_types);
         $config->addComponent($multi_class_selector);
         $gridField = new GridField('MigrationMappings', 'Migration Mappings', $this->MigrationMappings(), $config);
         $dataColumns = $config->getComponentByType('GridFieldDataColumns');
         $migration = $this->MigrationMappings()->first();
         $dataColumns->setDisplayFields(!is_null($migration) && $migration->ClassName === 'OldDataModelSurveyMigrationMapping' ? OldDataModelSurveyMigrationMapping::getDisplayFields() : NewDataModelSurveyMigrationMapping::getDisplayFields());
         $fields->addFieldToTab('Root.Main', $gridField);
     }
     return $fields;
 }
 /**
  * @return FieldList
  */
 public function getCMSFields()
 {
     $fields = parent::getCMSFields();
     $fields->addFieldToTab('Root.Main', $dateTimeField = new DatetimeField('Date', $this->fieldLabel('Date')), 'Content');
     $dateTimeField->getDateField()->setConfig('showcalendar', true);
     $fields->addfieldToTab('Root.Main', $abstractField = new TextareaField('Abstract', $this->fieldLabel('Abstract')), 'Content');
     $abstractField->setAttribute('maxlength', '160');
     $abstractField->setRightTitle(_t('DateUpdatePage.AbstractDesc', 'The abstract is used as a summary on the listing pages. It is limited to 160 characters.'));
     $abstractField->setRows(6);
     return $fields;
 }
 /**
  * @param FieldList $fields
  */
 public function updateCMSFields(FieldList $fields)
 {
     Requirements::javascript('advancedreports/javascript/scheduled-report-settings.js');
     $first = new DatetimeField('FirstScheduled', _t('AdvancedReport.FIRST_SCHEDULED_GENERATION', 'First scheduled generation'));
     $first->getDateField()->setConfig('showcalendar', true);
     if ($this->owner->QueuedJobID) {
         $next = $this->owner->QueuedJob()->obj('StartAfter')->Nice();
     } else {
         $next = _t('AdvancedReport.NOT_CURRENTLY_SCHEDULED', 'not currently scheduled');
     }
     $fields->addFieldsToTab('Root.Scheduling', array(new CheckboxField('Scheduled', _t('AdvancedReport.SCHEDULE_REPORT_GENERATION', 'Schedule report generation?')), new TextField('ScheduledTitle', _t('AdvancedReport.SCHEDULED_REPORT_TITLE', 'Scheduled report title')), $first, new DropdownField('ScheduleEvery', _t('AdvancedReport.SCHEDULE_EVERY', 'Schedule every'), $this->owner->dbObject('ScheduleEvery')->enumValues()), TextField::create('ScheduleEveryCustom')->setTitle(_t('AdvancedReport.CUSTOM_INTERVAL', 'Custom interval'))->setDescription(_t('AdvancedReport.USING_STRTOTIME_FORMAT', 'Using relative <a href="{link}" target="_blank">strtotime</a> format', null, array('link' => 'http://php.net/strtotime'))), new TextField('EmailScheduledTo', _t('AdvancedReport.EMAIL_SCHEDULED_TO', 'Email scheduled reports to')), new ReadonlyField('NextScheduledGeneration', _t('AdvancedReport.NEXT_SCHEDULED_GENERATION', 'Next scheduled generation'), $next)));
 }
 public function getCMSFields()
 {
     $fields = parent::getCMSFields();
     $fields->addFieldToTab('Root.Main', $dateTimeField = new DatetimeField('Date'), 'Content');
     $dateTimeField->getDateField()->setConfig('showcalendar', true);
     $categories = NewsCategory::get()->sort('Title ASC');
     if ($categories && $categories->exists()) {
         $fields->addFieldToTab('Root.Main', new DropdownField('CategoryID', 'Category', $categories->map()), 'Content');
     }
     $fields->addFieldToTab('Root.Main', new TextareaField('Abstract'), 'Content');
     return $fields;
 }
 function getCMSFields()
 {
     $startdatefield = new DatetimeField('StartDate', 'StartDate');
     $startdatefield->getDateField()->setConfig('showcalendar', true);
     $startdatefield->setConfig('datavalueformat', 'dd.MM.YYYY HH:mm');
     $enddatefield = new DatetimeField('EndDate', 'EndDate');
     $enddatefield->getDateField()->setConfig('showcalendar', true);
     $enddatefield->setConfig('datavalueformat', 'dd.MM.YYYY HH:mm');
     $imagefield = new UploadField('Image', 'Image (optional)');
     $imagefield->allowedExtensions = array('jpg', 'gif', 'png');
     $fields = new FieldList(new TextField('Title', "Event Title"), $startdatefield, $enddatefield, new TextField('Teaser', "Teaser"), new TextareaField('Description'), new TextField('Linktitle'), new TextField('Link'), $imagefield);
     $this->extend('updateCMSFields', $fields);
     return $fields;
 }
 public function getCMSFields()
 {
     $f = new FieldList($rootTab = new TabSet("Root", $tabMain = new Tab('Main')));
     $f->addFieldToTab('Root.Main', new HiddenField('OwnerID', 'OwnerID'));
     $f->addFieldsToTab('Root.Main', new TextField('ExternalOrderId', '#Order'));
     $f->addFieldsToTab('Root.Main', new TextField('ExternalAttendeeId', '#Attendee'));
     $f->addFieldsToTab('Root.Main', $date = new DatetimeField('TicketBoughtDate', 'Bought Date'));
     $date->getDateField()->setConfig('showcalendar', true);
     $f->addFieldsToTab('Root.Main', $date = new DatetimeField('TicketChangedDate', 'Changed Date'));
     $date->getDateField()->setConfig('showcalendar', true);
     $summit_id = $_REQUEST['SummitID'];
     if (empty($summit_id)) {
         $summit_id = $this->Owner()->exists() ? $this->Owner()->SummitID : Summit::get_active()->ID;
     }
     $f->addFieldsToTab('Root.Main', $ddl = new DropdownField('TicketTypeID', 'Ticket Type', SummitTicketType::get()->filter('SummitID', $summit_id)->map("ID", "Name")));
     return $f;
 }
 public function getCMSFields()
 {
     $labels = $this->fieldLabels();
     $fields = parent::getCMSFields();
     $fields->removeByName("PortalId");
     $dateField = new DatetimeField("Date", $labels["Date"]);
     $dateField->getDateField()->setConfig('showcalendar', true);
     $fields->addFieldToTab("Root.Main", $dateField);
     $fields->addFieldToTab("Root.Main", new TextField("Name", $labels["Name"]));
     $fields->addFieldToTab("Root.Main", new EmailField("Email", $labels["Email"]));
     $fields->addFieldToTab("Root.Main", new TextField("Website", $labels["Website"]));
     $fields->addFieldToTab("Root.Main", new ReadonlyField("IpAddress", $labels["IpAddress"]));
     $fields->addFieldToTab("Root.Main", new ReadonlyField("Host", $labels["Host"]));
     $fields->addFieldToTab("Root.Main", new TextareaField("Message", $labels["Message"]));
     $fields->addFieldToTab("Root.Main", new TextareaField("Comment", $labels["Comment"]));
     return $fields;
 }
 public function getCMSFields()
 {
     $f = parent::getCMSFields();
     $f->addFieldToTab('Root.Main', $date = new DatetimeField('SubmissionBeginDate', 'Submission Begin Date'));
     $date->getDateField()->setConfig('showcalendar', true);
     $date->setConfig('dateformat', 'dd/MM/yyyy');
     $f->addFieldToTab('Root.Main', $date = new DatetimeField('SubmissionEndDate', 'Submission End Date'));
     $date->getDateField()->setConfig('showcalendar', true);
     $date->setConfig('dateformat', 'dd/MM/yyyy');
     $f->addFieldsToTab('Root.Main', new NumericField('MaxSubmissionAllowedPerUser', 'Max. Submission Allowed Per User'));
     if ($this->ID > 0) {
         $config = new GridFieldConfig_RelationEditor(100);
         $config->removeComponentsByType('GridFieldEditButton');
         $config->removeComponentsByType('GridFieldAddNewButton');
         $config->addComponent(new GridFieldDeleteAction('unlinkrelation'));
         $groups = new GridField('AllowedGroups', 'Allowed Groups', $this->AllowedGroups(), $config);
         $f->addFieldToTab('Root.Main', $groups);
     }
     return $f;
 }
 public function getFormField()
 {
     switch ($this->Type) {
         case 'datetime':
             $field = new DatetimeField($this->getFormFieldName(), $this->Title);
             $field->getDateField()->setConfig('showcalendar', true);
             $field->getTimeField()->setConfig('showdropdown', true);
             break;
         case 'date':
             $field = new DateField($this->getFormFieldName(), $this->Title);
             $field->setConfig('showcalendar', true);
             break;
         case 'time':
             $field = new TimeField($this->getFormFieldName(), $this->Title);
             $field->setConfig('showdropdown', true);
             break;
     }
     if ($this->DefaultType == 'created') {
         $field->setRightTitle('The value will default to the time this record was created.');
     }
     return $field;
 }
Esempio n. 17
0
 function getCMSFields()
 {
     Requirements::javascript('blog/javascript/bbcodehelp.js');
     Requirements::themedCSS('bbcodehelp');
     $firstName = Member::currentUser() ? Member::currentUser()->FirstName : '';
     $codeparser = new BBCodeParser();
     SiteTree::disableCMSFieldsExtensions();
     $fields = parent::getCMSFields();
     SiteTree::enableCMSFieldsExtensions();
     if (!self::$allow_wysiwyg_editing) {
         $fields->removeFieldFromTab("Root.Content.Main", "Content");
         $fields->addFieldToTab("Root.Content.Main", new TextareaField("Content", _t("BlogEntry.CN", "Content"), 20));
     }
     $fields->addFieldToTab("Root.Content.Main", $dateField = new DatetimeField("Date", _t("BlogEntry.DT", "Date")), "Content");
     $dateField->getDateField()->setConfig('showcalendar', true);
     $dateField->getTimeField()->setConfig('showdropdown', true);
     $fields->addFieldToTab("Root.Content.Main", new TextField("Author", _t("BlogEntry.AU", "Author"), $firstName), "Content");
     if (!self::$allow_wysiwyg_editing) {
         $fields->addFieldToTab("Root.Content.Main", new LiteralField("BBCodeHelper", "<div id='BBCode' class='field'>" . "<a  id=\"BBCodeHint\" target='new'>" . _t("BlogEntry.BBH", "BBCode help") . "</a>" . "<div id='BBTagsHolder' style='display:none;'>" . $codeparser->useable_tagsHTML() . "</div></div>"));
     }
     $fields->addFieldToTab("Root.Content.Main", new TextField("Tags", _t("BlogEntry.TS", "Tags (comma sep.)")), "Content");
     $this->extend('updateCMSFields', $fields);
     return $fields;
 }
Esempio n. 18
0
 public function getCMSFields()
 {
     $summit_id = isset($_REQUEST['SummitID']) ? $_REQUEST['SummitID'] : $this->SummitID;
     $f = new FieldList($rootTab = new TabSet("Root", $tabMain = new Tab('Main')));
     $f->addFieldToTab('Root.Main', new TextField('Title', 'Title'));
     $f->addFieldToTab('Root.Main', new HtmlEditorField('Description', 'Description'));
     $f->addFieldToTab('Root.Main', new ColorField("Color", "Color"));
     $f->addFieldToTab('Root.Main', new TextField('Audience', 'Audience'));
     $f->addFieldToTab('Root.Main', $date = new DatetimeField('StartDate', 'Start Date'));
     $date->getDateField()->setConfig('showcalendar', true);
     $date->setConfig('dateformat', 'dd/MM/yyyy');
     $f->addFieldToTab('Root.Main', $date = new DatetimeField('EndDate', 'End Date'));
     $date->getDateField()->setConfig('showcalendar', true);
     $date->setConfig('dateformat', 'dd/MM/yyyy');
     $f->addFieldToTab('Root.Main', new HiddenField('SummitID', 'SummitID'));
     return $f;
 }
Esempio n. 19
0
 public function getCMSFields()
 {
     $_REQUEST['SummitID'] = $this->ID;
     $f = new FieldList($rootTab = new TabSet("Root", $tabMain = new Tab('Main')));
     $f->addFieldToTab('Root.Main', new TextField('Title', 'Title'));
     $f->addFieldToTab('Root.Main', $link = new TextField('Link', 'Summit Page Link'));
     $link->setDescription('The link to the site page for this summit. Eg: <em>/summit/vancouver-2015/</em>');
     $f->addFieldToTab('Root.Main', new CheckboxField('Active', 'This is the active summit'));
     $f->addFieldToTab('Root.Main', $date_label = new TextField('DateLabel', 'Date label'));
     $date_label->setDescription('A readable piece of text representing the date, e.g. <em>May 12-20, 2015</em> or <em>December 2016</em>');
     $f->addFieldToTab('Root.Main', $registration_link = new TextField('RegistrationLink', 'Registration Link'));
     $registration_link->setDescription('Link to the site where tickets can be purchased.');
     $f->addFieldsToTab('Root.Main', $ddl_timezone = new DropdownField('TimeZone', 'Time Zone', DateTimeZone::listIdentifiers()));
     $ddl_timezone->setEmptyString('-- Select a Timezone --');
     $f->addFieldToTab('Root.Main', $date = new DatetimeField('SummitBeginDate', 'Summit Begin Date'));
     $date->getDateField()->setConfig('showcalendar', true);
     $date->setConfig('dateformat', 'dd/MM/yyyy');
     $f->addFieldToTab('Root.Main', $date = new DatetimeField('SummitEndDate', 'Summit End Date'));
     $date->getDateField()->setConfig('showcalendar', true);
     $date->setConfig('dateformat', 'dd/MM/yyyy');
     $f->addFieldToTab('Root.Main', $date = new DatetimeField('StartShowingVenuesDate', 'Start Showing Venues'));
     $date->getDateField()->setConfig('showcalendar', true);
     $date->setConfig('dateformat', 'dd/MM/yyyy');
     $f->addFieldToTab('Root.Main', $date = new DatetimeField('SubmissionBeginDate', 'Submission Begin Date'));
     $date->getDateField()->setConfig('showcalendar', true);
     $date->setConfig('dateformat', 'dd/MM/yyyy');
     $f->addFieldToTab('Root.Main', $date = new DatetimeField('SubmissionEndDate', 'Submission End Date'));
     $date->getDateField()->setConfig('showcalendar', true);
     $date->setConfig('dateformat', 'dd/MM/yyyy');
     $f->addFieldToTab('Root.Main', $date = new DatetimeField('VotingBeginDate', 'Voting Begin Date'));
     $date->getDateField()->setConfig('showcalendar', true);
     $date->setConfig('dateformat', 'dd/MM/yyyy');
     $f->addFieldToTab('Root.Main', $date = new DatetimeField('VotingEndDate', 'Voting End Date'));
     $date->getDateField()->setConfig('showcalendar', true);
     $date->setConfig('dateformat', 'dd/MM/yyyy');
     $f->addFieldToTab('Root.Main', $date = new DatetimeField('SelectionBeginDate', 'Selection Begin Date'));
     $date->getDateField()->setConfig('showcalendar', true);
     $date->setConfig('dateformat', 'dd/MM/yyyy');
     $f->addFieldToTab('Root.Main', $date = new DatetimeField('SelectionEndDate', 'Selection End Date'));
     $date->getDateField()->setConfig('showcalendar', true);
     $date->setConfig('dateformat', 'dd/MM/yyyy');
     $f->addFieldToTab('Root.Main', $date = new DatetimeField('RegistrationBeginDate', 'Registration Begin Date'));
     $date->getDateField()->setConfig('showcalendar', true);
     $date->setConfig('dateformat', 'dd/MM/yyyy');
     $f->addFieldToTab('Root.Main', $date = new DatetimeField('RegistrationEndDate', 'Registration End Date'));
     $date->getDateField()->setConfig('showcalendar', true);
     $date->setConfig('dateformat', 'dd/MM/yyyy');
     $logo_field = new UploadField('Logo', 'Logo');
     $logo_field->setAllowedMaxFileNumber(1);
     $logo_field->setAllowedFileCategories('image');
     $logo_field->setFolderName('summits/logos/');
     $logo_field->getValidator()->setAllowedMaxFileSize(1048576);
     $f->addFieldToTab('Root.Main', $logo_field);
     $f->addFieldToTab('Root.Main', new TextField('ComingSoonBtnText', 'Coming Soon Btn Text'));
     $f->addFieldToTab('Root.Main', new TextField('ExternalEventId', 'Eventbrite Event Id'));
     if ($this->ID > 0) {
         // tracks
         $config = GridFieldConfig_RecordEditor::create(10);
         $categories = new GridField('Categories', 'Presentation Categories', $this->Categories(), $config);
         $f->addFieldToTab('Root.Presentation Categories', $categories);
         // track groups
         $config = GridFieldConfig_RecordEditor::create(10);
         $categories = new GridField('CategoryGroups', 'Category Groups', $this->CategoryGroups(), $config);
         $f->addFieldToTab('Root.Category Groups', $categories);
         // locations
         $config = GridFieldConfig_RecordEditor::create();
         $config->removeComponentsByType('GridFieldAddNewButton');
         $multi_class_selector = new GridFieldAddNewMultiClass();
         $multi_class_selector->setClasses(array('SummitVenue' => 'Venue', 'SummitHotel' => 'Hotel', 'SummitAirport' => 'Airport', 'SummitExternalLocation' => 'External Location'));
         $config->addComponent($multi_class_selector);
         $config->addComponent($sort = new GridFieldSortableRows('Order'));
         $gridField = new GridField('Locations', 'Locations', $this->Locations()->where("ClassName <> 'SummitVenueRoom' "), $config);
         $f->addFieldToTab('Root.Locations', $gridField);
         // types
         $config = GridFieldConfig_RecordEditor::create();
         $config->addComponent(new GridFieldAddDefaultSummitTypes());
         $gridField = new GridField('Types', 'Types', $this->Types(), $config);
         $f->addFieldToTab('Root.Types', $gridField);
         // event types
         $config = GridFieldConfig_RecordEditor::create();
         $config->addComponent(new GridFieldAddDefaultEventTypes());
         $gridField = new GridField('EventTypes', 'EventTypes', $this->EventTypes(), $config);
         $f->addFieldToTab('Root.EventTypes', $gridField);
         //schedule
         $config = GridFieldConfig_RecordEditor::create(50);
         $config->addComponent(new GridFieldAjaxRefresh(1000, false));
         $config->removeComponentsByType('GridFieldDeleteAction');
         $gridField = new GridField('Schedule', 'Schedule', $this->Events()->filter('Published', true)->sort(array('StartDate' => 'ASC', 'EndDate' => 'ASC')), $config);
         $config->getComponentByType("GridFieldDataColumns")->setFieldCasting(array("Description" => "HTMLText->BigSummary"));
         $f->addFieldToTab('Root.Schedule', $gridField);
         $config->addComponent(new GridFieldPublishSummitEventAction());
         // events
         $config = GridFieldConfig_RecordEditor::create(50);
         $config->addComponent(new GridFieldPublishSummitEventAction());
         $config->addComponent(new GridFieldAjaxRefresh(1000, false));
         $config->addComponent($bulk_summit_types = new GridFieldBulkActionAssignSummitTypeSummitEvents());
         $bulk_summit_types->setTitle('Set Summit Types');
         $gridField = new GridField('Events', 'Events', $this->Events()->filter('ClassName', 'SummitEvent'), $config);
         $config->getComponentByType("GridFieldDataColumns")->setFieldCasting(array("Description" => "HTMLText->BigSummary"));
         $f->addFieldToTab('Root.Events', $gridField);
         //track selection list presentations
         $result = DB::query("SELECT DISTINCT SummitEvent.*, Presentation.*\nFROM SummitEvent\nINNER JOIN Presentation ON Presentation.ID = SummitEvent.ID\nINNER JOIN SummitSelectedPresentation ON SummitSelectedPresentation.PresentationID = Presentation.ID\nINNER JOIN SummitSelectedPresentationList ON SummitSelectedPresentation.SummitSelectedPresentationListID = SummitSelectedPresentationList.ID\nWHERE(ListType = 'Group') AND (SummitEvent.ClassName IN ('Presentation')) AND  (SummitEvent.SummitID = {$this->ID})");
         $presentations = new ArrayList();
         foreach ($result as $row) {
             $presentations->add(new Presentation($row));
         }
         $config = GridFieldConfig_RecordEditor::create(50);
         $config->addComponent(new GridFieldPublishSummitEventAction());
         $config->addComponent(new GridFieldAjaxRefresh(1000, false));
         $config->addComponent($bulk_summit_types = new GridFieldBulkActionAssignSummitTypeSummitEvents());
         $bulk_summit_types->setTitle('Set Summit Types');
         $config->removeComponentsByType('GridFieldAddNewButton');
         $gridField = new GridField('TrackChairs', 'TrackChairs Selection Lists', $presentations, $config);
         $gridField->setModelClass('Presentation');
         $f->addFieldToTab('Root.TrackChairs Selection Lists', $gridField);
         // attendees
         $config = GridFieldConfig_RecordEditor::create(50);
         $gridField = new GridField('Attendees', 'Attendees', $this->Attendees(), $config);
         $f->addFieldToTab('Root.Attendees', $gridField);
         //tickets types
         $config = GridFieldConfig_RecordEditor::create(50);
         $gridField = new GridField('SummitTicketTypes', 'Ticket Types', $this->SummitTicketTypes(), $config);
         $f->addFieldToTab('Root.TicketTypes', $gridField);
         // promo codes
         $config = GridFieldConfig_RecordEditor::create(50);
         $config->removeComponentsByType('GridFieldAddNewButton');
         $multi_class_selector = new GridFieldAddNewMultiClass();
         $multi_class_selector->setClasses(array('SpeakerSummitRegistrationPromoCode' => 'Speaker Promo Code'));
         $config->addComponent($multi_class_selector);
         $promo_codes = new GridField('SummitRegistrationPromoCodes', 'Registration Promo Codes', $this->SummitRegistrationPromoCodes(), $config);
         $f->addFieldToTab('Root.RegistrationPromoCodes', $promo_codes);
         // speakers
         $config = GridFieldConfig_RecordEditor::create(50);
         $gridField = new GridField('Speakers', 'Speakers', $this->Speakers(false), $config);
         $config->getComponentByType("GridFieldDataColumns")->setFieldCasting(array("Bio" => "HTMLText->BigSummary"));
         $f->addFieldToTab('Root.Speakers', $gridField);
         // presentations
         $config = GridFieldConfig_RecordEditor::create(50);
         $config->addComponent(new GridFieldPublishSummitEventAction());
         $config->addComponent(new GridFieldAjaxRefresh(1000, false));
         $config->addComponent($bulk_summit_types = new GridFieldBulkActionAssignSummitTypeSummitEvents());
         $bulk_summit_types->setTitle('Set Summit Types');
         $gridField = new GridField('Presentations', 'Presentations', $this->Presentations()->where(" Title IS NOT NULL AND Title <>'' "), $config);
         $config->getComponentByType("GridFieldDataColumns")->setFieldCasting(array("Description" => "HTMLText->BigSummary"));
         $f->addFieldToTab('Root.Presentations', $gridField);
         // push notifications
         $config = GridFieldConfig_RecordEditor::create(50);
         $config->addComponent(new GridFieldAjaxRefresh(1000, false));
         $config->getComponentByType('GridFieldDataColumns')->setDisplayFields(array('Channel' => 'Channel', 'Message' => 'Message', 'Owner.FullName' => 'Owner', 'IsSent' => 'Is Sent?'));
         $gridField = new GridField('Notifications', 'Notifications', $this->Notifications(), $config);
         $f->addFieldToTab('Root.Notifications', $gridField);
     }
     return $f;
 }
Esempio n. 20
0
 public function getCMSFields()
 {
     $summit_id = isset($_REQUEST['SummitID']) ? $_REQUEST['SummitID'] : $this->SummitID;
     $f = new FieldList($rootTab = new TabSet("Root", $tabMain = new Tab('Main')));
     $f->addFieldToTab('Root.Main', new TextField('Title', 'Title'));
     $f->addFieldToTab('Root.Main', new HtmlEditorField('Description', 'Description'));
     $f->addFieldToTab('Root.Main', new HtmlEditorField('ShortDescription', 'Short Description'));
     $f->tag('Tags', 'Tags', Tag::get(), $this->Tags())->configure()->setTitleField('Tag')->end();
     $f->addFieldToTab('Root.Main', new CheckboxField('AllowFeedBack', 'Is feedback allowed?'));
     $f->addFieldToTab('Root.Main', new HiddenField('SummitID', 'SummitID'));
     $f->addFieldToTab('Root.Main', $date = new DatetimeField('StartDate', 'Start Date'));
     $date->getDateField()->setConfig('showcalendar', true);
     $date->setConfig('dateformat', 'dd/MM/yyyy');
     $f->addFieldToTab('Root.Main', $date = new DatetimeField('EndDate', 'End Date'));
     $date->getDateField()->setConfig('showcalendar', true);
     $date->setConfig('dateformat', 'dd/MM/yyyy');
     $locations = SummitAbstractLocation::get()->filter('SummitID', $summit_id)->filter('ClassName', array('SummitVenue', 'SummitVenueRoom', 'SummitExternalLocation'));
     $locations_source = array();
     foreach ($locations as $l) {
         $locations_source[$l->ID] = $l->getFullName();
     }
     $f->addFieldToTab('Root.Main', $ddl_location = new DropdownField('LocationID', 'Location', $locations_source));
     $ddl_location->setEmptyString('-- Select a Location --');
     $f->addFieldToTab('Root.Main', $ddl_location = new DropdownField('TypeID', 'Event Type', SummitEventType::get()->filter('SummitID', $summit_id)->map('ID', 'Type')));
     $ddl_location->setEmptyString('-- Select a Event Type --');
     $f->addFieldToTab('Root.Main', new HiddenField('SummitID', 'SummitID'));
     if ($this->ID > 0) {
         // summits types
         $config = new GridFieldConfig_RelationEditor(100);
         $config->removeComponentsByType('GridFieldEditButton');
         $config->removeComponentsByType('GridFieldAddNewButton');
         $completer = $config->getComponentByType('GridFieldAddExistingAutocompleter');
         $completer->setSearchList(SummitType::get()->filter('SummitID', $summit_id));
         $summit_types = new GridField('AllowedSummitTypes', 'Summit Types', $this->AllowedSummitTypes(), $config);
         $f->addFieldToTab('Root.Main', $summit_types);
         // sponsors
         $config = new GridFieldConfig_RelationEditor(100);
         $config->removeComponentsByType('GridFieldEditButton');
         $config->removeComponentsByType('GridFieldAddNewButton');
         $sponsors = new GridField('Sponsors', 'Sponsors', $this->Sponsors(), $config);
         $f->addFieldToTab('Root.Sponsors', $sponsors);
         // feedback
         $config = new GridFieldConfig_RecordEditor(100);
         $config->removeComponentsByType('GridFieldAddNewButton');
         $feedback = new GridField('Feedback', 'Feedback', $this->Feedback(), $config);
         $f->addFieldToTab('Root.Feedback', $feedback);
     }
     return $f;
 }
Esempio n. 21
0
 public function getCMSFields()
 {
     $f = new FieldList($rootTab = new TabSet("Root", $tabMain = new Tab('Main')));
     $f->addFieldToTab('Root.Main', new HiddenField('SummitID', 'SummitID'));
     $f->addFieldsToTab('Root.Main', new CheckboxField('SharedContactInfo', 'Allow Shared Contact Info?'));
     $f->addFieldsToTab('Root.Main', new CheckboxField('SummitHallCheckedIn', 'Is SummitHall checked In?'));
     $f->addFieldsToTab('Root.Main', $checked_in_date = new DatetimeField('SummitHallCheckedInDate', 'SummitHall checked In Date'));
     $checked_in_date->getDateField()->setConfig('showcalendar', true);
     $checked_in_date->setConfig('dateformat', 'dd/MM/yyyy');
     $f->addFieldsToTab('Root.Main', $ticket_bought_date = new DatetimeField('TicketBoughtDate', 'Ticket Bought Date'));
     $ticket_bought_date->getDateField()->setConfig('showcalendar', true);
     $ticket_bought_date->setConfig('dateformat', 'dd/MM/yyyy');
     $f->addFieldsToTab('Root.Main', new TextField('ExternalOrderId', 'Eventbrite Order ID'));
     $summit_id = isset($_REQUEST['SummitID']) ? $_REQUEST['SummitID'] : $this->SummitID;
     $ticket_types = SummitTicketType::get()->filter('SummitID', $summit_id)->map('ID', 'Name');
     $f->addFieldsToTab('Root.Main', $ddl_ticket = new DropdownField('TicketTypeID', 'TicketType', $ticket_types));
     $ddl_ticket->setEmptyString('-- Select One --');
     $f->addFieldsToTab('Root.Main', new MemberAutoCompleteField('Member', 'Member'));
     if ($this->ID > 0) {
         // schedule
         $config = GridFieldConfig_RelationEditor::create();
         $config->removeComponentsByType('GridFieldAddNewButton');
         $config->getComponentByType('GridFieldAddExistingAutocompleter')->setSearchList($this->getAllowedSchedule());
         $config->addComponent(new GridFieldAjaxRefresh(1000, false));
         $detailFormFields = new FieldList();
         $detailFormFields->push(new CheckBoxField('ManyMany[IsCheckedIn]', 'Is Checked In?'));
         $config->getComponentByType('GridFieldDetailForm')->setFields($detailFormFields);
         $gridField = new GridField('Schedule', 'Schedule', $this->Schedule(), $config);
         $f->addFieldToTab('Root.Schedule', $gridField);
     }
     return $f;
 }
Esempio n. 22
0
 public function testTimezoneFromFormSubmission()
 {
     $oldTz = date_default_timezone_get();
     date_default_timezone_set('Europe/Berlin');
     // Berlin and Auckland have 12h time difference in northern hemisphere summer, but Berlin and Moscow only 2h.
     $f = new DatetimeField('Datetime', 'Datetime');
     $f->setConfig('usertimezone', 'Pacific/Auckland');
     // should be overridden by form submission
     $f->setValue(array('date' => '24/06/2003', 'time' => '23:59:59', 'timezone' => 'Europe/Moscow'));
     $this->assertEquals('24/06/2003 23:59:59', $f->Value(), 'View composite value matches user timezone');
     $this->assertEquals('24/06/2003', $f->getDateField()->Value(), 'View date part matches user timezone');
     $this->assertEquals('23:59:59', $f->getTimeField()->Value(), 'View time part matches user timezone');
     // 2h difference to Moscow
     $this->assertEquals('2003-06-24 21:59:59', $f->dataValue(), 'Data value matches server timezone');
     date_default_timezone_set($oldTz);
 }
Esempio n. 23
0
 public function getCMSFields()
 {
     $f = new FieldList($rootTab = new TabSet("Root", $tabMain = new Tab('Main')));
     $f->addFieldToTab('Root.Main', new TextField('Title', 'Title'));
     $f->addFieldToTab('Root.Main', new DropdownField('Type', 'Type', singleton('SummitType')->dbObject('Type')->enumValues()));
     $f->addFieldToTab('Root.Main', new HtmlEditorField('Description', 'Description'));
     $f->addFieldToTab('Root.Main', new ColorField("Color", "Color"));
     $f->addFieldToTab('Root.Main', new TextField('Audience', 'Audience'));
     $f->addFieldToTab('Root.Main', $date = new DatetimeField('StartDate', 'Start Date'));
     $date->getDateField()->setConfig('showcalendar', true);
     $date->setConfig('dateformat', 'dd/MM/yyyy');
     $f->addFieldToTab('Root.Main', $date = new DatetimeField('EndDate', 'End Date'));
     $date->getDateField()->setConfig('showcalendar', true);
     $date->setConfig('dateformat', 'dd/MM/yyyy');
     $f->addFieldToTab('Root.Main', new HiddenField('SummitID', 'SummitID'));
     return $f;
 }
Esempio n. 24
0
 public function updateCMSFields(FieldList $f)
 {
     //clear all fields
     $oldFields = $f->toArray();
     foreach ($oldFields as $field) {
         $f->remove($field);
     }
     $_REQUEST['SummitID'] = $this->owner->ID;
     $f->add($rootTab = new TabSet("Root", $tabMain = new Tab('Main')));
     $summit_time_zone = null;
     if ($this->owner->TimeZone) {
         $time_zone_list = timezone_identifiers_list();
         $summit_time_zone = $time_zone_list[$this->owner->TimeZone];
     }
     if ($this->owner->RandomVotingLists()->exists()) {
         $f->addFieldToTab('Root.Main', HeaderField::create('The presentations in this summit have been randomised for voting', 4));
     }
     $f->addFieldToTab('Root.Main', new TextField('Title', 'Title'));
     $f->addFieldToTab('Root.Main', $link = new TextField('Link', 'Summit Page Link'));
     $link->setDescription('The link to the site page for this summit. Eg: <em>/summit/vancouver-2015/</em>');
     $f->addFieldToTab('Root.Main', new CheckboxField('Active', 'This is the active summit'));
     $f->addFieldToTab('Root.Main', $date_label = new TextField('DateLabel', 'Date label'));
     $date_label->setDescription('A readable piece of text representing the date, e.g. <em>May 12-20, 2015</em> or <em>December 2016</em>');
     $f->addFieldToTab('Root.Main', $registration_link = new TextField('RegistrationLink', 'Registration Link'));
     $registration_link->setDescription('Link to the site where tickets can be purchased.');
     $f->addFieldsToTab('Root.Dates', $ddl_timezone = new DropdownField('TimeZone', 'Time Zone', DateTimeZone::listIdentifiers()));
     $ddl_timezone->setEmptyString('-- Select a Timezone --');
     if ($summit_time_zone) {
         $f->addFieldToTab('Root.Dates', new HeaderField("All dates below are in <span style='color:red;'>{$summit_time_zone}</span> time."));
     } else {
         $f->addFieldToTab('Root.Dates', new HeaderField("All dates below in the timezone of the summit's venue."));
     }
     $f->addFieldToTab('Root.Dates', $date = new DatetimeField('SummitBeginDate', "When does the summit begin?"));
     $date->getDateField()->setConfig('showcalendar', true);
     $date->getDateField()->setConfig('dateformat', 'dd/MM/yyyy');
     $f->addFieldToTab('Root.Dates', $date = new DatetimeField('SummitEndDate', "When does the summit end?"));
     $date->getDateField()->setConfig('showcalendar', true);
     $date->getDateField()->setConfig('dateformat', 'dd/MM/yyyy');
     $f->addFieldToTab('Root.Dates', $date = new DatetimeField('StartShowingVenuesDate', "When do you begin showing venues?"));
     $date->getDateField()->setConfig('showcalendar', true);
     $date->getDateField()->setConfig('dateformat', 'dd/MM/yyyy');
     $f->addFieldToTab('Root.Dates', $date = new DatetimeField('SubmissionBeginDate', "When do submissions begin?"));
     $date->getDateField()->setConfig('showcalendar', true);
     $date->getDateField()->setConfig('dateformat', 'dd/MM/yyyy');
     $f->addFieldToTab('Root.Dates', $date = new DatetimeField('SubmissionEndDate', "When do submissions end?"));
     $date->getDateField()->setConfig('showcalendar', true);
     $date->getDateField()->setConfig('dateformat', 'dd/MM/yyyy');
     $f->addFieldToTab('Root.Dates', $date = new DatetimeField('VotingBeginDate', "When does voting begin?"));
     $date->getDateField()->setConfig('showcalendar', true);
     $date->getDateField()->setConfig('dateformat', 'dd/MM/yyyy');
     $f->addFieldToTab('Root.Dates', $date = new DatetimeField('VotingEndDate', "When does voting end?"));
     $date->getDateField()->setConfig('showcalendar', true);
     $date->getDateField()->setConfig('dateformat', 'dd/MM/yyyy');
     $f->addFieldToTab('Root.Dates', $date = new DatetimeField('SelectionBeginDate', "When do selections begin?"));
     $date->getDateField()->setConfig('showcalendar', true);
     $date->getDateField()->setConfig('dateformat', 'dd/MM/yyyy');
     $f->addFieldToTab('Root.Dates', $date = new DatetimeField('SelectionEndDate', "When do selections end?"));
     $date->getDateField()->setConfig('showcalendar', true);
     $date->getDateField()->setConfig('dateformat', 'dd/MM/yyyy');
     $f->addFieldToTab('Root.Dates', $date = new DatetimeField('RegistrationBeginDate', "When does registration begin?"));
     $date->getDateField()->setConfig('showcalendar', true);
     $date->getDateField()->setConfig('dateformat', 'dd/MM/yyyy');
     $f->addFieldToTab('Root.Dates', $date = new DatetimeField('RegistrationEndDate', "When does registration end?"));
     $date->getDateField()->setConfig('showcalendar', true);
     $date->getDateField()->setConfig('dateformat', 'dd/MM/yyyy');
     $f->addFieldToTab('Root.Dates', $date = new DateField('ScheduleDefaultStartDate', "Default Start Date to show on schedule page?"));
     $date->setConfig('showcalendar', true);
     $date->setConfig('dateformat', 'dd/MM/yyyy');
     $f->addFieldsToTab('Root.Main', new NumericField('MaxSubmissionAllowedPerUser', 'Max. Submission Allowed Per User'));
     $logo_field = new UploadField('Logo', 'Logo');
     $logo_field->setAllowedMaxFileNumber(1);
     $logo_field->setAllowedFileCategories('image');
     $logo_field->setFolderName('summits/logos/');
     $logo_field->getValidator()->setAllowedMaxFileSize(1024 * 1024 * 1);
     $f->addFieldToTab('Root.Main', $logo_field);
     $f->addFieldToTab('Root.Main', new TextField('ComingSoonBtnText', 'Coming Soon Btn Text'));
     $f->addFieldToTab('Root.Main', new TextField('ExternalEventId', 'Eventbrite Event Id'));
     if ($this->owner->ID > 0) {
         $summit_id = $this->owner->ID;
         // tracks
         $config = GridFieldConfig_RecordEditor::create(25);
         $categories = new GridField('Categories', 'Presentation Categories', $this->owner->getCategories(), $config);
         $f->addFieldToTab('Root.Presentation Categories', $categories);
         $config = GridFieldConfig_RelationEditor::create(25);
         $config->removeComponentsByType(new GridFieldDataColumns());
         $config->removeComponentsByType(new GridFieldDetailForm());
         $config->addComponent(new GridFieldUpdateDefaultCategoryTags());
         $default_tags = new GridField('CategoryDefaultTags', 'Category Default Tags', $this->owner->CategoryDefaultTags(), $config);
         $completer = $config->getComponentByType('GridFieldAddExistingAutocompleter');
         $completer->setResultsFormat('$Tag');
         $completer->setSearchFields(array('Tag'));
         $completer->setSearchList(Tag::get());
         $editconf = new GridFieldDetailForm();
         $editconf->setFields(FieldList::create(TextField::create('Tag', 'Tag'), DropdownField::create('ManyMany[Group]', 'Group', array('topics' => 'Topics', 'speaker' => 'Speaker', 'openstack projects mentioned' => 'OpenStack Projects Mentioned'))));
         $summaryfieldsconf = new GridFieldDataColumns();
         $summaryfieldsconf->setDisplayFields(array('Tag' => 'Tag', 'Group' => 'Group'));
         $config->addComponent($editconf);
         $config->addComponent($summaryfieldsconf, new GridFieldFilterHeader());
         $f->addFieldToTab('Root.Presentation Categories', $default_tags);
         // track groups
         $config = GridFieldConfig_RecordEditor::create(25);
         $config->removeComponentsByType('GridFieldAddNewButton');
         $multi_class_selector = new GridFieldAddNewMultiClass();
         $multi_class_selector->setClasses(array('PresentationCategoryGroup' => 'Category Group', 'PrivatePresentationCategoryGroup' => 'Private Category Group'));
         $config->addComponent($multi_class_selector);
         $categories = new GridField('CategoryGroups', 'Category Groups', $this->owner->CategoryGroups(), $config);
         $f->addFieldToTab('Root.Category Groups', $categories);
         // locations
         $config = GridFieldConfig_RecordEditor::create();
         $config->removeComponentsByType('GridFieldAddNewButton');
         $multi_class_selector = new GridFieldAddNewMultiClass();
         $multi_class_selector->setClasses(array('SummitVenue' => 'Venue', 'SummitHotel' => 'Hotel', 'SummitAirport' => 'Airport', 'SummitExternalLocation' => 'External Location'));
         $config->addComponent($multi_class_selector);
         $config->addComponent($sort = new GridFieldSortableRows('Order'));
         $gridField = new GridField('Locations', 'Locations', $this->owner->Locations()->where("ClassName <> 'SummitVenueRoom' "), $config);
         $f->addFieldToTab('Root.Locations', $gridField);
         // types
         $config = GridFieldConfig_RecordEditor::create();
         $config->addComponent(new GridFieldAddDefaultSummitTypes());
         $gridField = new GridField('SummitTypes', 'SummitTypes', $this->owner->Types(), $config);
         $f->addFieldToTab('Root.SummitTypes', $gridField);
         // event types
         $config = GridFieldConfig_RecordEditor::create();
         $config->addComponent(new GridFieldAddDefaultEventTypes());
         $gridField = new GridField('EventTypes', 'EventTypes', $this->owner->EventTypes(), $config);
         $f->addFieldToTab('Root.EventTypes', $gridField);
         //schedule
         $config = GridFieldConfig_RecordEditor::create(25);
         $config->addComponent(new GridFieldAjaxRefresh(1000, false));
         $config->removeComponentsByType('GridFieldDeleteAction');
         $gridField = new GridField('Schedule', 'Schedule', $this->owner->Events()->filter('Published', true)->sort(array('StartDate' => 'ASC', 'EndDate' => 'ASC')), $config);
         $config->getComponentByType("GridFieldDataColumns")->setFieldCasting(array("Description" => "HTMLText->BigSummary"));
         $f->addFieldToTab('Root.Schedule', $gridField);
         $config->addComponent(new GridFieldPublishSummitEventAction());
         // events
         $config = GridFieldConfig_RecordEditor::create(25);
         $config->addComponent(new GridFieldPublishSummitEventAction());
         $config->addComponent(new GridFieldAjaxRefresh(1000, false));
         $config->addComponent($bulk_summit_types = new GridFieldBulkActionAssignSummitTypeSummitEvents());
         $bulk_summit_types->setTitle('Set Summit Type');
         $gridField = new GridField('Events', 'Events', $this->owner->Events()->filter('ClassName', 'SummitEvent'), $config);
         $config->getComponentByType("GridFieldDataColumns")->setFieldCasting(array("Description" => "HTMLText->BigSummary"));
         $f->addFieldToTab('Root.Events', $gridField);
         //track selection list presentations
         $config = GridFieldConfig_RecordEditor::create(25);
         $gridField = new GridField('TrackChairsSelectionLists', 'TrackChairs Selection Lists', SummitSelectedPresentationList::get()->filter('ListType', 'Group')->where(' CategoryID IN ( SELECT ID FROM PresentationCategory WHERE SummitID = ' . $summit_id . ')'), $config);
         $f->addFieldToTab('Root.TrackChairs Selection Lists', $gridField);
         // attendees
         $config = GridFieldConfig_RecordEditor::create(25);
         $gridField = new GridField('Attendees', 'Attendees', $this->owner->Attendees(), $config);
         $f->addFieldToTab('Root.Attendees', $gridField);
         //tickets types
         $config = GridFieldConfig_RecordEditor::create(25);
         $gridField = new GridField('SummitTicketTypes', 'Ticket Types', $this->owner->SummitTicketTypes(), $config);
         $f->addFieldToTab('Root.TicketTypes', $gridField);
         // promo codes
         $config = GridFieldConfig_RecordEditor::create(50);
         $config->removeComponentsByType('GridFieldAddNewButton');
         $multi_class_selector = new GridFieldAddNewMultiClass();
         $multi_class_selector->setClasses(array('SpeakerSummitRegistrationPromoCode' => 'Speaker Promo Code'));
         $config->addComponent($multi_class_selector);
         $promo_codes = new GridField('SummitRegistrationPromoCodes', 'Registration Promo Codes', $this->owner->SummitRegistrationPromoCodes(), $config);
         $f->addFieldToTab('Root.RegistrationPromoCodes', $promo_codes);
         // speakers
         $config = GridFieldConfig_RecordEditor::create(25);
         $gridField = new GridField('Speakers', 'Speakers', $this->owner->Speakers(false), $config);
         $config->getComponentByType("GridFieldDataColumns")->setFieldCasting(array("Bio" => "HTMLText->BigSummary"));
         $f->addFieldToTab('Root.Speakers', $gridField);
         // presentations
         $config = GridFieldConfig_RecordEditor::create(25);
         $config->addComponent(new GridFieldPublishSummitEventAction());
         $config->addComponent(new GridFieldAjaxRefresh(1000, false));
         $config->addComponent($bulk_summit_types = new GridFieldBulkActionAssignSummitTypeSummitEvents());
         $bulk_summit_types->setTitle('Set Summit Type');
         $gridField = new GridField('Presentations', 'Presentations', $this->owner->Presentations()->where(" Title IS NOT NULL AND Title <>'' "), $config);
         $config->getComponentByType("GridFieldDataColumns")->setFieldCasting(array("Description" => "HTMLText->BigSummary"));
         $f->addFieldToTab('Root.Presentations', $gridField);
         // push notifications
         $config = GridFieldConfig_RecordEditor::create(25);
         $config->addComponent(new GridFieldAjaxRefresh(1000, false));
         $config->getComponentByType('GridFieldDataColumns')->setDisplayFields(array('Channel' => 'Channel', 'Message' => 'Message', 'Owner.FullName' => 'Owner', 'IsSent' => 'Is Sent?', 'SentDate' => 'Sent Date'));
         $config->getComponentByType('GridFieldDetailForm')->setItemRequestClass('GridFieldDetailFormPushNotification');
         $gridField = new GridField('Notifications', 'Notifications', $this->owner->Notifications(), $config);
         $f->addFieldToTab('Root.PushNotifications', $gridField);
         //entity events
         $config = GridFieldConfig_RecordEditor::create(25);
         $config->addComponent(new GridFieldAjaxRefresh(1000, false));
         $config->addComponent(new GridFieldWipeDevicesDataAction());
         $config->addComponent(new GridFieldDeleteAllSummitEntityEventsAction());
         $config->removeComponentsByType('GridFieldAddNewButton');
         $gridField = new GridField('EntityEvents', 'EntityEvents', $this->owner->EntityEvents(), $config);
         $f->addFieldToTab('Root.EntityEvents', $gridField);
         //TrackChairs
         $config = GridFieldConfig_RecordEditor::create(25);
         $config->addComponent(new GridFieldAjaxRefresh(1000, false));
         $gridField = new GridField('TrackChairs', 'TrackChairs', $this->owner->TrackChairs(), $config);
         $f->addFieldToTab('Root.TrackChairs', $gridField);
         //RSVP templates
         $config = GridFieldConfig_RecordEditor::create(40);
         $config->addComponent(new GridFieldAjaxRefresh(1000, false));
         $gridField = new GridField('RSVPTemplates', 'RSVPTemplates', $this->owner->RSVPTemplates(), $config);
         $f->addFieldToTab('Root.RSVPTemplates', $gridField);
     }
 }
Esempio n. 25
0
 public function getCMSFields()
 {
     Requirements::customScript("\n        jQuery( document ).ready(function() {\n            jQuery('body').on('change','#Form_ItemEditForm_RSVPTemplateID',\n                function(){\n                    jQuery('#Form_ItemEditForm_action_save').click();\n                }\n            );\n        });");
     $summit_id = isset($_REQUEST['SummitID']) ? $_REQUEST['SummitID'] : $this->SummitID;
     $f = new FieldList($rootTab = new TabSet("Root", $tabMain = new Tab('Main')));
     $f->addFieldToTab('Root.Main', new TextField('Title', 'Title'));
     $f->addFieldToTab('Root.Main', new HtmlEditorField('Description', 'Description'));
     $f->addFieldToTab('Root.Main', new HtmlEditorField('ShortDescription', 'Abstract'));
     $f->addFieldToTab('Root.Main', new TextField('HeadCount', 'HeadCount'));
     $f->tag('Tags', 'Tags', Tag::get(), $this->Tags())->configure()->setTitleField('Tag')->end();
     $f->addFieldToTab('Root.Main', new CheckboxField('AllowFeedBack', 'Is feedback allowed?'));
     $f->addFieldToTab('Root.Main', new HiddenField('SummitID', 'SummitID'));
     $f->addFieldToTab('Root.Main', $date = new DatetimeField('StartDate', 'Start Date'));
     $date->getDateField()->setConfig('showcalendar', true);
     $date->setConfig('dateformat', 'dd/MM/yyyy');
     $f->addFieldToTab('Root.Main', $date = new DatetimeField('EndDate', 'End Date'));
     $date->getDateField()->setConfig('showcalendar', true);
     $date->setConfig('dateformat', 'dd/MM/yyyy');
     $f->addFieldsToTab('Root.Main', new ReadonlyField('AvgFeedbackRate', 'AvgFeedbackRate'));
     $locations = SummitAbstractLocation::get()->filter('SummitID', $summit_id)->filter('ClassName', array('SummitVenue', 'SummitVenueRoom', 'SummitExternalLocation'));
     $locations_source = array();
     foreach ($locations as $l) {
         $locations_source[$l->ID] = $l->getFullName();
     }
     $f->addFieldToTab('Root.Main', $ddl_location = new DropdownField('LocationID', 'Location', $locations_source));
     $ddl_location->setEmptyString('-- Select a Location --');
     $f->addFieldToTab('Root.Main', $ddl_location = new DropdownField('TypeID', 'Event Type', SummitEventType::get()->filter('SummitID', $summit_id)->map('ID', 'Type')));
     $ddl_location->setEmptyString('-- Select a Event Type --');
     $f->addFieldToTab('Root.Main', new HiddenField('SummitID', 'SummitID'));
     if ($this->ID > 0) {
         // summits types
         $config = new GridFieldConfig_RelationEditor(100);
         $config->removeComponentsByType('GridFieldEditButton');
         $config->removeComponentsByType('GridFieldAddNewButton');
         $completer = $config->getComponentByType('GridFieldAddExistingAutocompleter');
         $completer->setSearchList(SummitType::get()->filter('SummitID', $summit_id));
         $summit_types = new GridField('AllowedSummitTypes', 'Summit Types', $this->AllowedSummitTypes(), $config);
         $f->addFieldToTab('Root.Main', $summit_types);
         // sponsors
         $config = new GridFieldConfig_RelationEditor(100);
         $config->removeComponentsByType('GridFieldEditButton');
         $config->removeComponentsByType('GridFieldAddNewButton');
         $sponsors = new GridField('Sponsors', 'Sponsors', $this->Sponsors(), $config);
         $f->addFieldToTab('Root.Sponsors', $sponsors);
         // feedback
         $config = new GridFieldConfig_RecordEditor(100);
         $config->removeComponentsByType('GridFieldAddNewButton');
         $config->addComponent(new GridFieldAjaxRefresh(1000, false));
         $feedback = new GridField('Feedback', 'Feedback', $this->Feedback(), $config);
         $f->addFieldToTab('Root.Feedback', $feedback);
         // rsvp
         $f->addFieldsToTab('Root.RSVP', new TextField('RSVPLink', 'RSVP External Link'));
         $rsvp_template = new DropdownField('RSVPTemplateID', 'Select a Template', RSVPTemplate::get()->filter('SummitID', $summit_id)->map());
         $rsvp_template->setEmptyString('-- View All Templates --');
         $f->addFieldToTab('Root.RSVP', LiteralField::create('AddNew', 'Or add a new custom RSVP Configuration'));
         $f->addFieldToTab('Root.RSVP', $rsvp_template);
         $f->addFieldToTab('Root.RSVP', new NumericField('RSVPMaxUserNumber', 'Max # Number'));
         $f->addFieldToTab('Root.RSVP', new NumericField('RSVPMaxUserWaitListNumber', 'Max # Wait List'));
         $f->addFieldToTab('Root.RSVP', $rsvp_template);
         if ($this->RSVPTemplate()->exists()) {
             $config = new GridFieldConfig_RecordEditor(100);
             $config->removeComponentsByType('GridFieldAddNewButton');
             $config->addComponent(new GridFieldAjaxRefresh(1000, false));
             $rsvps = new GridField('RSVPSubmissions', 'RSVP Submissions', $this->RSVPSubmissions(), $config);
             $f->addFieldToTab('Root.RSVP', $rsvps);
         }
     }
     if ($this->ID > 0) {
         $_REQUEST['SummitEventID'] = $this->ID;
     }
     return $f;
 }
 public function getCMSFields()
 {
     $f = new FieldList($rootTab = new TabSet("Root", $tabMain = new Tab('Main')));
     $f->addFieldToTab('Root.Main', new DropdownField('SummitID', 'Summit', Summit::get()->map('ID', 'Title')));
     $f->addFieldsToTab('Root.Main', new CheckboxField('SharedContactInfo', 'Allow Shared Contact Info?'));
     $f->addFieldsToTab('Root.Main', new CheckboxField('SummitHallCheckedIn', 'Is SummitHall checked In?'));
     $f->addFieldsToTab('Root.Main', $checked_in_date = new DatetimeField('SummitHallCheckedInDate', 'SummitHall checked In Date'));
     $checked_in_date->getDateField()->setConfig('showcalendar', true);
     $f->addFieldsToTab('Root.Main', new MemberAutoCompleteField('Member', 'Member'));
     if ($this->ID > 0) {
         // schedule
         $config = GridFieldConfig_RelationEditor::create(50);
         $config->removeComponentsByType('GridFieldAddNewButton');
         $config->getComponentByType('GridFieldAddExistingAutocompleter')->setSearchList($this->getAllowedSchedule());
         $config->addComponent(new GridFieldAjaxRefresh(1000, false));
         $detailFormFields = new FieldList();
         $detailFormFields->push(new CheckBoxField('ManyMany[IsCheckedIn]', 'Is Checked In?'));
         $config->getComponentByType('GridFieldDetailForm')->setFields($detailFormFields);
         $gridField = new GridField('Schedule', 'Schedule', $this->Schedule(), $config);
         $f->addFieldToTab('Root.Schedule', $gridField);
         //tickets
         $config = GridFieldConfig_RecordEditor::create(10);
         $gridField = new GridField('Tickets', 'Tickets', $this->Tickets(), $config);
         $f->addFieldToTab('Root.Tickets', $gridField);
     }
     return $f;
 }
 function getCMSFields()
 {
     if ($this->FolderID) {
         // New token - select file:
         $folder = DataObject::get_by_id('Folder', $this->FolderID);
         $files = new DataObjectSet();
         if ($folder->myChildren()) {
             foreach ($folder->myChildren() as $file) {
                 if (!$file instanceof Folder) {
                     $files->push($file);
                 }
             }
             $files->sort('Name');
         }
         $fileField = new DropdownField('FileID', 'File', $files->map('ID', 'Name'));
     } else {
         // Existing token:
         $fileField = new ReadonlyField('FileDummy', 'File', $this->File()->Name);
     }
     $fields = new FieldSet();
     $fields->push($root = new TabSet('Root'));
     $root->push($main = new Tab('Main'));
     $main->push($fileField);
     if (ClassInfo::exists('DatetimeField')) {
         // 2.4.x
         $main->push($expiry_field = new DatetimeField('Expiry', 'Expiry'));
         $expiry_field->getDateField()->setConfig('showcalendar', true);
         $expiry_field->getTimeField()->setConfig('showdropdown', true);
     } else {
         // 2.3.x
         $main->push($expiry_field = new PopupDateTimeField('Expiry', 'Expiry'));
     }
     $main->push(new ReadonlyField('MemberDummyField', 'Member', $this->MemberNice()));
     if ($this->ID) {
         $main->push(new ReadonlyField('Token', 'Token'));
     }
     $this->extend('updateCMSFields', $fields);
     return $fields;
 }
 public function getCMSFields()
 {
     $fields = parent::getCMSFields();
     // Optional Sponsor Alert
     $sponsorAlertField = new TextField('SponsorAlert', 'Sponsor Alert');
     $fields->addFieldToTab('Root.Main', $sponsorAlertField);
     $fields->addFieldsToTab('Root.Main', new HtmlEditorField('SponsorIntro', 'Sponsor Intro Text'));
     $fields->addFieldsToTab('Root.Main', new HtmlEditorField('HowToSponsorContent', 'How To Sponsor (Bottom)'));
     $fields->addFieldsToTab('Root.Main', new HtmlEditorField('VenueMapContent', 'Venue Map Content'));
     // Sponsor Steps Editor
     $sponsorStepsField = new HTMLEditorField('SponsorSteps', 'Steps To Become A Sponsor');
     $fields->addFieldToTab('Root.Main', $sponsorStepsField, 'Content');
     //call for sponsorship dates
     $start_date = new DatetimeField('CallForSponsorShipStartDate', 'Call For SponsorShip - Start Date');
     $end_date = new DatetimeField('CallForSponsorShipEndDate', 'Call For SponsorShip - End Date');
     $start_date->getDateField()->setConfig('showcalendar', true);
     $start_date->setConfig('dateformat', 'dd/MM/yyyy');
     $end_date->getDateField()->setConfig('showcalendar', true);
     $end_date->setConfig('dateformat', 'dd/MM/yyyy');
     $fields->addFieldToTab('Root.Main', $start_date);
     $fields->addFieldToTab('Root.Main', $end_date);
     if ($this->ID) {
         //set current page id
         $_REQUEST["PageId"] = $this->ID;
         // Summit Packages
         $config = GridFieldConfig_RelationEditor::create();
         $config->addComponent(new GridFieldSortableRows('Order'));
         $gridField = new GridField('SummitPackages', 'Sponsor Packages', $this->SummitPackages(), $config);
         $fields->addFieldToTab('Root.Packages', $gridField);
         // Summit Add Ons
         $config = GridFieldConfig_RelationEditor::create();
         $config->addComponent(new GridFieldSortableRows('Order'));
         // Remove pagination so that you can sort all add-ons collectively
         $config->removeComponentsByType('GridFieldPaginator');
         $config->removeComponentsByType('GridFieldPageCount');
         $gridField = new GridField('SummitAddOn', 'Sponsor Add Ons', $this->SummitAddOns(), $config);
         $fields->addFieldToTab('Root.AddOns', $gridField);
         $prospectusField = new TextField('SponsorProspectus');
         $fields->addFieldToTab('Root.ProspectusAndContract', $prospectusField);
         $contractField = new TextField('SponsorContract');
         $fields->addFieldToTab('Root.ProspectusAndContract', $contractField);
         // sponsors
         $companies = new GridField('Companies', 'Sponsors', $this->Companies(), GridFieldConfig_RelationEditor::create(10));
         $companies->getConfig()->removeComponentsByType('GridFieldEditButton');
         $companies->getConfig()->removeComponentsByType('GridFieldAddNewButton');
         $companies->getConfig()->getComponentByType('GridFieldDataColumns')->setDisplayFields(array('Name' => 'Name', "DDLSponsorshipType" => "Sponsorship Type", "InputSubmitPageUrl" => "Sponsor Link"));
         $fields->addFieldToTab('Root.SponsorCompanies', $companies);
         $fields->addFieldsToTab("Root.Main", $upload_0 = new UploadField('CrowdImage', 'Crowd Image'));
         $fields->addFieldsToTab("Root.Main", $upload_1 = new UploadField('ExhibitImage', 'Exhibit Image'));
         $upload_0->setFolderName('summits/sponsorship/backgroun');
         $upload_0->setAllowedMaxFileNumber(1);
         $upload_0->setAllowedFileCategories('image');
         $upload_1->setFolderName('summits/sponsorship/background');
         $upload_1->setAllowedMaxFileNumber(1);
         $upload_1->setAllowedFileCategories('image');
         //audience
         $config = GridFieldConfig_RecordEditor::create();
         $config->addComponent($sort = new GridFieldSortableRows('Order'));
         $gridField = new GridField('AttendeesByRegion', 'Attendees By Region', $this->AttendeesByRegion(), $config);
         $fields->add($gridField);
         $config = GridFieldConfig_RecordEditor::create();
         $config->addComponent($sort = new GridFieldSortableRows('Order'));
         $gridField = new GridField('AttendeesByRoles', 'Attendees By Roles', $this->AttendeesByRoles(), $config);
         $fields->add($gridField);
     }
     $fields->addFieldsToTab('Root.Audience', new CheckboxField('ShowAudience', 'Show Audience'));
     $fields->addFieldsToTab('Root.Audience', new HtmlEditorField('AudienceIntro', 'Intro'));
     $fields->addFieldsToTab('Root.Audience', new TextField('AudienceMetricsTitle', 'Metrics Title'));
     $fields->addFieldsToTab('Root.Audience', new TextField('AudienceTotalSummitAttendees', 'Total Summit Attendees'));
     $fields->addFieldsToTab('Root.Audience', new TextField('AudienceCompaniesRepresented', 'Companies Represented'));
     $fields->addFieldsToTab('Root.Audience', new TextField('AudienceCountriesRepresented', 'Countries Represented'));
     return $fields;
 }
 protected function getBaseFields()
 {
     $testState = $this->environment->getState();
     $fields = new FieldList($textfield = new TextField('fixture', 'Fixture YAML file path'), $datetimeField = new DatetimeField('datetime', 'Custom date'), new HiddenField('flush', null, 1));
     $textfield->setAttribute('placeholder', 'Example: framework/tests/security/MemberTest.yml');
     $datetimeField->getDateField()->setConfig('dateformat', 'yyyy-MM-dd')->setConfig('showcalendar', true)->setAttribute('placeholder', 'Date (yyyy-MM-dd)');
     $datetimeField->getTimeField()->setConfig('timeformat', 'HH:mm:ss')->setAttribute('placeholder', 'Time (HH:mm:ss)');
     $datetimeField->setValue(isset($testState->datetime) ? $testState->datetime : null);
     $this->extend('updateBaseFields', $fields);
     return $fields;
 }
Esempio n. 30
0
 public function testSetName()
 {
     $field = new DatetimeField('Datetime', 'Datetime');
     $field->setName('CustomDatetime');
     $this->assertEquals('CustomDatetime', $field->getName());
     $this->assertEquals('CustomDatetime[date]', $field->getDateField()->getName());
     $this->assertEquals('CustomDatetime[time]', $field->getTimeField()->getName());
     $this->assertEquals('CustomDatetime[timezone]', $field->getTimezoneField()->getName());
 }