コード例 #1
0
 private function assertFieldIsStaticSelectbox(Tracker_FormElement $field)
 {
     if (!($field instanceof Tracker_FormElement_Field_Selectbox && $field->getBind() instanceof Tracker_FormElement_Field_List_Bind_Static)) {
         $exception_message = $GLOBALS['Language']->getText('plugin_tracker_formelement_exception', 'field_must_be_static');
         throw new Exception($exception_message);
     }
 }
コード例 #2
0
 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);
 }
コード例 #3
0
ファイル: Visitor.class.php プロジェクト: rinodung/tuleap
 protected function displayFullPage(TrackerManager $tracker_manager, $breadcrumbsLabel, $url, $title, $form)
 {
     $breadcrumbs = array(array('title' => $breadcrumbsLabel, 'url' => $url));
     $this->element->getTracker()->displayAdminFormElementsHeader($tracker_manager, $title, $breadcrumbs);
     echo '<h2>' . $title . '</h2>';
     echo $form;
     $this->element->getTracker()->displayFooter($tracker_manager);
 }
コード例 #4
0
ファイル: Visitor.class.php プロジェクト: pombredanne/tuleap
 protected function displayFullPage(TrackerManager $tracker_manager, $breadcrumbsLabel, $url, $title, $form)
 {
     $breadcrumbs = array(array('title' => $breadcrumbsLabel, 'url' => $url));
     $this->element->getTracker()->displayAdminFormElementsHeader($tracker_manager, $title, $breadcrumbs);
     $purifier = Codendi_HTMLPurifier::instance();
     echo '<h2>' . $purifier->purify($title) . '</h2>';
     echo $form;
     $this->element->getTracker()->displayFooter($tracker_manager);
 }
コード例 #5
0
 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);
 }
コード例 #6
0
ファイル: Admin.class.php プロジェクト: pombredanne/tuleap
 public function fetchSharedUsage()
 {
     $html = '';
     $fields = $this->formElement->getSharedTargets();
     if ($fields) {
         $trackers = array();
         foreach ($fields as $field) {
             $t = $field->getTracker();
             $trackers[$t->getId()] = '<a href="' . TRACKER_BASE_URL . '/?tracker=' . $t->getId() . '&func=admin-formElements">' . $t->getName() . ' (' . $t->getProject()->getPublicName() . ')</a>';
         }
         $html .= $GLOBALS['Language']->getText('plugin_tracker_include_type', 'field_copied_to');
         $html .= '<ul><li>';
         $html .= implode('</li><li>', $trackers);
         $html .= '</li></ul>';
     }
     return $html;
 }
コード例 #7
0
 /**
  * @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();
 }
コード例 #8
0
 /** @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;
 }
コード例 #9
0
 public function getOriginalFieldId()
 {
     if ($this->original_field) {
         return $this->original_field->getId();
     }
     return 0;
 }
コード例 #10
0
 /**
  * @return Tracker_FormElement
  */
 public function getFieldFromTrackerAndSharedField(Tracker $tracker, Tracker_FormElement $shared)
 {
     $dar = $this->getDao()->searchFieldFromTrackerIdAndSharedFieldId($tracker->getId(), $shared->getId());
     return $this->getInstanceFromDar($dar);
 }
コード例 #11
0
 /**
  * Continue the initialisation from an xml (FormElementFactory is not smart enough to do all stuff.
  * Polymorphism rulez!!!
  *
  * @param SimpleXMLElement $xml         containing the structure of the imported Tracker_FormElement
  * @param array            &$xmlMapping where the newly created formElements indexed by their XML IDs are stored (and values)
  *
  * @return void
  */
 public function continueGetInstanceFromXML($xml, &$xmlMapping, User\XML\Import\IFindUserFromXMLReference $user_finder)
 {
     parent::continueGetInstanceFromXML($xml, $xmlMapping, $user_finder);
     // add children
     if ($xml->formElements) {
         foreach ($xml->formElements->formElement as $elem) {
             $this->formElements[] = $this->getFormElementFactory()->getInstanceFromXML($this->getTracker(), $elem, $xmlMapping, $user_finder);
         }
     }
 }
コード例 #12
0
 /**
  * Continue the initialisation from an xml (FormElementFactory is not smart enough to do all stuff.
  * Polymorphism rulez!!!
  *
  * @param SimpleXMLElement $xml         containing the structure of the imported Tracker_FormElement
  * @param array            &$xmlMapping where the newly created formElements indexed by their XML IDs are stored (and values)
  *
  * @return void
  */
 public function continueGetInstanceFromXML($xml, &$xmlMapping)
 {
     parent::continueGetInstanceFromXML($xml, $xmlMapping);
     // add children
     if ($xml->formElements) {
         foreach ($xml->formElements->formElement as $elem) {
             $this->formElements[] = $this->getFormElementFactory()->getInstanceFromXML($this->getTracker(), $elem, $xmlMapping);
         }
     }
 }