Ejemplo n.º 1
0
 public function getCMSFields()
 {
     $fields = parent::getCMSFields();
     $fields->removeByName('Features');
     $fields->removeByName('ExtraContent');
     $regContent = $fields->dataFieldByName('RegistrationContent');
     $afterContent = $fields->dataFieldByName('AfterRegistrationContent');
     $profileContent = $fields->dataFieldByName('ProfileContent');
     $regContent->addExtraClass('no-pagebreak');
     $afterContent->addExtraClass('no-pagebreak');
     $profileContent->addExtraClass('no-pagebreak');
     $fields->insertAfter(TextareaField::create('ApprovalEmailTemplate', 'Approval Email Template'), 'EmailTemplate');
     $fields->insertAfter(TextField::create('ApprovalEmailSubject', 'Approval Email Subject'), 'EmailTemplate');
     $fields->insertAfter(TextareaField::create('ExpiryReminderEmailTemplate', 'Expiry Reminder Email Template'), 'ApprovalEmailTemplate');
     $fields->insertAfter(TextField::create('ExpiryReminderEmailSubject', 'Expiry Reminder Email Subject'), 'ApprovalEmailTemplate');
     $fields->insertAfter(TextareaField::create('ExpiryEmailTemplate', 'Expiry Email Template'), 'ExpiryReminderEmailTemplate');
     $fields->insertAfter(TextField::create('ExpiryEmailSubject', 'Expiry Email Subject'), 'ExpiryReminderEmailTemplate');
     $fields->addFieldToTab('Root.Members', LiteralField::create('MembersNote', '<p class="message"><strong>Note:</strong> This list has been filtered to include current and pending members only. Use the Members admin area for handling expired memberships and non-member website users.</p>'));
     $members = Member::get()->exclude(array('MembershipStatus' => 'Not applied'))->exclude(array('MembershipStatus' => 'Expired'))->sort(array('ExpiryDate' => 'ASC'));
     $gridField = new GridField('Members', 'NZLARP Members', $members, $config = GridFieldConfig_RecordEditor::create());
     $gridField->setModelClass('Member');
     $columns = $config->getComponentByType('GridFieldDataColumns');
     $columns->setFieldFormatting(array('LastEdited' => function ($value, $item) {
         return $item->LastEditedNice();
     }));
     $columns->setDisplayFields(array('getName' => 'Name', 'Region.Title' => 'Region', 'MembershipStatus' => 'Status', 'ExpiryDate' => 'Expires', 'LastEdited' => 'Last Activity'));
     $fields->addFieldToTab('Root.Members', $gridField);
     $config->getComponentByType('GridFieldPaginator')->setItemsPerPage(200);
     return $fields;
 }
Ejemplo n.º 2
0
 /**
  * @covers GridField::getModelClass
  * @covers GridField::setModelClass
  */
 public function testGridFieldModelClass()
 {
     $obj = new GridField('testfield', 'testfield', Member::get());
     $this->assertEquals('Member', $obj->getModelClass(), 'Should return Member');
     $obj->setModelClass('DataModel');
     $this->assertEquals('DataModel', $obj->getModelClass(), 'Should return Member');
 }
 /**
  * @covers GridField::getModelClass
  * @covers GridField::setModelClass
  */
 public function testGridFieldModelClass()
 {
     $obj = new GridField('testfield', 'testfield', Member::get());
     $this->assertEquals('SilverStripe\\Security\\Member', $obj->getModelClass(), 'Should return Member');
     $obj->setModelClass('SilverStripe\\ORM\\DataModel');
     $this->assertEquals('SilverStripe\\ORM\\DataModel', $obj->getModelClass(), 'Should return Member');
 }
 /**
  * @return FieldList
  */
 public function getCMSFields()
 {
     $f = new FieldList($rootTab = new TabSet("Root", $tabMain = new Tab('Main')));
     $f->addFieldToTab('Root.Main', new TextField('Name', 'Name'));
     $f->addFieldToTab('Root.Main', $ddl = new DropdownField('ListType', 'ListType', $this->dbObject('ListType')->enumValues()));
     $f->addFieldToTab('Root.Main', $ddl2 = new DropdownField('CategoryID', 'Category', PresentationCategory::get()->filter('SummitID', $_REQUEST['SummitID'])->map('ID', 'Title')));
     $ddl->setEmptyString('-- Select List Type --');
     $ddl2->setEmptyString('-- Select Track  --');
     if ($this->ID > 0) {
         $config = GridFieldConfig_RecordEditor::create(25);
         $config->addComponent(new GridFieldAjaxRefresh(1000, false));
         $config->addComponent(new GridFieldPublishSummitEventAction());
         $config->removeComponentsByType('GridFieldDeleteAction');
         $config->removeComponentsByType('GridFieldAddNewButton');
         $config->addComponent($bulk_summit_types = new GridFieldBulkActionAssignSummitTypeSummitEvents());
         $bulk_summit_types->setTitle('Set Summit Types');
         $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 = {$this->ID}\nORDER BY SummitSelectedPresentation.Order ASC\n");
         $presentations = new ArrayList();
         foreach ($result as $row) {
             $presentations->add(new Presentation($row));
         }
         $gridField = new GridField('SummitSelectedPresentations', 'Selected Presentations', $presentations, $config);
         $gridField->setModelClass('Presentation');
         $f->addFieldToTab('Root.Main', $gridField);
     }
     return $f;
 }
 public function getCMSFields()
 {
     $fields = parent::getCMSFields();
     $fields->insertBefore(new DropdownField('MemberID', 'Member', Member::get()->map('ID', "FirstName")), 'AttendingWholeEvent');
     $siteConfig = SiteConfig::current_site_config();
     $current = $siteConfig->getCurrentEventID();
     if ($this->ParentID < 1) {
         $event = Event::get()->byID($current);
     } else {
         $event = Event::get()->byID($this->ParentID);
     }
     $fields->insertAfter(HiddenField::create('ParentID', 'Event', $event->ID), 'ExtraDetail');
     $fields->removeByName('PublicFieldsRaw');
     $fields->removeByName('Sort');
     if ($this->PlayerGames()->Count() > 0) {
         $gridField = new GridField('PlayerGames', 'Games', $this->PlayerGames(), $config = GridFieldConfig_RelationEditor::create());
         $gridField->setModelClass('PlayerGame');
         $config->addComponent(new GridFieldOrderableRows());
         $config->removeComponentsByType('GridFieldPaginator');
         $config->removeComponentsByType('GridFieldPageCount');
         $config->addComponent(new GridFieldDeleteAction(false));
         $config->addComponent($export = new GridFieldExportButton('before'));
         $export->setExportColumns(singleton("PlayerGame")->getExportFields());
         $fields->addFieldToTab('Root.PlayerGames', $gridField);
     }
     return $fields;
 }
Ejemplo n.º 6
0
 public function getCMSFields()
 {
     $fields = parent::getCMSFields();
     $fields->insertBefore(TextareaField::create('Intro', 'Intro'), 'Content');
     $fields->insertAfter(ColorPaletteField::create("Colour", "Colour", array('night' => '#333333', 'air' => '#009EE2', 'earth' => ' #79c608', 'passion' => '#b02635', 'people' => '#de347f', 'inspiration' => '#783980')), "Intro");
     $fields->insertBefore($image = UploadField::create('SplashImage', 'Splash Image'), 'Content');
     $image->setFolderName('Uploads/Splash-Images');
     if ($this->ClassName === "Page" || $this->ClassName === "HomePage") {
         $fields->insertAfter(HTMLEditorField::create('ExtraContent'), 'Content');
         $gridField = new GridField('FeatureItems', 'FeatureItems', $this->FeatureItems()->sort(array('Sort' => 'ASC', 'Archived' => 'ASC')), $config = GridFieldConfig_RelationEditor::create());
         $gridField->setModelClass('FeatureItem');
         $fields->addFieldToTab('Root.Features', $gridField);
         $config->addComponent(new GridFieldOrderableRows());
     } else {
         if ($this->ClassName === "CalendarPage") {
             $content = $fields->dataFieldByName('Content');
             $content->addExtraClass('no-pagebreak');
             $events = Event::get()->sort(array('StartDateTime' => 'Desc'))->filterByCallback(function ($record) {
                 return !$record->getIsPastEvent();
             });
             $gridField = new GridField('Event', 'Upcoming Events', $events, $config = GridFieldConfig_RecordEditor::create());
             $gridField->setModelClass('Event');
             $dataColumns = $config->getComponentByType('GridFieldDataColumns');
             $dataColumns->setDisplayFields(array('Title' => 'Title', 'StartDateTime' => 'Date and Time', 'DatesAndTimeframe' => 'Presentation String'));
             $fields->addFieldToTab('Root.UpcomingEvents', $gridField);
         }
     }
     return $fields;
 }
 public function getCMSFields()
 {
     $fields = parent::getCMSFields();
     // Main Content tab
     // Carousel tab
     $carouselItemsGrid = null;
     // Manay to many relations can only be established if we have an id. So put a place holder instead of a grid if this is a new object.
     if ($this->ID == 0) {
         $carouselItemsGrid = TextField::create("CarouselItems", "Carousel Items")->setDisabled(true)->setValue("Page must be saved once before adding Carousel Items.");
     } else {
         $carouselItemsGrid = new GridField('CarouselItems', 'Carousel', $this->CarouselItems()->sort('Archived'), GridFieldConfig_RelationEditor::create());
         $carouselItemsGridUploadComponent = new GridFieldBulkUpload("Image");
         $carouselItemsGridUploadComponent->setUfSetup("setFolderName", $this->ImageFolder("carousel"));
         $carouselItemsGrid->setModelClass('CarouselItem')->getConfig()->addComponent($carouselItemsGridUploadComponent)->addComponent(new GridFieldOrderableRows("SortID"));
     }
     $fields->addFieldToTab('Root.Carousel', $carouselItemsGrid);
     // Links
     $fields->addFieldToTab('Root.Links', new TreeDropdownField('LearnMorePageID', 'Page to link the "Learn More" button to:', 'SiteTree'));
     $fields->addFieldToTab('Root.Links', new TextField('LearnMoreButtonText', 'Text to display on the "Learn More" button:', 'SiteTree'));
     $quickLinksGrid = new GridField('Quicklinks', 'Quicklinks', $this->Quicklinks(), GridFieldConfig_RelationEditor::create());
     $quickLinksGrid->setModelClass('Quicklink');
     $quickLinksFieldGroup = FieldGroup::create($quickLinksGrid)->setTitle('Quick Links');
     $quickLinksFieldGroup->setName("QuicklinkGroup");
     $fields->addFieldToTab('Root.Links', $quickLinksFieldGroup);
     $fields->removeByName('Translations');
     $fields->removeByName('Import');
     $fields->addFieldToTab('Root.Features', ToggleCompositeField::create('FeatureOne', _t('SiteTree.FeatureOne', 'Feature One'), array(new TextField('FeatureOneTitle', 'Title'), new DropdownField('FeatureOneCategory', 'Category', singleton('ExpressHomePage')->dbObject('FeatureOneCategory')->enumValues()), new HTMLEditorField('FeatureOneContent', 'Content'), new TreeDropdownField('FeatureOneLinkID', 'Page to link to', 'SiteTree'), new TextField('FeatureOneButtonText', 'Button text')))->setHeadingLevel(3));
     $fields->addFieldToTab('Root.Features', ToggleCompositeField::create('FeatureTwo', _t('SiteTree.FeatureTwo', 'Feature Two'), array(new TextField('FeatureTwoTitle', 'Title'), new DropdownField('FeatureTwoCategory', 'Category', singleton('ExpressHomePage')->dbObject('FeatureTwoCategory')->enumValues()), new HTMLEditorField('FeatureTwoContent', 'Content'), new TreeDropdownField('FeatureTwoLinkID', 'Page to link to', 'SiteTree'), new TextField('FeatureTwoButtonText', 'Button text')))->setHeadingLevel(3));
     return $fields;
 }
Ejemplo n.º 8
0
 public function getCMSFields()
 {
     $fields = parent::getCMSFields();
     $gridField = new GridField('CarouselItems', 'Carousel', $this->CarouselItems(), GridFieldConfig_RelationEditor::create());
     $gridField->setModelClass('CarouselItem');
     $fields->addFieldToTab('Root.Carousel', $gridField);
     return $fields;
 }
 public function testGetClasses()
 {
     $grid = new GridField('TestGridField');
     $grid->setModelClass('GridFieldAddNewMultiClassTest_A');
     $component = new GridFieldAddNewMultiClass();
     $this->assertEquals(array('GridFieldAddNewMultiClassTest_A' => 'A', 'GridFieldAddNewMultiClassTest_B' => 'B', 'GridFieldAddNewMultiClassTest_C' => 'C'), $component->getClasses($grid), 'Subclasses are populated by default and sorted');
     $component->setClasses(array('GridFieldAddNewMultiClassTest_B' => 'Custom Title', 'GridFieldAddNewMultiClassTest_A'));
     $this->assertEquals(array('GridFieldAddNewMultiClassTest_B' => 'Custom Title', 'GridFieldAddNewMultiClassTest_A' => 'A'), $component->getClasses($grid), 'Sorting and custom titles can be specified');
 }
 public function updateCMSFields(FieldList $fields)
 {
     $gridfield_config = new GridFieldConfig_RecordViewer();
     $translation = _t('AutoArchiveDestinationExtension.Archivables', 'Archivables');
     $fields->addFieldToTab('Root', new Tab('ArchivablesTab', $translation));
     $fields->addFieldToTab('Root.ArchivablesTab', $gridfield = new GridField('Archivables', $translation, $this->Archivables(true), $gridfield_config));
     $gridfield->setModelClass($this->Archivables()->exists() ? $this->Archivables()->first()->ClassName : AutoArchivableExtension::getExtendedClasses()[0]);
     $gridfield->setDescription(_t('AutoArchiveDestinationExtension.ArchivablesTabDescription', 'This list shows all pages that will be moved under this page when/if they will be archived in the future.'));
 }
Ejemplo n.º 11
0
 public function getCMSFields()
 {
     $fields = parent::getCMSFields();
     $fields->insertAfter(HTMLEditorField::create('ExtraContent'), 'Content');
     $gridField = new GridField('Region', 'Regions', Region::get(), $config = GridFieldConfig_RecordEditor::create());
     $gridField->setModelClass('Region');
     $fields->addFieldToTab('Root.Regions', $gridField);
     return $fields;
 }
Ejemplo n.º 12
0
 public function getCMSFields()
 {
     $fields = parent::getCMSFields();
     $fields->insertAfter(new HTMLEditorField('Sidebar', 'Sidebar Content'), 'Content');
     // Slider tab
     $gridField = new GridField('PromotionalBanners', 'Promotional Banners', $this->PromotionalBanners()->sort(array('Sort' => 'ASC', 'Archived' => 'ASC')), $conf = GridFieldConfig_RelationEditor::create());
     $gridField->setModelClass('PromotionalBanner');
     $fields->addFieldToTab('Root.PromotionalBanners', $gridField);
     $conf->addComponent(new GridFieldOrderableRows());
     return $fields;
 }
Ejemplo n.º 13
0
 public function getCMSFields()
 {
     $fields = parent::getCMSFields();
     $gridField = new GridField('NewsItems', 'NewsItems', $this->NewsItems()->sort(array('Created' => 'ASC', 'Archived' => 'ASC')), $config = GridFieldConfig_RelationEditor::create());
     $gridField->setModelClass('NewsItem');
     $fields->addFieldtoTab('Root.News', $gridField);
     $config->addComponent(new GridFieldOrderableRows());
     $fields->removeByName('Content');
     $fields->removeByName('ExtraContent');
     $fields->removeByName('Features');
     return $fields;
 }
Ejemplo n.º 14
0
 public function getCMSFields()
 {
     $fields = parent::getCMSFields();
     $fields->removeByName('Sidebar');
     $fields->removeByName('PromotionalBanners');
     $fields->insertBefore(UploadField::create('FeatureImage', 'Feature Image'), 'Content');
     // Slider tab
     $gridField = new GridField('SliderItems', 'Slider', $this->SliderItems()->sort(array('Sort' => 'ASC', 'Archived' => 'ASC')), $sliderConf = GridFieldConfig_RelationEditor::create());
     $gridField->setModelClass('SliderItem');
     $fields->addFieldToTab('Root.Slider', $gridField);
     $sliderConf->addComponent(new GridFieldOrderableRows());
     return $fields;
 }
 public function getCMSFields()
 {
     $fields = parent::getCMSFields();
     // NewsGrid
     $gridFieldConfig = GridFieldConfig::create()->addComponents(new GridFieldToolbarHeader(), new GridFieldAddNewSiteTreeItemButton('toolbar-header-right'), new GridFieldSortableHeader(), new GridFieldFilterHeader(), $dataColumns = new GridFieldDataColumns(), new GridFieldPaginator(20), new GridFieldEditSiteTreeItemButton());
     $dataColumns->setDisplayFields(array('Title' => 'Title', 'URLSegment' => 'URL', 'formattedPublishDate' => 'Publish date', 'getStatus' => 'Status', 'LastEdited' => 'Changed'));
     // include both live and stage versions of pages
     $pages = $this->AllChildrenIncludingDeleted();
     // use gridfield as normal;
     $gridField = new GridField("Subpages", "Manage Blogposts", $pages, $gridFieldConfig);
     $gridField->setModelClass(self::$default_child);
     //$gridField->setModelClass("GridFieldPage"); // prevents "GridField doesn't have a modelClassName" error
     $fields->addFieldToTab("Root.BlogPosts", $gridField);
     return $fields;
 }
 public function getCMSFields()
 {
     $fields = parent::getCMSFields();
     $gridEventConfig = GridFieldConfig_RecordEditor::create();
     $gridEventConfig->removeComponentsByType('GridFieldDetailForm');
     $gridEventConfig->addComponent(new CalendarEventPageGridFieldDetailForm());
     //Coming events
     $comingEvents = $this->ComingEvents();
     $GridFieldComing = new GridField('ComingEvents', '', $comingEvents, $gridEventConfig);
     $GridFieldComing->setModelClass('PublicEvent');
     $fields->addFieldToTab('Root.ComingEvents', $GridFieldComing);
     //Past events
     $pastEvents = $this->PastEvents();
     $GridFieldPast = new GridField('PastEvents', '', $pastEvents, $gridEventConfig);
     $GridFieldPast->setModelClass('PublicEvent');
     $fields->addFieldToTab('Root.PastEvents', $GridFieldPast);
     return $fields;
 }
 function getCMSFields()
 {
     $fields = parent::getCMSFields();
     // Main Content tab
     $fields->addFieldToTab('Root.Main', new TreeDropdownField('LearnMorePageID', 'Page to link the "Learn More" button to:', 'SiteTree'), 'Metadata');
     // Carousel tab
     $gridField = new GridField('CarouselItems', 'Carousel', $this->CarouselItems()->sort('Archived'), GridFieldConfig_RelationEditor::create());
     $gridField->setModelClass('CarouselItem');
     $fields->addFieldToTab('Root.Carousel', $gridField);
     $gridField = new GridField('Quicklinks', 'Quicklinks', $this->Quicklinks(), GridFieldConfig_RelationEditor::create());
     $gridField->setModelClass('Quicklink');
     $fields->addFieldToTab('Root.Quicklinks', $gridField);
     $fields->removeByName('Translations');
     $fields->removeByName('Import');
     $fields->addFieldToTab('Root.Features', ToggleCompositeField::create('FeatureOne', _t('SiteTree.FeatureOne', 'Feature One'), array(new TextField('FeatureOneTitle', 'Title'), new DropdownField('FeatureOneCategory', 'Category', singleton('ExpressHomePage')->dbObject('FeatureOneCategory')->enumValues(), '', null, 'none'), new HTMLEditorField('FeatureOneContent', 'Content'), new TreeDropdownField('FeatureOneLinkID', 'Page to link to', 'SiteTree'), new TextField('FeatureOneButtonText', 'Button text')))->setHeadingLevel(3));
     $fields->addFieldToTab('Root.Features', ToggleCompositeField::create('FeatureTwo', _t('SiteTree.FeatureTwo', 'Feature Two'), array(new TextField('FeatureTwoTitle', 'Title'), new DropdownField('FeatureTwoCategory', 'Category', singleton('ExpressHomePage')->dbObject('FeatureTwoCategory')->enumValues(), '', null, 'none'), new HTMLEditorField('FeatureTwoContent', 'Content'), new TreeDropdownField('FeatureTwoLinkID', 'Page to link to', 'SiteTree'), new TextField('FeatureTwoButtonText', 'Button text')))->setHeadingLevel(3));
     return $fields;
 }
Ejemplo n.º 18
0
 public function getCMSFields()
 {
     $fields = parent::getCMSFields();
     $fields->insertAfter(new HTMLEditorField('Sidebar', 'Sidebar Content'), 'Content');
     $gridField = new GridField('SponsorLinks', 'SponsorLinks', $this->SponsorLinks()->sort(array('Sort' => 'ASC')), $config = GridFieldConfig_RelationEditor::create());
     $gridField->setModelClass('Link');
     $fields->addFieldToTab('Root.SponsorLinks', $gridField);
     $config->addComponent(new GridFieldOrderableRows());
     $gridField = new GridField('NewsItems', 'NewsItems', $this->NewsItems()->sort(array('Sort' => 'ASC', 'Archived' => 'ASC')), $config = GridFieldConfig_RelationEditor::create());
     $gridField->setModelClass('NewsItem');
     $fields->addFieldToTab('Root.News', $gridField);
     $config->addComponent(new GridFieldOrderableRows());
     // Carousel tab
     $gridField = new GridField('SliderItems', 'Slider', $this->SliderItems()->sort(array('Sort' => 'ASC', 'Archived' => 'ASC')), $sliderConf = GridFieldConfig_RelationEditor::create());
     $gridField->setModelClass('SliderItem');
     $fields->addFieldToTab('Root.Slider', $gridField);
     $sliderConf->addComponent(new GridFieldOrderableRows());
     return $fields;
 }
 /**
  * Returns the config for a typical inplace-editable gridfield.
  * @param $name
  * @param $title
  * @param $modelClass
  * @param SS_List $data
  * @param array $additionalComponents
  * @return GridFieldConfig
  */
 protected function makeEditableGridField($name, $title, $modelClass, SS_List $data, array $additionalComponents = [])
 {
     /** @var GridFieldConfig $config */
     $config = GridFieldConfig_RecordEditor::create(1000)->removeComponentsByType('GridFieldDataColumns')->addComponents(new GridFieldOrderableRows(ArtisanHasSortOrderExtension::FieldName), new GridFieldEditableColumns());
     foreach ($additionalComponents as $component) {
         $config->addComponent($component);
     }
     $gridField = new GridField($name, $title, $data, $config);
     $gridField->setModelClass($modelClass);
     /** @var GridFieldEditableColumns $editableColumns */
     $editableColumns = $gridField->getConfig()->getComponentByType('GridFieldEditableColumns');
     $model = singleton($modelClass);
     $fields = [];
     $model->extend('provideEditableGridFields', $fields);
     if ($fields) {
         $summaryFields = $model->summaryFields();
         $gridFields = array_merge($summaryFields, $fields);
         $editableColumns->setDisplayFields($gridFields);
     }
     return $gridField;
 }
 public function getCMSFields()
 {
     $fields = parent::getCMSFields();
     $PageTab = Config::inst()->get($this->owner->className, 'subpage_tab');
     // GridFieldPage
     if (Config::inst()->get($this->owner->className, 'add_default_gridfield')) {
         $gridFieldConfig = GridFieldConfig::create()->addComponents(new GridFieldToolbarHeader(), new GridFieldAddNewSiteTreeItemButton('toolbar-header-right'), new GridFieldSortableHeader(), new GridFieldFilterHeader(), $dataColumns = new GridFieldDataColumns(), new GridFieldPaginator(20), new GridFieldEditSiteTreeItemButton());
         // Orderable is optional, as often pages may be sorted by other means
         if (Config::inst()->get($this->owner->className, 'apply_sortable')) {
             // OrderableRows will auto-deactivate when users Sort via SortableHeader
             $gridFieldConfig->addComponent(new GridFieldOrderableRows());
             $fields->addFieldToTab($PageTab, new LiteralField('SortWarning', "<p class=\"message warning\" style=\"display: inline-block;\">" . _t("GridFieldPages.PUBLISHAFTERSORTWARNING", "After reordering, the new sort order will get active after one of the pages gets (re)published") . "</p>"));
         }
         $dataColumns->setDisplayFields(array('Title' => 'Title', 'URLSegment' => 'URL', 'getStatus' => 'Status'));
         // include both live and stage versions of pages
         // use gridfield as normal
         $gridField = new GridField("Subpages", Config::inst()->get($this->owner->className, 'gridfield_title'), $this->AllChildrenIncludingDeleted(), $gridFieldConfig);
         $gridField->setModelClass($this->defaultChild());
         $fields->addFieldToTab($PageTab, $gridField);
     }
     return $fields;
 }
Ejemplo n.º 21
0
 /**
  * Needs to be public because the OrderStep::getCMSFIelds accesses it.
  * @param String $sourceClass
  * @param String $title
  * @param FieldList $fieldList (Optional)
  * @param FieldList $detailedFormFields (Optional)
  *
  * @return GridField
  **/
 public function getOrderStatusLogsTableField($sourceClass = "OrderStatusLog", $title = "", FieldList $fieldList = null, FieldList $detailedFormFields = null)
 {
     $gridFieldConfig = GridFieldConfig_RecordViewer::create()->addComponents(new GridFieldAddNewButton('toolbar-header-right'), new GridFieldDetailForm());
     $title ? $title : ($title = _t("OrderStatusLog.PLURALNAME", "Order Status Logs"));
     $source = $this->OrderStatusLogs()->Filter(array("ClassName" => $sourceClass));
     $gf = new GridField($sourceClass, $title, $source, $gridFieldConfig);
     $gf->setModelClass($sourceClass);
     return $gf;
 }
Ejemplo n.º 22
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;
 }
Ejemplo n.º 23
0
 /**
  * Used in getCSMFields
  * @return GridField
  **/
 protected function getAdditionalImagesField()
 {
     $gridField = new GridField('AdditionalFiles', _t('Product.ADDITIONALIMAGES', 'Additional files and images'), $this->AdditionalFiles(), GridFieldConfig_RelationEditor::create());
     $config = $gridField->getConfig()->removeComponentsByType("GridFieldAddNewButton")->removeComponentsByType("GridFieldAddExistingAutocompleter");
     $gridField->setConfig($config);
     //var_dump($components->items);
     $gridField->setModelClass("Product_Image");
     return $gridField;
 }
 public function updateCMSFields(FieldList $fields)
 {
     $fields->addFieldsToTab('Root.Discounts', $grid = new GridField('Discounts', 'Discount', $this->Discounts(), new GridFieldConfig_RecordViewer()));
     $grid->setModelClass('Discount');
 }