public function build(Tracker_FormElement $field, $type, array $permissions) { $this->field_id = JsonCast::toInt($field->getId()); $this->name = $field->getName(); $this->label = $field->getLabel(); if ($field instanceof Tracker_FormElement_Field) { $this->required = JsonCast::toBoolean($field->isRequired()); $this->collapsed = false; } else { $this->required = false; $this->collapsed = (bool) $field->isCollapsed(); } $this->default_value = $field->getDefaultValue(); $this->type = $type; $this->values = null; if ($field->getRESTAvailableValues()) { $this->values = $field->getRESTAvailableValues(); } $bindings = $field->getSoapBindingProperties(); $this->bindings = array(self::BIND_TYPE => $bindings[Tracker_FormElement_Field_List_Bind::SOAP_TYPE_KEY], self::BIND_LIST => array_map(function ($binding) { return array(Tracker_REST_FieldRepresentation::BIND_ID => $binding[Tracker_FormElement_Field_List_Bind_Users::SOAP_BINDING_LIST_ID], Tracker_REST_FieldRepresentation::BIND_LABEL => $binding[Tracker_FormElement_Field_List_Bind_Users::SOAP_BINDING_LIST_LABEL]); }, $bindings[Tracker_FormElement_Field_List_Bind::SOAP_LIST_KEY])); $this->permissions = array_map(function ($permission) { switch ($permission) { case Tracker_FormElement::SOAP_PERMISSION_READ: return Tracker_REST_FieldRepresentation::PERM_READ; case Tracker_FormElement::SOAP_PERMISSION_UPDATE: return Tracker_REST_FieldRepresentation::PERM_UPDATE; case Tracker_FormElement::SOAP_PERMISSION_SUBMIT: return Tracker_REST_FieldRepresentation::PERM_CREATE; } }, $permissions); }
public function setUp() { parent::setUp(); $tracker = stub('Tracker')->getId()->returns(123); $this->field_status = $this->setUpField($tracker, 1001); $this->field_start_date = $this->setUpField($tracker, 1002); $this->field_close_date = $this->setUpField($tracker, 1003); $this->field_due_date = $this->setUpField($tracker, 1004); $workflow = mock('Workflow'); stub($workflow)->getFieldId()->returns($this->field_status->getId()); $this->transition_factory = mock('TransitionFactory'); stub($this->transition_factory)->isFieldUsedInTransitions($this->field_start_date)->returns(false); stub($this->transition_factory)->isFieldUsedInTransitions($this->field_close_date)->returns(true); $this->workflow_factory = partial_mock('WorkflowFactory', array('getWorkflowByTrackerId'), array($this->transition_factory, mock('TrackerFactory'), mock('Tracker_FormElementFactory'), mock('Tracker_Workflow_Trigger_RulesManager'), mock('WorkflowBackendLogger'))); stub($this->workflow_factory)->getWorkflowByTrackerId($tracker->getId())->returns($workflow); }
/** * @return bool */ private function fieldHasChanged(array $mapping_fields, Tracker $mapping_tracker = null, Tracker_FormElement $field = null) { return !isset($mapping_fields[$mapping_tracker->getId()]) || $mapping_fields[$mapping_tracker->getId()] != $field->getId(); }
/** @return bool */ public function isUsedInFieldDependency(Tracker_FormElement $field) { $field_id = $field->getId(); $list_rules = $this->getAllListRulesByTrackerWithOrder($this->tracker->getId()); $date_rules = $this->getAllDateRulesByTrackerId($this->tracker->getId()); $rules = array_merge($list_rules, $date_rules); foreach ($rules as $rule) { if ($rule->isUsedInRule($field->getId())) { return true; } } return false; }
public function getOriginalFieldId() { if ($this->original_field) { return $this->original_field->getId(); } return 0; }
/** * @return Tracker_FormElement */ public function getFieldFromTrackerAndSharedField(Tracker $tracker, Tracker_FormElement $shared) { $dar = $this->getDao()->searchFieldFromTrackerIdAndSharedFieldId($tracker->getId(), $shared->getId()); return $this->getInstanceFromDar($dar); }