/** * Display the artifact * * @param Tracker_IDisplayTrackerLayout $layout Displays the page header and footer * @param Codendi_Request $request The data coming from the user * @param User $current_user The current user * * @return void */ public function display(Tracker_IDisplayTrackerLayout $layout, $request, $current_user) { $hp = Codendi_HTMLPurifier::instance(); $tracker = $this->getTracker(); $title = $hp->purify($tracker->item_name, CODENDI_PURIFIER_CONVERT_HTML) . ' #' . $this->id; $breadcrumbs = array(array('title' => $title, 'url' => TRACKER_BASE_URL . '/?aid=' . $this->id)); $tracker->displayHeader($layout, $title, $breadcrumbs); $current_user->addRecentElement($this); $from_aid = $request->get('from_aid'); $html = ''; $redirect = new Tracker_Artifact_Redirect(); $redirect->base_url = TRACKER_BASE_URL; $redirect->query_parameters = array('aid' => $this->id, 'func' => 'artifact-update'); if ($from_aid != null) { $redirect->query_parameters['from_aid'] = $from_aid; } EventManager::instance()->processEvent(TRACKER_EVENT_BUILD_ARTIFACT_FORM_ACTION, array('request' => $request, 'redirect' => $redirect)); $html .= '<form action="' . $redirect->toUrl() . '" method="POST" enctype="multipart/form-data">'; $html .= '<input type="hidden" value="67108864" name="max_file_size" />'; $html .= $this->fetchTitleInHierarchy($current_user); $html .= $this->fetchFields($request->get('artifact')); $html .= $this->fetchFollowUps($current_user, $request->get('artifact_followup_comment')); // We don't need History since we have changesets //$html .= $this->_fetchHistory(); $html .= '</form>'; $trm = new Tracker_RulesManager($tracker); $html .= $trm->displayRulesAsJavascript(); echo $html; $tracker->displayFooter($layout); exit; }