Source of file AdvancedReportsAdmin.php
Size: 1,803 Bytes - Last Modified: 2021-12-23T10:25:16+00:00
/var/www/docs.ssmods.com/process/src/code/admin/AdvancedReportsAdmin.php
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 | <?php /** * Provides an interface for creating, managing, and generating reports. */ class AdvancedReportsAdmin extends ModelAdmin { private static $menu_title = 'Advanced Reports'; private static $url_segment = 'advanced-reports'; private static $menu_icon = 'advancedreports/images/bar-chart.png'; private static $model_importers = array(); private $managedModels; public function init() { parent::init(); Requirements::javascript(THIRDPARTY_DIR . '/jquery/jquery.js'); Requirements::javascript('advancedreports/javascript/advanced-report-settings.js'); } public function getEditForm($id = null, $fields = null) { $form = parent::getEditForm($id, $fields); $name = $this->sanitiseClassName($this->modelClass); $grid = $form->Fields()->dataFieldByName($name); $grid->getConfig()->getComponentByType('GridFieldDetailForm')->setItemRequestClass( 'AdvancedReportsAdminItemRequest' ); if (class_exists('GridFieldCopyButton')) { $grid->getConfig()->addComponent(new GridFieldCopyButton(), 'GridFieldEditButton'); } return $form; } public function getList() { return parent::getList()->filter('ReportID', 0); } /** * If no managed models are explicitly defined, then default to displaying * all available reports. * * @return array */ public function getManagedModels() { if($this->managedModels !== null) { return $this->managedModels; } if($this->stat('managed_models')) { $result = parent::getManagedModels(); } else { $classes = ClassInfo::subclassesFor('AdvancedReport'); $result = array(); array_shift($classes); foreach($classes as $class) { $result[$class] = array('title' => singleton($class)->singular_name()); } } return $this->managedModels = $result; } } |