public function getCMSFields() { $fields = parent::getCMSFields(); $fields->insertAfter(new ToggleCompositeField('AfterRegistrationContent', _t('EventRegistration.AFTER_REG_CONTENT', 'After Registration Content'), array(new TextField('AfterRegTitle', _t('EventRegistration.TITLE', 'Title')), new HtmlEditorField('AfterRegContent', _t('EventRegistration.CONTENT', 'Content')))), 'Content'); $fields->insertAfter(new ToggleCompositeField('AfterUnRegistrationContent', _t('EventRegistration.AFTER_UNREG_CONTENT', 'After Un-Registration Content'), array(new TextField('AfterUnregTitle', _t('EventRegistration.TITLE', 'Title')), new HtmlEditorField('AfterUnregContent', _t('EventRegistration.CONTENT', 'Content')))), 'AfterRegistrationContent'); if ($this->RegEmailConfirm) { $fields->addFieldToTab('Root.Main', new ToggleCompositeField('AfterRegistrationConfirmation', _t('EventRegistration.AFTER_REG_CONFIRM_CONTENT', 'After Registration Confirmation Content'), array(new TextField('AfterConfirmTitle', _t('EventRegistration.TITLE', 'Title')), new HtmlEditorField('AfterConfirmContent', _t('EventRegistration.CONTENT', 'Content'))))); } if ($this->UnRegEmailConfirm) { $fields->addFieldToTab('Root.Main', new ToggleCompositeField('AfterUnRegistrationConfirmation', _t('EventRegistration.AFTER_UNREG_CONFIRM_CONTENT', 'After Un-Registration Confirmation Content'), array(new TextField('AfterConfUnregTitle', _t('EventRegistration.TITLE', 'Title')), new HtmlEditorField('AfterConfUnregContent', _t('EventRegistration.CONTENT', 'Content'))))); } $fields->addFieldToTab('Root.Tickets', new GridField('Tickets', 'Ticket Types', $this->Tickets(), GridFieldConfig_RecordEditor::create())); $generators = ClassInfo::implementorsOf('EventRegistrationTicketGenerator'); if ($generators) { foreach ($generators as $generator) { $instance = new $generator(); $generators[$generator] = $instance->getGeneratorTitle(); } $generator = new DropdownField('TicketGenerator', _t('EventRegistration.TICKET_GENERATOR', 'Ticket generator'), $generators); $generator->setEmptyString(_t('EventManagement.NONE', '(None)')); $generator->setDescription(_t('EventManagement.TICKET_GENERATOR_NOTE', 'The ticket generator is used to generate a ticket file for the user to download.')); $fields->addFieldToTab('Root.Tickets', $generator); } $regGridFieldConfig = GridFieldConfig_Base::create()->removeComponentsByType('GridFieldAddNewButton')->removeComponentsByType('GridFieldDeleteAction')->addComponents(new GridFieldButtonRow('after'), new GridFieldPrintButton('buttons-after-left'), new GridFieldExportButton('buttons-after-left')); $fields->addFieldsToTab('Root.Registrations', array(new GridField('Registrations', _t('EventManagement.REGISTRATIONS', 'Registrations'), $this->DateTimes()->relation('Registrations')->filter('Status', 'Valid'), $regGridFieldConfig), new GridField('CanceledRegistrations', _t('EventManagement.CANCELLATIONS', 'Cancellations'), $this->DateTimes()->relation('Registrations')->filter('Status', 'Canceled'), $regGridFieldConfig))); if ($this->RegEmailConfirm) { $fields->addFieldToTab('Root.Registrations', new ToggleCompositeField('UnconfirmedRegistrations', _t('EventManagement.UNCONFIRMED_REGISTRATIONS', 'Unconfirmed Registrations'), array(new GridField('UnconfirmedRegistrations', '', $this->DateTimes()->relation('Registrations')->filter('Status', 'Unconfirmed'))))); } $fields->addFieldToTab('Root.Invitations', new GridField('Invitations', _t('EventManagement.INVITATIONS', 'Invitations'), $this->Invitations(), GridFieldConfig_RecordViewer::create()->addComponent(new GridFieldButtonRow('before'))->addComponent(new EventSendInvitationsButton($this)))); return $fields; }
public function getCMSFields() { $fields = parent::getCMSFields(); $fields->removeByName("Content"); $fields->addFieldToTab("Root.Main", ReadonlyField::create('UID', 'UID'), 'URLSegment'); $fields->addFieldsToTab("Root.Main", array(TextField::create('Opposition', 'Opposition'), DropdownField::create('Result', 'Game result', singleton('Match')->dbObject('Result')->enumValues())->setEmptyString('(TBD)')), 'Metadata'); return $fields; }
public function getCMSFields() { Requirements::javascript(THIRDPARTY_DIR . '/jquery/jquery.js'); Requirements::javascript(THIRDPARTY_DIR . '/jquery-livequery/jquery.livequery.js'); Requirements::javascript('eventmanagement/javascript/RegisterableEventCms.js'); $fields = parent::getCMSFields(); $fields->addFieldsToTab('Root.Content.Tickets', array(new HeaderField('TicketTypesHeader', $this->fieldLabel('TicketTypesHeader')), new ComplexTableField($this, 'Tickets', 'EventTicket'))); $generators = ClassInfo::implementorsOf('EventRegistrationTicketGenerator'); if ($generators) { foreach ($generators as $generator) { $instance = new $generator(); $generators[$generator] = $instance->getGeneratorTitle(); } $fields->addFieldsToTab('Root.Content.Tickets', array(new HeaderField('TicketGeneratorHeader', 'Ticket Generator'), new LiteralField('TicketGeneratorNone', '<p>The ticket ' . 'generator is used to generate a ticket file for the ' . 'user to download and print to bring to the event.</p>'), new DropdownField('TicketGenerator', '', $generators, null, null, '(none)'))); } $changeFields = singleton('RegisterableDateTime')->fieldLabels(false); $fields->addFieldsToTab('Root.Content.Registration', array(new HeaderField('RegistrationSettingsHeader', $this->fieldLabel('RegistrationSettingsHeader')), new CheckboxField('OneRegPerEmail', $this->fieldLabel('OneRegPerEmail')), new CheckboxField('RequireLoggedIn', $this->fieldLabel('RequireLoggedIn')), new NumericField('RegistrationTimeLimit', $this->fieldLabel('RegistrationTimeLimit')), new HeaderField('EmailSettingsHeader', $this->fieldLabel('EmailSettingsHeader')), new CheckboxField('RegEmailConfirm', $this->fieldLabel('RegEmailConfirm')), new TextField('EmailConfirmMessage', $this->fieldLabel('EmailConfirmMessage')), new NumericField('ConfirmTimeLimit', $this->fieldLabel('ConfirmTimeLimit')), new TextField('AfterConfirmTitle', $this->fieldLabel('AfterConfirmTitle')), new HtmlEditorField('AfterConfirmContent', $this->fieldLabel('AfterConfirmContent'), 5), new CheckboxField('UnRegEmailConfirm', $this->fieldLabel('UnRegEmailConfirm')), new TextField('AfterConfUnregTitle', $this->fieldLabel('AfterConfUnregTitle')), new HtmlEditorField('AfterConfUnregContent', $this->fieldLabel('AfterConfUnregContent'), 5), new CheckboxField('EmailNotifyChanges', $this->fieldLabel('EmailNotifyChanges')), new CheckboxSetField('NotifyChangeFields', $this->fieldLabel('NotifyChangeFields'), $changeFields))); $fields->addFieldsToTab('Root.Content.AfterRegistration', array(new TextField('AfterRegTitle', $this->fieldLabel('AfterRegTitle')), new HtmlEditorField('AfterRegContent', $this->fieldLabel('AfterRegContent')))); $fields->addFieldsToTab('Root.Content.AfterUnregistration', array(new TextField('AfterUnregTitle', $this->fieldLabel('AfterUnregTitle')), new HtmlEditorField('AfterUnregContent', $this->fieldLabel('AfterUnregContent')))); $registrations = new ComplexTableField($this, 'Registrations', 'EventRegistration', null, null, '"Status" = \'Valid\' AND "Time"."EventID" = ' . $this->ID, null, 'INNER JOIN "CalendarDateTime" AS "Time" ON "Time"."ID" = "TimeID"'); $registrations->setTemplate('EventRegistrationComplexTableField'); $registrations->setPermissions(array('show', 'print', 'export')); $canceled = new ComplexTableField($this, 'Registations', 'EventRegistration', null, null, '"Status" = \'Canceled\' AND "Time"."EventID" = ' . $this->ID, null, 'INNER JOIN "CalendarDateTime" AS "Time" ON "Time"."ID" = "TimeID"'); $canceled->setTemplate('EventRegistrationComplexTableField'); $canceled->setPermissions(array('show', 'print', 'export')); $fields->addFieldToTab('Root', new Tab('Registrations'), 'Behaviour'); $fields->addFieldsToTab('Root.Registrations', array(new HeaderField('RegistrationsHeader', $this->fieldLabel('Registrations')), $registrations, new ToggleCompositeField('CanceledRegistrations', 'Canceled Registrations', $canceled))); if ($this->RegEmailConfirm) { $unconfirmed = new ComplexTableField($this, 'UnconfirmedRegistations', 'EventRegistration', null, null, '"Status" = \'Unconfirmed\' AND "Time"."EventID" = ' . $this->ID, null, 'INNER JOIN "CalendarDateTime" AS "Time" ON "Time"."ID" = "TimeID"'); $unconfirmed->setPermissions(array('show', 'print', 'export')); $unconfirmed->setTemplate('EventRegistrationComplexTableField'); $fields->addFieldToTab('Root.Registrations', new ToggleCompositeField('UnconfirmedRegistrations', 'Unconfirmed Registrations', $unconfirmed)); } // Add a tab allowing admins to invite people from, as well as view // people who have been invited. $fields->addFieldToTab('Root', new Tab('Invitations'), 'Behaviour'); $fields->addFieldsToTab('Root.Invitations', array(new HeaderField('InvitationsHeader', $this->fieldLabel('InvitationsHeader')), new EventInvitationField($this, 'Invitations'))); return $fields; }