protected function _render_commentField() { global $PH; echo "<div class=footer_form>"; require_once confGet('DIR_STREBER') . "render/render_form.inc.php"; $project = new Project($this->item_with_comments->project); $form = new PageForm(); $form->button_cancel = false; $form->add(new Form_CustomHTML('<h3>' . __("Add Comment") . "</h3>")); ### Comment ### $comment_name = ''; $comment = new Comment(array('id' => 0, 'name' => $comment_name)); $e = $comment->fields['description']->getFormElement($comment, __('Comment')); $e->rows = 8; $form->add($e); $form->add($comment->fields['name']->getFormElement($comment, __('Summary'))); ### request feedback $form->add(buildRequestFeedbackInput($project)); /** * to reduce spam, enforce captcha test for guests */ global $auth; if ($auth->cur_user->id == confGet('ANONYMOUS_USER')) { $form->addCaptcha(); } ### some required hidden fields for correct data passing ### $form->add(new Form_HiddenField('comment_task', '', $this->item_with_comments->id)); $form->add(new Form_HiddenField('comment', '', 0)); if ($return = get('return')) { $form->add(new Form_HiddenField('return', '', asHtml($return))); } $PH->go_submit = 'commentEditSubmit'; echo $form; echo "</div>"; }
public function render_quickedit($task) { global $PH; $editable = false; ### make sure it's editable ### if (Task::getEditableById($task->id)) { $editable = true; } else { if (!Task::getVisibleById($task->id)) { return false; } } ### get parent project #### if (!($project = Project::getVisibleById($task->project))) { return; } $this->render_blockStart(); require_once confGet('DIR_STREBER') . 'render/render_form.inc.php'; global $REPRODUCIBILITY_VALUES; global $g_prio_names; global $g_status_names; $form = new PageForm(); $form->button_cancel = false; $form->add($tab_group = new Page_TabGroup()); $tab_group->add($tab = new Page_Tab("comment", __("Add comment"))); ### Comment ### $comment_name = ''; $comment = new Comment(array('id' => 0, 'name' => $comment_name)); $tab->add($comment->fields['name']->getFormElement($comment, __('Comment'))); $e = $comment->fields['description']->getFormElement($comment); $e->rows = 8; $tab->add($e); ### request feedback $tab->add(buildRequestFeedbackInput($project)); ### update ### if ($editable && $task->isOfCategory(array(TCATEGORY_TASK, TCATEGORY_BUG))) { $tab_group->add($tab = new Page_Tab("update", __("Update"))); #$tab->add(new Form_Dropdown('task_for_milestone', __('For Milestone'), $project->buildPlannedForMilestoneList(), $task->for_milestone)); $tab->add(new Form_DropdownGrouped('task_for_milestone', __('For Milestone'), $project->buildPlannedForMilestoneList(), $task->for_milestone)); $tab->add(new Form_DropdownGrouped('task_resolved_version', __('Resolved in'), $project->buildResolvedInList(), $task->resolved_version)); global $g_resolve_reason_names; $tab->add(new Form_Dropdown('task_resolve_reason', __('Resolve reason'), array_flip($g_resolve_reason_names), $task->resolve_reason)); ### for existing tasks, get already assigned if ($task->id) { $assigned_people = $task->getAssignedPeople(); } else { trigger_error("view a task with zero id?"); } $team = array(__('- select person -') => 0); ### create team-list ### foreach ($project->getPeople() as $p) { $team[$p->name] = $p->id; } ### create drop-down-lists ### $count_new = 0; $count_all = 0; if (isset($assigned_people)) { foreach ($assigned_people as $ap) { if (!($p = Person::getVisibleById($ap->id))) { continue; # skip if invalid person } if ($task->id) { $tab->add(new Form_Dropdown('task_assigned_to_' . $ap->id, __("Assigned to"), $team, $ap->id)); } else { $tab->add(new Form_Dropdown('task_assign_to_' . $count_new, __("Assign to"), $team, $ap->id)); $count_new++; } $count_all++; unset($team[$ap->name]); } } ### add empty drop-downlist for new assignments ### $str_label = $count_all == 0 ? __("Assign to", "Form label") : __("Also assign to", "Form label"); $tab->add(new Form_Dropdown("task_assign_to_{$count_new}", $str_label, $team, 0)); if (!$task->isMilestoneOrVersion()) { $tab->add(new Form_Dropdown('task_prio', __("Prio", "Form label"), array_flip($g_prio_names), $task->prio)); } $ar = array(__('undefined') => 0, __('30 min') => 30 * 60, __('1 h') => 60 * 60, __('2 h') => 2 * 60 * 60, __('4 h') => 4 * 60 * 60, __('1 Day') => 1 * confGet('WORKHOURS_PER_DAY') * 60 * 60, __('2 Days') => 2 * confGet('WORKHOURS_PER_DAY') * 60 * 60, __('3 Days') => 3 * confGet('WORKHOURS_PER_DAY') * 60 * 60, __('4 Days') => 4 * confGet('WORKHOURS_PER_DAY') * 60 * 60, __('1 Week') => 1 * confGet('WORKDAYS_PER_WEEK') * confGet('WORKHOURS_PER_DAY') * 60 * 60, __('2 Weeks') => 2 * confGet('WORKDAYS_PER_WEEK') * confGet('WORKHOURS_PER_DAY') * 60 * 60, __('3 Weeks') => 3 * confGet('WORKDAYS_PER_WEEK') * confGet('WORKHOURS_PER_DAY') * 60 * 60); $tab->add(new Form_Dropdown('task_estimated', __("Estimated time"), $ar, $task->estimated)); $tab->add(new Form_Dropdown('task_estimated_max', __("Estimated worst case"), $ar, $task->estimated_max)); $ar = array(__('undefined') => -1, '0%' => 0, '10%' => 10, '20%' => 20, '30%' => 30, '40%' => 40, '50%' => 50, '60%' => 60, '70%' => 70, '80%' => 80, '90%' => 90, '95%' => 95, '98%' => 98, '99%' => 99, '100%' => 100); $tab->add(new Form_Dropdown('task_completion', __("Completed"), $ar, $task->completion)); $tab->add($task->fields['parent_task']->getFormElement($task)); $st = array(); foreach ($g_status_names as $s => $n) { if ($s >= STATUS_NEW) { $st[$s] = $n; } } if ($task->isMilestoneOrVersion()) { unset($st[STATUS_NEW]); } $tab->add(new Form_Dropdown('task_status', "Status", array_flip($st), $task->status)); } /** * to reduce spam, enforce captcha test for guests */ global $auth; if ($auth->cur_user->id == confGet('ANONYMOUS_USER')) { $form->addCaptcha(); } ### some required hidden fields for correct data passing ### $form->add(new Form_HiddenField('tsk', '', $task->id)); $form->add(new Form_HiddenField('comment', '', $comment->id)); if ($return = get('return')) { $form->add(new Form_HiddenField('return', '', asHtml($return))); } echo $form; $PH->go_submit = 'taskEditSubmit'; $this->render_blockEnd(); }