protected function getFullRESTRepresentation($value)
 {
     $classname_with_namespace = 'Tuleap\\Tracker\\REST\\Artifact\\ArtifactFieldValueFullRepresentation';
     $artifact_field_value_full_representation = new $classname_with_namespace();
     $artifact_field_value_full_representation->build($this->field->getId(), Tracker_FormElementFactory::instance()->getType($this->field), $this->field->getLabel(), $value);
     return $artifact_field_value_full_representation;
 }
 public function getFullRESTValue(PFUser $user, Tracker_Artifact_Changeset $changeset)
 {
     $classname_with_namespace = 'Tuleap\\Tracker\\REST\\Artifact\\ArtifactFieldValueFullRepresentation';
     $artifact_field_value_full_representation = new $classname_with_namespace();
     $artifact_field_value_full_representation->build($this->getId(), Tracker_FormElementFactory::instance()->getType($this), $this->getLabel(), (int) $changeset->getArtifact()->getPerTrackerArtifactId());
     return $artifact_field_value_full_representation;
 }
 /**
  * build pie chart properties
  *
  * @param Pie_Engine $engine object
  */
 function buildProperties($engine)
 {
     parent::buildProperties($engine);
     $engine->data = array();
     $engine->legend = null;
     $result = array();
     $ff = Tracker_FormElementFactory::instance();
     $af = $ff->getFormElementById($this->chart->getField_base());
     if ($af && $af->userCanRead()) {
         $select = " SELECT count(a.id) AS nb, " . $af->getQuerySelect();
         $from = " FROM tracker_artifact AS a INNER JOIN tracker_changeset AS c ON (c.artifact_id = a.id) " . $af->getQueryFrom();
         $where = " WHERE a.id IN (" . $this->artifacts['id'] . ") \n                          AND c.id IN (" . $this->artifacts['last_changeset_id'] . ") ";
         $sql = $select . $from . $where . ' GROUP BY ' . $af->getQueryGroupBy();
         $res = db_query($sql);
         while ($data = db_fetch_array($res)) {
             if ($data[$af->name] !== null) {
                 $engine->data[] = $data['nb'];
                 $engine->legend[] = $af->fetchRawValue($data[$af->name]);
             } else {
                 $engine->data[] = $data['nb'];
                 $engine->legend[] = $GLOBALS['Language']->getText('global', 'none');
             }
         }
     }
     return $result;
 }
 public function __construct(AgileDashboard_Kanban $kanban, PFUser $user, $user_is_kanban_admin, $language, $project_id)
 {
     $user_preferences = new AgileDashboard_KanbanUserPreferences();
     $kanban_representation_builder = new Tuleap\AgileDashboard\REST\v1\Kanban\KanbanRepresentationBuilder($user_preferences, new AgileDashboard_KanbanColumnFactory(new AgileDashboard_KanbanColumnDao(), $user_preferences), TrackerFactory::instance(), Tracker_FormElementFactory::instance());
     $this->kanban_representation = json_encode($kanban_representation_builder->build($kanban, $user));
     $this->user_is_kanban_admin = (int) $user_is_kanban_admin;
     $this->language = $language;
     $this->project_id = $project_id;
 }
Ejemplo n.º 5
0
 public function activatePlugins()
 {
     $this->activatePlugin('tracker');
     $this->activatePlugin('agiledashboard');
     $this->activatePlugin('cardwall');
     PluginManager::instance()->loadPlugins();
     $this->tracker_artifact_factory = Tracker_ArtifactFactory::instance();
     $this->tracker_formelement_factory = Tracker_FormElementFactory::instance();
     $this->tracker_factory = TrackerFactory::instance();
     return $this;
 }
Ejemplo n.º 6
0
 public function getConfigFactory()
 {
     if (!$this->config_factory) {
         require_once 'OnTop/ConfigFactory.class.php';
         require_once TRACKER_BASE_DIR . '/Tracker/TrackerFactory.class.php';
         $tracker_factory = TrackerFactory::instance();
         $element_factory = Tracker_FormElementFactory::instance();
         $this->config_factory = new Cardwall_OnTop_ConfigFactory($tracker_factory, $element_factory);
     }
     return $this->config_factory;
 }
Ejemplo n.º 7
0
 /**
  * The singleton method
  *
  * @return WorkflowFactory
  */
 public static function instance()
 {
     if (!isset(self::$_instance)) {
         $formelement_factory = Tracker_FormElementFactory::instance();
         $logger = new WorkflowBackendLogger(new BackendLogger());
         $trigger_rules_manager = new Tracker_Workflow_Trigger_RulesManager(new Tracker_Workflow_Trigger_RulesDao(), $formelement_factory, new Tracker_Workflow_Trigger_RulesProcessor(UserManager::instance()->getUserById(Tracker_Workflow_WorkflowUser::ID), $logger), $logger);
         $c = __CLASS__;
         self::$_instance = new $c(TransitionFactory::instance(), TrackerFactory::instance(), $formelement_factory, $trigger_rules_manager, $logger);
     }
     return self::$_instance;
 }
 public function __construct($tracker, $label, $name, $value, $with_none = false, $onchange = "", $desc = "")
 {
     parent::__construct($label, $name, $value, $with_none, $onchange, $desc);
     require_once TRACKER_BASE_DIR . '/Tracker/FormElement/Tracker_FormElementFactory.class.php';
     $aff = Tracker_FormElementFactory::instance();
     foreach ($aff->getUsedDateFields($tracker) as $field) {
         if ($field->userCanRead()) {
             $selected = $this->value == $field->id;
             $this->addOption(new HTML_Element_Option($field->getLabel(), $field->id, $selected));
         }
     }
 }
Ejemplo n.º 9
0
 public function __construct(Cardwall_PaneInfo $info, Planning_Milestone $milestone, Cardwall_OnTop_Config $config, PFUser $user, Planning_MilestoneFactory $milestone_factory)
 {
     $this->info = $info;
     $this->milestone = $milestone;
     $this->config = $config;
     $this->user = $user;
     $this->milestone_factory = $milestone_factory;
     $this->artifact_factory = Tracker_ArtifactFactory::instance();
     $this->tracker_form_element_factory = Tracker_FormElementFactory::instance();
     $this->user_manager = UserManager::instance();
     $this->planning_factory = PlanningFactory::build();
 }
Ejemplo n.º 10
0
 public function __construct(AgileDashboard_Kanban $kanban, PFUser $user, $user_is_kanban_admin, $language, $project_id)
 {
     $user_preferences = new AgileDashboard_KanbanUserPreferences();
     $kanban_representation_builder = new Tuleap\AgileDashboard\REST\v1\Kanban\KanbanRepresentationBuilder($user_preferences, new AgileDashboard_KanbanColumnFactory(new AgileDashboard_KanbanColumnDao(), $user_preferences), new AgileDashboard_KanbanActionsChecker(TrackerFactory::instance(), new AgileDashboard_PermissionsManager(), Tracker_FormElementFactory::instance()));
     $this->kanban_representation = json_encode($kanban_representation_builder->build($kanban, $user));
     $this->user_is_kanban_admin = (int) $user_is_kanban_admin;
     $this->language = $language;
     $this->project_id = $project_id;
     $this->user_id = $user->getId();
     $this->view_mode = $user->getPreference('agiledashboard_kanban_item_view_mode_' . $kanban->getId());
     $this->nodejs_server = ForgeConfig::get('nodejs_server');
 }
 /**
  * build pie chart properties
  *
  * @param Pie_Engine $engine object
  */
 function buildProperties($engine)
 {
     parent::buildProperties($engine);
     $engine->data = array();
     $engine->xaxis = null;
     $engine->labels = null;
     $engine->legend = null;
     $result = array();
     $ff = Tracker_FormElementFactory::instance();
     /** @var Tracker_FormElement_Field_List $af */
     $af = $ff->getFormElementById($this->chart->getField_base());
     if ($af && $af->userCanRead()) {
         $select_group = $from_group = $group_group = $order_group = '';
         if ($this->chart->getField_group()) {
             $gf = $ff->getFormElementById($this->chart->getField_group());
             if ($gf && $gf->userCanRead()) {
                 $select_group = ', ' . $gf->getQuerySelect();
                 $from_group = '  ' . $gf->getQueryFrom();
                 $group_group = ', ' . $gf->getQueryGroupBy();
                 $order_group = ', ' . $gf->getQueryOrderby();
             }
         }
         $select = " SELECT count(a.id) AS nb, " . $af->getQuerySelectWithDecorator() . $select_group;
         $from = " FROM tracker_artifact AS a \n                             INNER JOIN tracker_changeset AS c ON (c.artifact_id = a.id) " . $af->getQueryFromWithDecorator() . $from_group;
         $where = " WHERE a.id IN (" . $this->artifacts['id'] . ") \n                          AND c.id IN (" . $this->artifacts['last_changeset_id'] . ") ";
         $sql = $select . $from . $where . ' GROUP BY ' . $af->getQueryGroupBy() . $group_group . ' ORDER BY ' . $af->getQueryOrderby() . $order_group;
         //echo($sql);
         $none = $GLOBALS['Language']->getText('global', 'none');
         $res = db_query($sql);
         while ($data = db_fetch_array($res)) {
             $color = $this->getColor($data);
             if ($select_group) {
                 $engine->colors[$data[$af->name]] = $color;
                 $engine->data[$data[$af->name]][$data[$gf->name]] = $data['nb'];
                 $engine->xaxis[$data[$gf->name]] = $none;
                 $engine->labels[$data[$gf->name]] = $none;
                 if ($data[$gf->name] !== null) {
                     $engine->xaxis[$data[$gf->name]] = $gf->fetchRawValue($data[$gf->name]);
                     $engine->labels[$data[$gf->name]] = $gf->fetchRawValue($data[$gf->name]);
                 }
             } else {
                 $engine->colors[] = $color;
                 $engine->data[] = $data['nb'];
             }
             $engine->legend[$data[$af->name]] = $none;
             if ($data[$af->name] !== null) {
                 $engine->legend[$data[$af->name]] = $af->fetchRawValue($data[$af->name]);
             }
         }
     }
     return $result;
 }
Ejemplo n.º 12
0
 public function activatePlugins()
 {
     $this->activatePlugin('tracker');
     $this->activatePlugin('agiledashboard');
     $this->activatePlugin('cardwall');
     PluginManager::instance()->invalidateCache();
     PluginManager::instance()->loadPlugins();
     $this->tracker_artifact_factory = Tracker_ArtifactFactory::instance();
     $this->tracker_formelement_factory = Tracker_FormElementFactory::instance();
     $this->tracker_factory = TrackerFactory::instance();
     $this->hierarchy_checker = new AgileDashboard_HierarchyChecker(PlanningFactory::build(), new AgileDashboard_KanbanFactory($this->tracker_factory, new AgileDashboard_KanbanDao()), $this->tracker_factory);
     return $this;
 }
Ejemplo n.º 13
0
 public function setUp()
 {
     parent::setUp();
     ForgeConfig::store();
     ForgeConfig::set('codendi_log', dirname(__FILE__));
     if (!self::$defect_tracker_converted && $this->thisTestIsNotUnderDevelopment()) {
         $this->convertTrackers();
     }
     $this->form_element_factory = Tracker_FormElementFactory::instance();
     $this->tracker_factory = TrackerFactory::instance();
     $this->defect_tracker = $this->tracker_factory->getTrackerById(self::$defect_tracker_id);
     $this->task_tracker = $this->tracker_factory->getTrackerById(self::$task_tracker_id);
 }
Ejemplo n.º 14
0
 /**
  * @return Tracker_Artifact_XMLImport
  */
 public function build(User\XML\Import\IFindUserFromXMLReference $user_finder)
 {
     $artifact_factory = Tracker_ArtifactFactory::instance();
     $formelement_factory = Tracker_FormElementFactory::instance();
     $fields_validator = new Tracker_Artifact_Changeset_AtGivenDateFieldsValidator($formelement_factory);
     $changeset_dao = new Tracker_Artifact_ChangesetDao();
     $changeset_comment_dao = new Tracker_Artifact_Changeset_CommentDao();
     $logger = new Log_ConsoleLogger();
     $send_notifications = false;
     $artifact_creator = new Tracker_ArtifactCreator($artifact_factory, $fields_validator, new Tracker_Artifact_Changeset_InitialChangesetAtGivenDateCreator($fields_validator, $formelement_factory, $changeset_dao, $artifact_factory, EventManager::instance()));
     $new_changeset_creator = new Tracker_Artifact_Changeset_NewChangesetAtGivenDateCreator($fields_validator, $formelement_factory, $changeset_dao, $changeset_comment_dao, $artifact_factory, EventManager::instance(), ReferenceManager::instance());
     return new Tracker_Artifact_XMLImport(new XML_RNGValidator(), $artifact_creator, $new_changeset_creator, Tracker_FormElementFactory::instance(), $user_finder, new Tracker_FormElement_Field_List_Bind_Static_ValueDao(), $logger, $send_notifications);
 }
 /**
  * build burndown chart properties
  *
  * @param Burndown_Engine $engine object
  */
 public function buildProperties($engine)
 {
     parent::buildProperties($engine);
     $form_element_factory = Tracker_FormElementFactory::instance();
     $effort_field = $form_element_factory->getFormElementById($this->chart->getFieldId());
     $type = $form_element_factory->getType($effort_field);
     if ($this->isValidEffortField($effort_field, $type) && $this->isValidType($type)) {
         $engine->data = $this->getBurnDownData($effort_field->getId(), $type);
     }
     $engine->legend = null;
     $engine->start_date = $this->chart->getStartDate();
     $engine->duration = $this->chart->getDuration();
 }
Ejemplo n.º 16
0
 /**
  * Build a Cardwall_Board taking account of Mapped Fieds
  *
  * @param PFUser $user
  * @param Tracker_ArtifactFactory $artifact_factory
  * @param Planning_Milestone $milestone
  * @param Cardwall_OnTop_Config $config
  * @param Cardwall_OnTop_Config_ColumnCollection $columns
  *
  * @return Cardwall_Board
  */
 public function buildBoardUsingMappedFields(PFUser $user, Tracker_ArtifactFactory $artifact_factory, Planning_Milestone $milestone, Cardwall_OnTop_Config $config, Cardwall_OnTop_Config_ColumnCollection $columns)
 {
     $planning = $milestone->getPlanning();
     $field_provider = new Cardwall_OnTop_Config_MappedFieldProvider($config, new Cardwall_FieldProviders_SemanticStatusFieldRetriever());
     $column_preferences = new Cardwall_UserPreferences_Autostack_AutostackDashboard($user, $config->getTracker());
     $column_autostack = new Cardwall_UserPreferences_UserPreferencesAutostackFactory();
     $column_autostack->setAutostack($columns, $column_preferences);
     $mapping_collection = $this->getMappingCollection($planning, $columns, $field_provider, $config);
     $presenter_builder = new Cardwall_CardInCellPresenterBuilder(new Cardwall_CardInCellPresenterFactory($field_provider, $mapping_collection), new Cardwall_CardFields(UserManager::instance(), Tracker_FormElementFactory::instance()), $this->getDisplayPreferences($milestone, $user), $user);
     $swimline_factory = new Cardwall_SwimlineFactory($config, $field_provider);
     $pane_board_builder = new Cardwall_PaneBoardBuilder($presenter_builder, $artifact_factory, new AgileDashboard_BacklogItemDao(), $swimline_factory);
     $board = $pane_board_builder->getBoard($user, $milestone->getArtifact(), $columns, $mapping_collection);
     return $board;
 }
 /**
  * build bar chart data
  *
  * @param Gantt_Engine object
  * @return array data array
  */
 function buildData($engine)
 {
     $engine->data = array();
     $ff = Tracker_FormElementFactory::instance();
     $field_start = $this->chart->getField_start() ? $ff->getFormElementById($this->chart->getField_start()) : null;
     $field_due = $this->chart->getField_due() ? $ff->getFormElementById($this->chart->getField_due()) : null;
     $field_finish = $this->chart->getField_finish() ? $ff->getFormElementById($this->chart->getField_finish()) : null;
     $field_percentage = $this->chart->getField_percentage() ? $ff->getFormElementById($this->chart->getField_percentage()) : null;
     $field_righttext = $this->chart->getField_righttext() ? $ff->getFormElementById($this->chart->getField_righttext()) : null;
     $field_summary = $this->chart->getSummary() ? $ff->getFormElementById($this->chart->getSummary()) : null;
     $af = Tracker_ArtifactFactory::instance();
     $changesets = explode(',', $this->artifacts['last_changeset_id']);
     foreach (explode(',', $this->artifacts['id']) as $i => $aid) {
         if ($artifact = $af->getArtifactByid($aid)) {
             if ($changeset = $artifact->getChangeset($changesets[$i])) {
                 $data = array('id' => $aid, 'summary' => '#' . $aid, 'start' => 0, 'due' => 0, 'finish' => 0, 'progress' => 0, 'right' => '', 'hint' => '#' . $aid, 'links' => TRACKER_BASE_URL . '/?aid=' . $aid);
                 if ($field_start) {
                     $data['start'] = $field_start->fetchRawValueFromChangeset($changeset);
                 }
                 if ($field_due) {
                     $data['due'] = $field_due->fetchRawValueFromChangeset($changeset);
                 }
                 if ($field_finish) {
                     $data['finish'] = $field_finish->fetchRawValueFromChangeset($changeset);
                 }
                 if ($field_percentage) {
                     $data['progress'] = $field_percentage->fetchRawValueFromChangeset($changeset);
                 }
                 if ($field_righttext) {
                     $data['right'] = $field_righttext->fetchRawValueFromChangeset($changeset);
                 }
                 if ($field_summary) {
                     $data['hint'] = $data['summary'] = $field_summary->fetchRawValueFromChangeset($changeset);
                 }
                 if ($data['progress'] < 0) {
                     $data['progress'] = 0;
                 } else {
                     if ($data['progress'] > 100) {
                         $data['progress'] = 1;
                     } else {
                         $data['progress'] = $data['progress'] / 100;
                     }
                 }
                 $engine->data[] = $data;
             }
         }
     }
     usort($engine->data, array($this, 'sortByDate'));
     return $engine->data;
 }
Ejemplo n.º 18
0
 public function process(TrackerManager $engine, Codendi_Request $request, PFUser $current_user)
 {
     $workflow_factory = WorkflowFactory::instance();
     if ($request->get('func') == Workflow::FUNC_ADMIN_RULES) {
         $token = new CSRFSynchronizerToken(TRACKER_BASE_URL . '/?' . http_build_query(array('tracker' => (int) $this->tracker->id, 'func' => Workflow::FUNC_ADMIN_RULES)));
         $rule_date_factory = new Tracker_Rule_Date_Factory(new Tracker_Rule_Date_Dao(), Tracker_FormElementFactory::instance());
         $action = new Tracker_Workflow_Action_Rules_EditRules($this->tracker, $rule_date_factory, $token);
     } elseif ($request->get('func') == Workflow::FUNC_ADMIN_CROSS_TRACKER_TRIGGERS) {
         $token = new CSRFSynchronizerToken(TRACKER_BASE_URL . '/?' . http_build_query(array('tracker' => (int) $this->tracker->id, 'func' => Workflow::FUNC_ADMIN_CROSS_TRACKER_TRIGGERS)));
         $renderer = TemplateRendererFactory::build()->getRenderer(TRACKER_BASE_DIR . '/../templates');
         $action = new Tracker_Workflow_Action_Triggers_EditTriggers($this->tracker, $token, $renderer, $workflow_factory->getTriggerRulesManager());
     } else {
         if ($request->get('func') == Workflow::FUNC_ADMIN_GET_TRIGGERS_RULES_BUILDER_DATA) {
             $action = new Tracker_Workflow_Action_Triggers_GetTriggersRulesBuilderData($this->tracker, Tracker_FormElementFactory::instance());
         } else {
             if ($request->get('func') == Workflow::FUNC_ADMIN_ADD_TRIGGER) {
                 $action = new Tracker_Workflow_Action_Triggers_AddTrigger($this->tracker, Tracker_FormElementFactory::instance(), $workflow_factory->getTriggerRulesManager());
             } else {
                 if ($request->get('func') == Workflow::FUNC_ADMIN_DELETE_TRIGGER) {
                     $action = new Tracker_Workflow_Action_Triggers_DeleteTrigger($this->tracker, $workflow_factory->getTriggerRulesManager());
                 } else {
                     if ($request->get('create')) {
                         $action = new Tracker_Workflow_Action_Transitions_Create($this->tracker, $workflow_factory);
                     } else {
                         if ($request->get('edit_transition')) {
                             $action = new Tracker_Workflow_Action_Transitions_EditTransition($this->tracker, TransitionFactory::instance(), new Transition_PostActionFactory());
                         } else {
                             if ($request->get('delete')) {
                                 $action = new Tracker_Workflow_Action_Transitions_Delete($this->tracker, $workflow_factory);
                             } else {
                                 if ($request->get('transitions')) {
                                     $action = new Tracker_Workflow_Action_Transitions_CreateMatrix($this->tracker, $workflow_factory, Tracker_FormElementFactory::instance());
                                 } else {
                                     if ($request->get('workflow_details')) {
                                         $action = new Tracker_Workflow_Action_Transitions_Details($this->tracker, TransitionFactory::instance());
                                     } else {
                                         $action = new Tracker_Workflow_Action_Transitions_DefineWorkflow($this->tracker, WorkflowFactory::instance(), Tracker_FormElementFactory::instance());
                                     }
                                 }
                             }
                         }
                     }
                 }
             }
         }
     }
     $action->process($engine, $request, $current_user);
 }
Ejemplo n.º 19
0
 /**
  * Process the form
  *
  * @param Tracker_SemanticManager $sm              The semantic manager
  * @param TrackerManager          $tracker_manager The tracker manager
  * @param Codendi_Request         $request         The request
  * @param PFUser                    $current_user    The user who made the request
  *
  * @return void
  */
 public function process(Tracker_SemanticManager $sm, TrackerManager $tracker_manager, Codendi_Request $request, PFUser $current_user)
 {
     if ($request->get('add-field') && (int) $request->get('field')) {
         //retrieve the field if used
         $f = Tracker_FormElementFactory::instance()->getUsedFormElementById($request->get('field'));
         //store the new field
         $this->getDao()->add($this->tracker->id, $f->id, 'end');
     } else {
         if ((int) $request->get('remove')) {
             //retrieve the field if used
             $f = Tracker_FormElementFactory::instance()->getUsedFormElementById($request->get('remove'));
             //store the new field
             $this->getDao()->remove($this->tracker->id, $f->id);
         }
     }
     $this->displayAdmin($sm, $tracker_manager, $request, $current_user);
 }
Ejemplo n.º 20
0
 public function __construct(array $linked_artifacts, $remaining_effort_field_name, User $user)
 {
     $form_element_factory = Tracker_FormElementFactory::instance();
     $artifact_ids_by_tracker = array();
     foreach ($linked_artifacts as $linked_artifact) {
         $tracker_id = $linked_artifact->getTracker()->getId();
         $artifact_id = $linked_artifact->getId();
         $artifact_ids_by_tracker[$tracker_id][] = $artifact_id;
         $this->artifact_ids[] = $artifact_id;
     }
     foreach ($artifact_ids_by_tracker as $tracker_id => $artifact_ids) {
         $effort_field = $form_element_factory->getUsedFieldByNameForUser($tracker_id, $remaining_effort_field_name, $user);
         if ($effort_field) {
             $effort_field_id = $effort_field->getId();
             $effort_field_type = $form_element_factory->getType($effort_field);
             $this->setRemainingEffort($effort_field_id, $effort_field_type, $artifact_ids);
         }
     }
 }
 /**
  * build cumulative_flow chart properties
  *
  * @param CumulativeFlow_Engine $engine object
  */
 public function buildProperties($engine)
 {
     parent::buildProperties($engine);
     $form_element_factory = Tracker_FormElementFactory::instance();
     $observed_field = $form_element_factory->getFormElementById($this->chart->getFieldId());
     $type = $form_element_factory->getType($observed_field);
     $this->observed_field_id = $observed_field->getId();
     $this->timeFiller = array(GraphOnTrackersV5_Chart_CumulativeFlow::SCALE_DAY => 3600 * 24, GraphOnTrackersV5_Chart_CumulativeFlow::SCALE_WEEK => 3600 * 24 * 7, GraphOnTrackersV5_Chart_CumulativeFlow::SCALE_MONTH => 3600 * 24 * 30.45);
     $this->startDate = $this->chart->getStartDate();
     $this->stopDate = $this->chart->getStopDate() ? $this->chart->getStopDate() : time();
     $this->scale = $this->chart->getScale();
     $this->nbSteps = ceil(($this->stopDate - $this->startDate) / $this->timeFiller[$this->scale]);
     if ($this->isValidObservedField($observed_field, $type) && $this->isValidType($type)) {
         $engine->data = $this->getCumulativeFlowData($engine);
     }
     $engine->legend = null;
     $engine->start_date = $this->chart->getStartDate();
     $engine->scale = $this->chart->getScale();
     $engine->stop_date = $this->chart->getStopDate();
 }
 /**
  * build burnup chart properties
  *
  * @param Burnup_Engine $engine object
  */
 function buildProperties($engine)
 {
     parent::buildProperties($engine);
     $data = array();
     $remaining = array();
     $engine->legend = null;
     $result = array();
     $ff = Tracker_FormElementFactory::instance();
     $remaining_f = $ff->getFormElementById($this->chart->getRemainingField());
     $done_f = $ff->getFormElementById($this->chart->getDoneField());
     $ids = array_map(create_function('$a', 'return $a["id"];'), $this->artifacts);
     if ($remaining_f && $remaining_f->userCanRead(user_getid()) && $done_f && $done_f->userCanRead(user_getid())) {
         $sql = "SELECT c.artifact_id AS id, \n                           TO_DAYS(FROM_UNIXTIME(submitted_on)) - TO_DAYS(FROM_UNIXTIME(0)) as day, \n                           f.value as remaining,\n                           done_f.value as done\n                    FROM tracker_changeset AS c \n                         INNER JOIN tracker_changeset_value AS v ON(v.changeset_id = c.id)\n                         INNER JOIN tracker_field_int_value AS f ON(f.field_id = v.field_id and v.value_id = f.id)\n                         INNER JOIN tracker_changeset_value AS done_v ON(done_v.changeset_id = c.id)\n                         INNER JOIN tracker_field_int_value AS done_f ON(done_f.field_id = done_v.field_id and done_v.value_id = done_f.id)\n                    WHERE c.artifact_id IN (" . implode(',', $ids) . ")\n                      AND v.field_id = {$remaining_f->id}\n                      AND done_v.field_id = {$done_f->id}";
         //syntax($sql, 'sql');
         $res = db_query($sql);
         $data = $this->extractDataFromResult($res, $ids, 'done');
         $remaining = $this->extractDataFromResult($res, $ids, 'remaining');
     }
     $engine->data = $data;
     $engine->remaining = $remaining;
     return $data;
 }
 /**
  * Returns the Form Element Factory
  *
  * @return Tracker_FormElementFactory The factory
  */
 protected function getFormElementFactory()
 {
     return Tracker_FormElementFactory::instance();
 }
Ejemplo n.º 24
0
 public function __construct(Transition $transition, Workflow_Transition_Condition_FieldNotEmpty_Dao $dao, Tracker_Artifact $artifact = null)
 {
     parent::__construct($transition);
     $this->dao = $dao;
     $this->formElementFactory = Tracker_FormElementFactory::instance();
 }
Ejemplo n.º 25
0
 private function clearFormElementCache()
 {
     $this->tracker_formelement_factory->clearInstance();
     $this->tracker_formelement_factory->instance();
 }
Ejemplo n.º 26
0
 /**
  * Returns a Tracker_FormElementFactory instance
  *
  * @return Tracker_FormElementFactory
  */
 protected function getFormElementFactory()
 {
     if (empty($this->formElementFactory)) {
         $this->formElementFactory = Tracker_FormElementFactory::instance();
     }
     return $this->formElementFactory;
 }
 /**
  * Load an instance of a Tracker_Semantic_Status
  *
  * @param Tracker $tracker the tracker
  *
  * @return Tracker_Semantic_Status
  */
 public static function load(Tracker $tracker)
 {
     if (!isset(self::$_instances[$tracker->getId()])) {
         $field_id = null;
         $open_values = array();
         $dao = new Tracker_Semantic_StatusDao();
         foreach ($dao->searchByTrackerId($tracker->getId()) as $row) {
             $field_id = $row['field_id'];
             $open_values[] = $row['open_value_id'];
         }
         if (!$open_values) {
             $open_values[] = 100;
         }
         $fef = Tracker_FormElementFactory::instance();
         $field = $fef->getFieldById($field_id);
         self::$_instances[$tracker->getId()] = new Tracker_Semantic_Status($tracker, $field, $open_values);
     }
     return self::$_instances[$tracker->getId()];
 }
Ejemplo n.º 28
0
 /**
  * @return PlanningFactory
  */
 public static function build()
 {
     return new PlanningFactory(new PlanningDao(), TrackerFactory::instance(), Tracker_FormElementFactory::instance(), new PlanningPermissionsManager());
 }
 /**
  * Add an artefact in the tracker
  * 
  * @param Tracker $tracker           The tracker this artifact belongs to
  * @param array   $fields_data       The data of the artifact to create
  * @param PFUser    $user              The user that want to create the artifact
  * @param string  $email             The email if the user is anonymous (null if anonymous)
  * @param boolean $send_notification true if a notification must be sent, false otherwise
  * 
  * @return Tracker_Artifact or false if an error occured
  */
 public function createArtifact(Tracker $tracker, $fields_data, PFUser $user, $email, $send_notification = true)
 {
     $formelement_factory = Tracker_FormElementFactory::instance();
     $fields_validator = new Tracker_Artifact_Changeset_InitialChangesetFieldsValidator($formelement_factory);
     $changeset_creator = new Tracker_Artifact_Changeset_InitialChangesetCreator($fields_validator, $formelement_factory, new Tracker_Artifact_ChangesetDao(), $this, EventManager::instance());
     $creator = new Tracker_ArtifactCreator($this, $fields_validator, $changeset_creator);
     if ($user->isAnonymous()) {
         $user->setEmail($email);
     }
     $submitted_on = $_SERVER['REQUEST_TIME'];
     return $creator->create($tracker, $fields_data, $user, $submitted_on, $send_notification);
 }
Ejemplo n.º 30
0
 private function getBacklogItemCollectionFactory()
 {
     return new AgileDashboard_Milestone_Backlog_BacklogItemCollectionFactory(new AgileDashboard_BacklogItemDao(), $this->getArtifactFactory(), Tracker_FormElementFactory::instance(), $this->getMilestoneFactory(), $this->getPlanningFactory(), new AgileDashboard_Milestone_Backlog_BacklogItemBuilder());
 }