public function componentFilter() { $i18n = TBGContext::getI18n(); $this->selected_value = isset($this->selected_value) ? $this->selected_value : 0; $this->selected_operator = isset($this->selected_operator) ? $this->selected_operator : '='; $filters = array(); $filters['status'] = array('description' => $i18n->__('Status'), 'options' => TBGStatus::getAll()); $filters['category'] = array('description' => $i18n->__('Category'), 'options' => TBGCategory::getAll()); $filters['priority'] = array('description' => $i18n->__('Priority'), 'options' => TBGPriority::getAll()); $filters['severity'] = array('description' => $i18n->__('Severity'), 'options' => TBGSeverity::getAll()); $filters['reproducability'] = array('description' => $i18n->__('Reproducability'), 'options' => TBGReproducability::getAll()); $filters['resolution'] = array('description' => $i18n->__('Resolution'), 'options' => TBGResolution::getAll()); $filters['issuetype'] = array('description' => $i18n->__('Issue type'), 'options' => TBGIssuetype::getAll()); $this->filters = $filters; }
/** * Configuration import page * * @param TBGRequest $request */ public function runImport(TBGRequest $request) { if ($request->isMethod(TBGRequest::POST)) { if ($request->getParameter('import_sample_data')) { $users = array(); $user1 = new TBGUser(); $user1->setUsername('john'); $user1->setPassword('john'); $user1->setBuddyname('John'); $user1->setRealname('John'); $user1->setActivated(); $user1->setEnabled(); $user1->save(); $users[] = $user1; $user2 = new TBGUser(); $user2->setUsername('jane'); $user2->setPassword('jane'); $user2->setBuddyname('Jane'); $user2->setRealname('Jane'); $user2->setActivated(); $user2->setEnabled(); $user2->save(); $users[] = $user2; $user3 = new TBGUser(); $user3->setUsername('jackdaniels'); $user3->setPassword('jackdaniels'); $user3->setBuddyname('Jack'); $user3->setRealname('Jack Daniels'); $user3->setActivated(); $user3->setEnabled(); $user3->save(); $users[] = $user3; $project1 = new TBGProject(); $project1->setName('Sample project 1'); $project1->setOwner($users[rand(0, 2)]); $project1->setLeader($users[rand(0, 2)]); $project1->setQaResponsible($users[rand(0, 2)]); $project1->setDescription('This is a sample project that is awesome. Try it out!'); $project1->setHomepage('http://www.google.com'); $project1->save(); $project2 = new TBGProject(); $project2->setName('Sample project 2'); $project2->setOwner($users[rand(0, 2)]); $project2->setLeader($users[rand(0, 2)]); $project2->setQaResponsible($users[rand(0, 2)]); $project2->setDescription('This is the second sample project. Not as awesome as the first one, but still worth a try!'); $project2->setHomepage('http://www.bing.com'); $project2->save(); foreach (array($project1, $project2) as $project) { for ($cc = 1; $cc <= 5; $cc++) { $milestone = new TBGMilestone(); $milestone->setName("Milestone {$cc}"); $milestone->setProject($project); $milestone->setType(TBGMilestone::TYPE_REGULAR); if ((bool) rand(0, 1)) { $milestone->setScheduledDate(NOW + 100000 * (20 * $cc)); } $milestone->save(); } } $p1_milestones = $project1->getMilestones(); $p2_milestones = $project2->getMilestones(); $issues = array(); $priorities = TBGPriority::getAll(); $categories = TBGCategory::getAll(); $severities = TBGSeverity::getAll(); $statuses = TBGStatus::getAll(); $reproducabilities = TBGReproducability::getAll(); $lorem_ipsum = TBGArticlesTable::getTable()->getArticleByName('LoremIpsum'); $lorem_ipsum = PublishFactory::article($lorem_ipsum->get(TBGArticlesTable::ID), $lorem_ipsum); $lorem_words = explode(' ', $lorem_ipsum->getContent()); foreach (array('bugreport', 'featurerequest', 'enhancement', 'idea') as $issuetype) { $issuetype = TBGIssuetype::getIssuetypeByKeyish($issuetype); for ($cc = 1; $cc <= 10; $cc++) { $issue1 = new TBGIssue(); $issue1->setProject($project1); $issue1->setPostedBy($users[rand(0, 2)]); $issue1->setPosted(NOW - 86400 * rand(1, 30)); $title_string = ''; $description_string = ''; $rand_length = rand(4, 15); $ucnext = true; for ($ll = 1; $ll <= $rand_length; $ll++) { $word = str_replace(array(',', '.', "\r", "\n"), array('', '', '', ''), $lorem_words[array_rand($lorem_words)]); $word = $ucnext || rand(1, 40) == 19 ? ucfirst($word) : strtolower($word); $title_string .= $word; $ucnext = false; if ($ll == $rand_length || rand(1, 15) == 5) { $title_string .= '.'; $ucnext = true; } $title_string .= ' '; } $rand_length = rand(40, 500); $ucnext = true; for ($ll = 1; $ll <= $rand_length; $ll++) { $word = str_replace(array(',', '.', "\r", "\n"), array('', '', '', ''), $lorem_words[array_rand($lorem_words)]); $word = $ucnext || rand(1, 40) == 19 ? ucfirst($word) : strtolower($word); $description_string .= $word; $ucnext = false; if ($ll == $rand_length || rand(1, 15) == 5) { $description_string .= '.'; $ucnext = true; $description_string .= $ll != $rand_length && rand(1, 15) == 8 ? "\n\n" : ' '; } else { $description_string .= ' '; } } $issue1->setTitle(ucfirst($title_string)); $issue1->setDescription($description_string); $issue1->setIssuetype($issuetype); $issue1->setMilestone($p1_milestones[array_rand($p1_milestones)]); $issue1->setPriority($priorities[array_rand($priorities)]); $issue1->setCategory($categories[array_rand($categories)]); $issue1->setSeverity($severities[array_rand($severities)]); $issue1->setReproducability($reproducabilities[array_rand($reproducabilities)]); $issue1->setPercentCompleted(rand(0, 100)); $issue1->save(); $issue1->setStatus($statuses[array_rand($statuses)]); if (rand(0, 1)) { $issue1->setAssignee($users[array_rand($users)]); } $issue1->save(); $issues[] = $issue1; $issue2 = new TBGIssue(); $issue2->setProject($project2); $issue2->setPostedBy($users[rand(0, 2)]); $issue2->setPosted(NOW - 86400 * rand(1, 30)); $title_string = ''; $description_string = ''; $rand_length = rand(4, 15); $ucnext = true; for ($ll = 1; $ll <= $rand_length; $ll++) { $word = str_replace(array(',', '.', "\r", "\n"), array('', '', '', ''), $lorem_words[array_rand($lorem_words)]); $word = $ucnext || rand(1, 40) == 19 ? ucfirst($word) : strtolower($word); $title_string .= $word; $ucnext = false; if ($ll == $rand_length || rand(1, 15) == 5) { $title_string .= '.'; $ucnext = true; } $title_string .= ' '; } $rand_length = rand(40, 500); $ucnext = true; for ($ll = 1; $ll <= $rand_length; $ll++) { $word = str_replace(array(',', '.', "\r", "\n"), array('', '', '', ''), $lorem_words[array_rand($lorem_words)]); $word = $ucnext || rand(1, 40) == 19 ? ucfirst($word) : strtolower($word); $description_string .= $word; $ucnext = false; if ($ll == $rand_length || rand(1, 15) == 5) { $description_string .= '.'; $ucnext = true; $description_string .= $ll != $rand_length && rand(1, 15) == 8 ? "\n\n" : ' '; } else { $description_string .= ' '; } } $issue2->setTitle(ucfirst($title_string)); $issue2->setDescription($description_string); $issue2->setIssuetype($issuetype); $issue2->setMilestone($p2_milestones[array_rand($p2_milestones)]); $issue2->setPriority($priorities[array_rand($priorities)]); $issue2->setCategory($categories[array_rand($categories)]); $issue2->setSeverity($severities[array_rand($severities)]); $issue2->setReproducability($reproducabilities[array_rand($reproducabilities)]); $issue2->setPercentCompleted(rand(0, 100)); if (rand(0, 1)) { $issue1->setAssignee($users[array_rand($users)]); } $issue2->save(); $issue2->setStatus($statuses[array_rand($statuses)]); $issue2->save(); $issues[] = $issue2; } } $rand_issues_to_close = rand(8, 40); $resolutions = TBGResolution::getAll(); for ($cc = 1; $cc <= $rand_issues_to_close; $cc++) { $issue = array_slice($issues, array_rand($issues), 1); $issue = $issue[0]; $issue->setResolution($resolutions[array_rand($resolutions)]); $issue->close(); $issue->save(); } $this->imported_data = true; $developer = TBGProjectAssigneesTable::getByType(TBGProjectAssigneesTable::TYPE_DEVELOPER); foreach (array($project1, $project2) as $project) { foreach ($users as $user) { $project->addAssignee($user, $developer->getID()); } } } } $project1 = TBGProject::getByKey('sampleproject1'); $project2 = TBGProject::getByKey('sampleproject2'); $this->canimport = !$project1 instanceof TBGProject && !$project2 instanceof TBGProject; }
<?php echo __('Reproducability must be any of these values'); ?> <?php } ?> </label> <?php if ($rule->getRule() == TBGWorkflowTransitionValidationRule::RULE_STATUS_VALID) { $options = TBGStatus::getAll(); } elseif ($rule->getRule() == TBGWorkflowTransitionValidationRule::RULE_PRIORITY_VALID) { $options = TBGPriority::getAll(); } elseif ($rule->getRule() == TBGWorkflowTransitionValidationRule::RULE_RESOLUTION_VALID) { $options = TBGResolution::getAll(); } elseif ($rule->getRule() == TBGWorkflowTransitionValidationRule::RULE_REPRODUCABILITY_VALID) { $options = TBGReproducability::getAll(); } elseif ($rule->getRule() == TBGWorkflowTransitionValidationRule::ACTION_ASSIGN_ISSUE) { $options = $available_assignees; } ?> <?php foreach ($options as $option) { ?> <br><input type="checkbox" style="margin-left: 25px;" name="rule_value[<?php echo $option->getID(); ?> ]" value="<?php echo $option->getID(); ?> "<?php if ($rule->isValueValid($option->getID())) {
public function getAvailableValues($filters = array()) { switch ($this->getFilterKey()) { case 'issuetype': return TBGContext::isProjectContext() ? TBGContext::getCurrentProject()->getIssuetypeScheme()->getIssuetypes() : TBGIssuetype::getAll(); case 'status': return TBGStatus::getAll(); case 'category': return TBGCategory::getAll(); case 'priority': return TBGPriority::getAll(); case 'severity': return TBGSeverity::getAll(); case 'reproducability': return TBGReproducability::getAll(); case 'resolution': return TBGResolution::getAll(); case 'project_id': return TBGProject::getAll(); case 'build': return $this->_getAvailableBuildChoices(); case 'component': return $this->_getAvailableComponentChoices(); case 'edition': return $this->_getAvailableEditionChoices(); case 'milestone': return $this->_getAvailableMilestoneChoices(); case 'subprojects': $filters = array(); $projects = TBGProject::getIncludingAllSubprojectsAsArray(TBGContext::getCurrentProject()); foreach ($projects as $project) { if ($project->getID() == TBGContext::getCurrentProject()->getID()) { continue; } $filters[$project->getID()] = $project; } return $filters; case 'owner_user': case 'assignee_user': case 'posted_by': return $this->_getAvailableUserChoices(); case 'owner_team': case 'assignee_team': return $this->_getAvailableTeamChoices(); default: $customdatatype = TBGCustomDatatype::getByKey($this->getFilterKey()); if ($customdatatype instanceof TBGCustomDatatype && $customdatatype->hasCustomOptions()) { return $customdatatype->getOptions(); } else { switch ($this->getFilterType()) { case TBGCustomDatatype::COMPONENTS_CHOICE: return $this->_getAvailableComponentChoices(); case TBGCustomDatatype::RELEASES_CHOICE: return $this->_getAvailableBuildChoices(); case TBGCustomDatatype::EDITIONS_CHOICE: return $this->_getAvailableEditionChoices(); case TBGCustomDatatype::MILESTONE_CHOICE: return $this->_getAvailableMilestoneChoices(); case TBGCustomDatatype::USER_CHOICE: return $this->_getAvailableUserChoices(); case TBGCustomDatatype::TEAM_CHOICE: return $this->_getAvailableTeamChoices(); case TBGCustomDatatype::STATUS_CHOICE: return TBGStatus::getAll(); default: return array(); } } } }
</thead> <tbody> <?php foreach (TBGIssuetypeScheme::getAll() as $item) { echo '<tr><td>' . __('Issue type scheme') . '</td><td>' . $item->getName() . '</td><td>' . $item->getID() . '</td></tr>'; } foreach (TBGWorkflowScheme::getAll() as $item) { echo '<tr><td>' . __('Workflow scheme') . '</td><td>' . $item->getName() . '</td><td>' . $item->getID() . '</td></tr>'; } foreach (TBGProject::getAll() as $item) { echo '<tr><td>' . __('Project') . '</td><td>' . $item->getName() . '</td><td>' . $item->getID() . '</td></tr>'; foreach (TBGMilestone::getAllByProjectID($item->getID()) as $item2) { echo '<tr><td>' . __('Milestone for project') . ' ' . $item->getID() . '</td><td>' . $item2->getName() . '</td><td>' . $item2->getID() . '</td></tr>'; } } foreach (TBGReproducability::getAll() as $item) { echo '<tr><td>' . __('Reproducability') . '</td><td>' . $item->getName() . '</td><td>' . $item->getID() . '</td></tr>'; } foreach (TBGSeverity::getAll() as $item) { echo '<tr><td>' . __('Severity') . '</td><td>' . $item->getName() . '</td><td>' . $item->getID() . '</td></tr>'; } foreach (TBGCategory::getAll() as $item) { echo '<tr><td>' . __('Category') . '</td><td>' . $item->getName() . '</td><td>' . $item->getID() . '</td></tr>'; } foreach (TBGPriority::getAll() as $item) { echo '<tr><td>' . __('Priority') . '</td><td>' . $item->getName() . '</td><td>' . $item->getID() . '</td></tr>'; } foreach (TBGResolution::getAll() as $item) { echo '<tr><td>' . __('Resolution') . '</td><td>' . $item->getName() . '</td><td>' . $item->getID() . '</td></tr>'; } foreach (TBGIssuetype::getAll() as $item) {
protected function _setupReportIssueProperties() { $this->selected_issuetype = $this->selected_issuetype ?: null; $this->selected_edition = $this->selected_edition ?: null; $this->selected_build = $this->selected_build ?: null; $this->selected_milestone = $this->selected_milestone ?: null; $this->parent_issue = $this->parent_issue ?: null; $this->selected_component = $this->selected_component ?: null; $this->selected_category = $this->selected_category ?: null; $this->selected_status = $this->selected_status ?: null; $this->selected_resolution = $this->selected_resolution ?: null; $this->selected_priority = $this->selected_priority ?: null; $this->selected_reproducability = $this->selected_reproducability ?: null; $this->selected_severity = $this->selected_severity ?: null; $this->selected_estimated_time = $this->selected_estimated_time ?: null; $this->selected_spent_time = $this->selected_spent_time ?: null; $this->selected_percent_complete = $this->selected_percent_complete ?: null; $this->selected_pain_bug_type = $this->selected_pain_bug_type ?: null; $this->selected_pain_likelihood = $this->selected_pain_likelihood ?: null; $this->selected_pain_effect = $this->selected_pain_effect ?: null; $selected_customdatatype = $this->selected_customdatatype ?: array(); foreach (TBGCustomDatatype::getAll() as $customdatatype) { $selected_customdatatype[$customdatatype->getKey()] = isset($selected_customdatatype[$customdatatype->getKey()]) ? $selected_customdatatype[$customdatatype->getKey()] : null; } $this->selected_customdatatype = $selected_customdatatype; $this->issuetype_id = $this->issuetype_id ?: null; $this->issue = $this->issue ?: null; $this->categories = TBGCategory::getAll(); $this->severities = TBGSeverity::getAll(); $this->priorities = TBGPriority::getAll(); $this->reproducabilities = TBGReproducability::getAll(); $this->resolutions = TBGResolution::getAll(); $this->statuses = TBGStatus::getAll(); $this->milestones = TBGContext::getCurrentProject()->getMilestonesForIssues(); }
<select name="reproducability[<?php echo $issue->getID(); ?> ]" id="reproducability_selector_<?php echo $issue->getID(); ?> "> <option value="0"<?php if (!$issue->getReproducability() instanceof TBGReproducability) { ?> selected<?php } ?> >--</option> <?php foreach (TBGReproducability::getAll() as $r_id => $reproducability) { ?> <option value="<?php echo $r_id; ?> "<?php if ($issue->getReproducability() instanceof TBGReproducability && $issue->getReproducability()->getID() == $r_id) { ?> selected<?php } ?> ><?php echo $reproducability->getName(); ?> </option> <?php
protected function setupVariables() { $i18n = TBGContext::getI18n(); $this->statuses = TBGStatus::getAll(); $this->issuetypes = $this->issue->getProject()->getIssuetypeScheme()->getIssuetypes(); $fields_list = array(); $fields_list['category'] = array('title' => $i18n->__('Category'), 'visible' => $this->issue->isCategoryVisible(), 'changed' => $this->issue->isCategoryChanged(), 'merged' => $this->issue->isCategoryMerged(), 'name' => $this->issue->getCategory() instanceof TBGCategory ? $this->issue->getCategory()->getName() : '', 'name_visible' => (bool) ($this->issue->getCategory() instanceof TBGCategory), 'noname_visible' => (bool) (!$this->issue->getCategory() instanceof TBGCategory), 'icon' => false, 'change_tip' => $i18n->__('Click to change category'), 'change_header' => $i18n->__('Change category'), 'clear' => $i18n->__('Clear the category'), 'select' => $i18n->__('%clear_the_category% or click to select a new category', array('%clear_the_category%' => ''))); if ($this->issue->isEditable() && $this->issue->canEditCategory()) { $fields_list['category']['choices'] = TBGCategory::getAll(); } $fields_list['resolution'] = array('title' => $i18n->__('Resolution'), 'visible' => $this->issue->isResolutionVisible(), 'changed' => $this->issue->isResolutionChanged(), 'merged' => $this->issue->isResolutionMerged(), 'name' => $this->issue->getResolution() instanceof TBGResolution ? $this->issue->getResolution()->getName() : '', 'name_visible' => (bool) ($this->issue->getResolution() instanceof TBGResolution), 'noname_visible' => (bool) (!$this->issue->getResolution() instanceof TBGResolution), 'icon' => false, 'change_tip' => $i18n->__('Click to change resolution'), 'change_header' => $i18n->__('Change resolution'), 'clear' => $i18n->__('Clear the resolution'), 'select' => $i18n->__('%clear_the_resolution% or click to select a new resolution', array('%clear_the_resolution%' => ''))); if ($this->issue->isUpdateable() && $this->issue->canEditResolution()) { $fields_list['resolution']['choices'] = TBGResolution::getAll(); } $fields_list['priority'] = array('title' => $i18n->__('Priority'), 'visible' => $this->issue->isPriorityVisible(), 'changed' => $this->issue->isPriorityChanged(), 'merged' => $this->issue->isPriorityMerged(), 'name' => $this->issue->getPriority() instanceof TBGPriority ? $this->issue->getPriority()->getName() : '', 'name_visible' => (bool) ($this->issue->getPriority() instanceof TBGPriority), 'noname_visible' => (bool) (!$this->issue->getPriority() instanceof TBGPriority), 'icon' => false, 'change_tip' => $i18n->__('Click to change priority'), 'change_header' => $i18n->__('Change priority'), 'clear' => $i18n->__('Clear the priority'), 'select' => $i18n->__('%clear_the_priority% or click to select a new priority', array('%clear_the_priority%' => ''))); if ($this->issue->isUpdateable() && $this->issue->canEditPriority()) { $fields_list['priority']['choices'] = TBGPriority::getAll(); } $fields_list['reproducability'] = array('title' => $i18n->__('Reproducability'), 'visible' => $this->issue->isReproducabilityVisible(), 'changed' => $this->issue->isReproducabilityChanged(), 'merged' => $this->issue->isReproducabilityMerged(), 'name' => $this->issue->getReproducability() instanceof TBGReproducability ? $this->issue->getReproducability()->getName() : '', 'name_visible' => (bool) ($this->issue->getReproducability() instanceof TBGReproducability), 'noname_visible' => (bool) (!$this->issue->getReproducability() instanceof TBGReproducability), 'icon' => false, 'change_tip' => $i18n->__('Click to change reproducability'), 'change_header' => $i18n->__('Change reproducability'), 'clear' => $i18n->__('Clear the reproducability'), 'select' => $i18n->__('%clear_the_reproducability% or click to select a new reproducability', array('%clear_the_reproducability%' => ''))); if ($this->issue->isEditable() && $this->issue->canEditReproducability()) { $fields_list['reproducability']['choices'] = TBGReproducability::getAll(); } $fields_list['severity'] = array('title' => $i18n->__('Severity'), 'visible' => $this->issue->isSeverityVisible(), 'changed' => $this->issue->isSeverityChanged(), 'merged' => $this->issue->isSeverityMerged(), 'name' => $this->issue->getSeverity() instanceof TBGSeverity ? $this->issue->getSeverity()->getName() : '', 'name_visible' => (bool) ($this->issue->getSeverity() instanceof TBGSeverity), 'noname_visible' => (bool) (!$this->issue->getSeverity() instanceof TBGSeverity), 'icon' => false, 'change_tip' => $i18n->__('Click to change severity'), 'change_header' => $i18n->__('Change severity'), 'clear' => $i18n->__('Clear the severity'), 'select' => $i18n->__('%clear_the_severity% or click to select a new severity', array('%clear_the_severity%' => ''))); if ($this->issue->isUpdateable() && $this->issue->canEditSeverity()) { $fields_list['severity']['choices'] = TBGSeverity::getAll(); } $fields_list['milestone'] = array('title' => $i18n->__('Targetted for'), 'visible' => $this->issue->isMilestoneVisible(), 'changed' => $this->issue->isMilestoneChanged(), 'merged' => $this->issue->isMilestoneMerged(), 'name' => $this->issue->getMilestone() instanceof TBGMilestone ? $this->issue->getMilestone()->getName() : '', 'name_visible' => (bool) ($this->issue->getMilestone() instanceof TBGMilestone), 'noname_visible' => (bool) (!$this->issue->getMilestone() instanceof TBGMilestone), 'icon' => true, 'icon_name' => 'icon_milestones.png', 'change_tip' => $i18n->__('Click to change which milestone this issue is targetted for'), 'change_header' => $i18n->__('Set issue target / milestone'), 'clear' => $i18n->__('Set as not targetted'), 'select' => $i18n->__('%set_as_not_targetted% or click to set a new target milestone', array('%set_as_not_targetted%' => ''))); if ($this->issue->isUpdateable() && $this->issue->canEditMilestone()) { $fields_list['milestone']['choices'] = $this->issue->getProject()->getAllMilestones(); } $customfields_list = array(); foreach (TBGCustomDatatype::getAll() as $key => $customdatatype) { $changed_methodname = "isCustomfield{$key}Changed"; $merged_methodname = "isCustomfield{$key}Merged"; $customfields_list[$key] = array('type' => $customdatatype->getType(), 'title' => $i18n->__($customdatatype->getDescription()), 'visible' => $this->issue->isFieldVisible($key), 'changed' => $this->issue->{$changed_methodname}(), 'merged' => $this->issue->{$merged_methodname}(), 'change_tip' => $i18n->__($customdatatype->getInstructions()), 'change_header' => $i18n->__($customdatatype->getDescription()), 'clear' => $i18n->__('Clear this field'), 'select' => $i18n->__('%clear_this_field% or click to set a new value', array('%clear_this_field%' => ''))); if ($customdatatype->hasCustomOptions()) { $customfields_list[$key]['name'] = $this->issue->getCustomField($key) instanceof TBGCustomDatatypeOption ? $this->issue->getCustomField($key)->getName() : ''; $customfields_list[$key]['name_visible'] = (bool) ($this->issue->getCustomField($key) instanceof TBGCustomDatatypeOption); $customfields_list[$key]['noname_visible'] = (bool) (!$this->issue->getCustomField($key) instanceof TBGCustomDatatypeOption); $customfields_list[$key]['choices'] = $customdatatype->getOptions(); } else { $customfields_list[$key]['name'] = $this->issue->getCustomField($key); $customfields_list[$key]['name_visible'] = (bool) ($this->issue->getCustomField($key) != ''); $customfields_list[$key]['noname_visible'] = (bool) ($this->issue->getCustomField($key) == ''); } } $this->fields_list = $fields_list; $this->customfields_list = $customfields_list; if (isset($this->transition) && $this->transition->hasAction(TBGWorkflowTransitionAction::ACTION_ASSIGN_ISSUE)) { $available_assignees = array(); foreach (TBGContext::getUser()->getTeams() as $team) { foreach ($team->getMembers() as $user) { $available_assignees[$user->getID()] = $user->getNameWithUsername(); } } foreach (TBGContext::getUser()->getFriends() as $user) { $available_assignees[$user->getID()] = $user->getNameWithUsername(); } $this->available_assignees = $available_assignees; } }
public function componentFilter() { $pkey = TBGContext::isProjectContext() ? TBGContext::getCurrentProject()->getID() : null; $i18n = TBGContext::getI18n(); $this->selected_operator = isset($this->selected_operator) ? $this->selected_operator : '='; $this->key = isset($this->key) ? $this->key : null; $this->filter = isset($this->filter) ? $this->filter : null; if (in_array($this->filter, array('posted', 'last_updated'))) { $this->selected_value = $this->selected_value ? $this->selected_value : NOW; } else { $this->selected_value = isset($this->selected_value) ? $this->selected_value : 0; } $this->filter_info = isset($this->filter_info) ? $this->filter_info : null; $filters = array(); $filters['status'] = array('description' => $i18n->__('Status'), 'options' => TBGStatus::getAll()); $filters['category'] = array('description' => $i18n->__('Category'), 'options' => TBGCategory::getAll()); $filters['priority'] = array('description' => $i18n->__('Priority'), 'options' => TBGPriority::getAll()); $filters['severity'] = array('description' => $i18n->__('Severity'), 'options' => TBGSeverity::getAll()); $filters['reproducability'] = array('description' => $i18n->__('Reproducability'), 'options' => TBGReproducability::getAll()); $filters['resolution'] = array('description' => $i18n->__('Resolution'), 'options' => TBGResolution::getAll()); $filters['issuetype'] = array('description' => $i18n->__('Issue type'), 'options' => TBGIssuetype::getAll()); $filters['component'] = array('description' => $i18n->__('Component'), 'options' => array()); $filters['build'] = array('description' => $i18n->__('Build'), 'options' => array()); $filters['edition'] = array('description' => $i18n->__('Edition'), 'options' => array()); $filters['milestone'] = array('description' => $i18n->__('Milestone'), 'options' => array()); if (TBGContext::isProjectContext()) { $filters['subprojects'] = array('description' => $i18n->__('Include subproject(s)'), 'options' => array('all' => $this->getI18n()->__('All subprojects'), 'none' => $this->getI18n()->__("Don't include subprojects (default, unless specified otherwise)"))); $projects = TBGProject::getIncludingAllSubprojectsAsArray(TBGContext::getCurrentProject()); foreach ($projects as $project) { if ($project->getID() == TBGContext::getCurrentProject()->getID()) { continue; } $filters['subprojects']['options'][$project->getID()] = "{$project->getName()} ({$project->getKey()})"; } } else { $projects = array(); foreach (TBGProject::getAllRootProjects() as $project) { TBGProject::getSubprojectsArray($project, $projects); } } if (count($projects) > 0) { foreach ($projects as $project) { foreach ($project->getComponents() as $component) { $filters['component']['options'][] = $component; } foreach ($project->getBuilds() as $build) { $filters['build']['options'][] = $build; } foreach ($project->getEditions() as $edition) { $filters['edition']['options'][] = $edition; } foreach ($project->getMilestones() as $milestone) { $filters['milestone']['options'][] = $milestone; } } } $filters['posted_by'] = array('description' => $i18n->__('Posted by')); $filters['assignee_user'] = array('description' => $i18n->__('Assigned to user')); $filters['assignee_team'] = array('description' => $i18n->__('Assigned to team')); $filters['owner_user'] = array('description' => $i18n->__('Owned by user')); $filters['owner_team'] = array('description' => $i18n->__('Owned by team')); $filters['posted'] = array('description' => $i18n->__('Date reported')); $filters['last_updated'] = array('description' => $i18n->__('Date last updated')); $this->filters = $filters; }
protected function _setupReportIssueProperties() { $this->selected_project = null; $this->selected_issuetype = null; $this->selected_edition = null; $this->selected_build = null; $this->selected_component = null; $this->selected_category = null; $this->selected_status = null; $this->selected_resolution = null; $this->selected_priority = null; $this->selected_reproducability = null; $this->selected_severity = null; $this->selected_estimated_time = null; $this->selected_spent_time = null; $this->selected_percent_complete = null; $this->selected_pain_bug_type = null; $this->selected_pain_likelihood = null; $this->selected_pain_effect = null; $selected_customdatatype = array(); foreach (TBGCustomDatatype::getAll() as $customdatatype) { $selected_customdatatype[$customdatatype->getKey()] = null; } $this->selected_customdatatype = $selected_customdatatype; $this->issuetypes = array(); $this->issuetype_id = null; $this->issue = null; $this->categories = TBGCategory::getAll(); $this->severities = TBGSeverity::getAll(); $this->priorities = TBGPriority::getAll(); $this->reproducabilities = TBGReproducability::getAll(); $this->resolutions = TBGResolution::getAll(); $this->statuses = TBGStatus::getAll(); // $this->projects = TBGProject::getAll(); }