$title, ), $request); } /** * Projects overview. * */ public $projects_precond = array('Pluf_Precondition::staffRequired'); public function projects($request, $match) { $title = __('Projects'); $pag = new Pluf_Paginator(new IDF_Project()); $pag->class = 'recent-issues'; $pag->summary = __('This table shows the projects in the forge.'); $pag->action = 'IDF_Views_Admin::projects'; $pag->edit_action = array('IDF_Views_Admin::projectUpdate', 'id'); $pag->sort_order = array('shortname', 'ASC'); $list_display = array( 'shortname' => __('Short Name'), 'name' => __('Name'), ); $pag->configure($list_display, array(), array('shortname')); $pag->items_per_page = 25; $pag->no_results_text = __('No projects were found.'); $pag->setFromRequest($request); return Pluf_Shortcuts_RenderToResponse('idf/gadmin/projects/index.html', array( 'page_title' => $title, 'projects' => $pag, ), $request); } /** * Edition of a project. * * One cannot switch from one source backend to another. */ public $projectUpdate_precond = array('Pluf_Precondition::staffRequired'); public function projectUpdate($request, $match) { $project = Pluf_Shortcuts_GetObjectOr404('IDF_Project', $match[1]); $title = sprintf(__('Update %s'), $project->name); $params = array( 'project' => $project, ); if ($request->method == 'POST') { $form = new IDF_Form_Admin_ProjectUpdate($request->POST, $params); if ($form->isValid()) { $form->save(); $request->user->setMessage(__('The project has been updated.')); $url = Pluf_HTTP_URL_urlForView('IDF_Views_Admin::projectUpdate', array($project->id)); return new Pluf_HTTP_Response_Redirect($url); } } else { $form = new IDF_Form_Admin_ProjectUpdate(null, $params); } return Pluf_Shortcuts_RenderToResponse('idf/gadmin/projects/update.html', array( 'page_title' => $title, 'project' => $project, 'form' => $form, ), $request); } /** * Creation of a project. * */ public $projectCreate_precond = array('Pluf_Precondition::staffRequired'); public function projectCreate($request, $match) { $title = __('Create Project'); $extra = array('user' => $request->user); if ($request->method == 'POST') { $form = new IDF_Form_Admin_ProjectCreate($request->POST, $extra); if ($form->isValid()) { $project = $form->save(); $request->user->setMessage(__('The project has been created.')); $url = Pluf_HTTP_URL_urlForView('IDF_Views_Admin::projects'); return new Pluf_HTTP_Response_Redirect($url); } } else { $form = new IDF_Form_Admin_ProjectCreate(null, $extra); } $base = Pluf::f('url_base').Pluf::f('idf_base').'/p/'; return Pluf_Shortcuts_RenderToResponse('idf/gadmin/projects/create.html', array( 'page_title' => $title, 'form' => $form, 'base_url' => $base, ), $request); } }