public function create($request, $match, $api = false) { $prj = $request->project; $title = __('Submit a new issue'); $params = array('project' => $prj, 'user' => $request->user); $preview = isset($request->POST['preview']) ? $request->POST['content'] : false; if ($request->method == 'POST') { $form = new IDF_Form_IssueCreate(array_merge($request->POST, $request->FILES), $params); if (!isset($request->POST['preview']) and $form->isValid()) { $issue = $form->save(); $url = Pluf_HTTP_URL_urlForView('IDF_Views_Issue::view', array($prj->shortname, $issue->id)); $issue->notify($request->conf); if ($api) { return $issue; } $request->user->setMessage(sprintf(__('<a href="%s">Issue %d</a> has been created.'), $url, $issue->id)); return new Pluf_HTTP_Response_Redirect($url); } } else { $form = new IDF_Form_IssueCreate(null, $params); } $params = array_merge(array('project' => $prj, 'form' => $form, 'page_title' => $title, 'preview' => $preview), self::autoCompleteArrays($prj)); if ($api == true) { return $params; } return Pluf_Shortcuts_RenderToResponse('idf/issues/create.html', $params, $request); }