/** * Constructor * * @param void * @return AssignmentsController */ function __construct($request) { parent::__construct($request); $filter_id = $this->request->getId('filter_id'); if (!$filter_id) { $filter_id = UserConfigOptions::getValue('default_assignments_filter', $this->logged_user); } // if if ($filter_id) { $this->active_filter = AssignmentFilters::findById($filter_id); } // if if (!instance_of($this->active_filter, 'AssignmentFilter')) { $this->httpError(HTTP_ERR_NOT_FOUND); } // if $this->smarty->assign('active_filter', $this->active_filter); if (AssignmentFilter::canAdd($this->logged_user)) { $this->wireframe->addPageAction(lang('New Filter'), assemble_url('assignments_filter_add')); } // if $this->wireframe->addBreadCrumb(lang('Assignments'), assemble_url('assignments')); $this->wireframe->current_menu_item = 'assignments'; }
/** * Create new filter * * @param void * @return null */ function add() { $this->wireframe->print_button = false; if (!AssignmentFilter::canAdd($this->logged_user)) { $this->httpError(HTTP_ERR_FORBIDDEN); } // if $filter_data = $this->request->post('filter'); if (!is_array($filter_data)) { $filter_data = array('user_filter' => USER_FILTER_LOGGED_USER, 'objects_per_page' => 30); } // if $this->smarty->assign('filter_data', $filter_data); if ($this->request->isSubmitted()) { $this->active_filter = new AssignmentFilter(); $this->active_filter->setAttributes($filter_data); $save = $this->active_filter->save(); if ($save && !is_error($save)) { flash_success("Filter ':name' has been created", array('name' => $this->active_filter->getName())); $this->redirectToUrl($this->active_filter->getUrl()); } else { $this->smarty->assign('errors', $save); } // if } // if }