Source of file ElementModelAdmin.php
Size: 3,554 Bytes - Last Modified: 2021-12-23T10:07:18+00:00
/var/www/docs.ssmods.com/process/src/src/Controllers/ElementModelAdmin.php
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 | <?php namespace NSWDPC\Elemental; use DNADesign\Elemental\Models\BaseElement; use DNADesign\Elemental\Models\ElementContent; use DNADesign\ElementalVirtual\Model\ElementVirtual; use SilverStripe\Admin\ModelAdmin; use SilverStripe\Forms\GridField\GridFieldDataColumns; use SilverStripe\Forms\GridField\GridFieldDeleteAction; use SilverStripe\Forms\GridField\GridFieldPaginator; use SilverStripe\Forms\GridField\GridFieldAddNewButton; use SilverStripe\Forms\GridField\GridFieldImportButton; use SilverStripe\Forms\GridField\GridFieldPrintButton; use SilverStripe\Forms\GridField\GridFieldExportButton; use SilverStripe\Core\Convert; use SilverStripe\Core\Injector\Injector; use Symbiote\GridFieldExtensions\GridFieldOrderableRows; /** * An Elemental model administration area * @author James */ class ElementalAdmin extends ModelAdmin { /** * @var array */ private static $managed_models = [ BaseElement::class ]; /** * @var string */ private static $default_sort = "LastEdited DESC"; /** * @var string */ private static $menu_title = 'Elements'; /** * @var string */ private static $url_segment = 'elements-admin'; /** * Get the list of applicable elements, exclude ElementVirtual if available * @return DataList */ public function getList() { $list = parent::getList(); if($sort = $this->config()->get('default_sort')) { $list = $list->sort($sort); } else { $list = $list->sort("LastEdited DESC"); } if(class_exists(ElementVirtual::class)) { $list = $list->exclude(["ClassName" => ElementVirtual::class ]); } return $list; } /** * Return the GridField form listing elements * @return Form */ public function getEditForm($id = null, $fields = null) { $form = parent::getEditForm($id, $fields); $gf = $form->Fields()->dataFieldByName($this->sanitiseClassName($this->modelClass)); $paging = $gf->getConfig()->getComponentByType(GridFieldPaginator::class); if ($paging) { $paging->setItemsPerPage(10); } $dc = $gf->getConfig()->getComponentByType(GridFieldDataColumns::class); if ($dc) { $display_fields = [ 'ID' => _t('ElementalModelAdmin.NUM', '#'), 'Title' => _t('ElementalModelAdmin.TITLE','Title'), 'Parent.OwnerTitleAndDescription' => _t('ElementalModelAdmin.CONTEXT','Context'), 'Type' => _t('ElementalModelAdmin.TYPE','Type'), 'LastEdited.Nice' => _t('ElementalModelAdmin.EDITED','Edited'), 'Created.Nice' => _t('ElementalModelAdmin.CREATED','Created'), 'AvailableGlobally.Nice' => _t('ElementalModelAdmin.GLOBAL','Global'), 'Type' => _t('ElementalModelAdmin.TYPE','Type'), 'Summary' => _t('ElementalModelAdmin.SUMMARY','Summary') ]; $dc->setDisplayFields($display_fields); } $gf->getConfig() ->removeComponentsByType([ GridFieldOrderableRows::class,// no ordering allowed GridFieldDeleteAction::class,// do not allow delete GridFieldAddNewButton::class,// do not allow adding new elements GridFieldImportButton::class, GridFieldExportButton::class, GridFieldPrintButton::class ]); return $form; } } |