Beispiel #1
0
 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);
 }