public function updateFields(FieldList $fields)
 {
     if (!$this->owner->ID) {
         return $fields;
     }
     $tab = $fields->fieldByName('Root') ? $fields->findOrMakeTab('Root.Workflow') : $fields;
     if (Permission::check('APPLY_WORKFLOW')) {
         $definition = new DropdownField('WorkflowDefinitionID', _t('WorkflowApplicable.DEFINITION', 'Applied Workflow'));
         $definitions = $this->workflowService->getDefinitions()->map()->toArray();
         $definition->setSource($definitions);
         $definition->setEmptyString(_t('WorkflowApplicable.INHERIT', 'Inherit from parent'));
         $tab->push($definition);
         // Allow an optional selection of additional workflow definitions.
         if ($this->owner->WorkflowDefinitionID) {
             $fields->removeByName('AdditionalWorkflowDefinitions');
             unset($definitions[$this->owner->WorkflowDefinitionID]);
             $tab->push($additional = ListboxField::create('AdditionalWorkflowDefinitions', _t('WorkflowApplicable.ADDITIONAL_WORKFLOW_DEFINITIONS', 'Additional Workflows')));
             $additional->setSource($definitions);
             $additional->setMultiple(true);
         }
     }
     // Display the effective workflow definition.
     if ($effective = $this->getWorkflowInstance()) {
         $title = $effective->Definition()->Title;
         $tab->push(ReadonlyField::create('EffectiveWorkflow', _t('WorkflowApplicable.EFFECTIVE_WORKFLOW', 'Effective Workflow'), $title));
     }
     if ($this->owner->ID) {
         $config = new GridFieldConfig_Base();
         $config->addComponent(new GridFieldEditButton());
         $config->addComponent(new GridFieldDetailForm());
         $insts = $this->owner->WorkflowInstances();
         $log = new GridField('WorkflowLog', _t('WorkflowApplicable.WORKFLOWLOG', 'Workflow Log'), $insts, $config);
         $tab->push($log);
     }
 }
 public function updateFields(FieldList $fields)
 {
     if (!$this->owner->ID) {
         return $fields;
     }
     $effective = $this->workflowService->getDefinitionFor($this->owner);
     $tab = $fields->fieldByName('Root') ? $fields->findOrMakeTab('Root.Workflow') : $fields;
     if (Permission::check('APPLY_WORKFLOW')) {
         $definition = new DropdownField('WorkflowDefinitionID', _t('WorkflowApplicable.DEFINITION', 'Applied Workflow'));
         $definition->setSource($this->workflowService->getDefinitions()->map());
         $definition->setEmptyString(_t('WorkflowApplicable.INHERIT', 'Inherit from parent'));
         $tab->push($definition);
         //			$fields->addFieldToTab($tab, $definition);
     }
     $tab->push(new ReadonlyField('EffectiveWorkflow', _t('WorkflowApplicable.EFFECTIVE_WORKFLOW', 'Effective Workflow'), $effective ? $effective->Title : _t('WorkflowApplicable.NONE', '(none)')));
     if ($this->owner->ID) {
         $config = new GridFieldConfig_Base();
         $config->addComponent(new GridFieldEditButton());
         $config->addComponent(new GridFieldDetailForm());
         $insts = $this->owner->WorkflowInstances();
         $log = new GridField('WorkflowLog', _t('WorkflowApplicable.WORKFLOWLOG', 'Workflow Log'), $insts, $config);
         $tab->push($log);
     }
 }