/** * USER_PANEL_MANAGER constructor. * @param USER $user */ public function __construct($user) { $this->_user = $user; parent::__construct($user->app); $this->page_link = $user->replace_page_arguments($this->page_link); }
/** * Create the set of panels to use. * @access private */ protected function _add_panels() { parent::_add_panels(); $this->_add_entry_panels_for($this->_component->entry_query()); $this->add_panels_after('job'); $job_panel_class_name = $this->app->final_class_name('ENTRY_PANEL', '', 'job'); $job_type_info = $this->app->type_info_for('JOB', 'projects/obj/job.php'); $job_query = $this->_component->job_query(); $in_progress_job_query = clone $job_query; $in_progress_job_query->restrict("status = 3"); $panel = new $job_panel_class_name($this, $in_progress_job_query, $job_type_info); $panel->id = 'in_progress_jobs'; $panel->title = 'Jobs in progress'; $this->add_panel($panel); $scheduled_job_query = clone $job_query; restrict_to_open($scheduled_job_query); restrict_to_scheduled($scheduled_job_query); $panel = new $job_panel_class_name($this, $scheduled_job_query, $job_type_info); $panel->id = 'scheduled_jobs'; $panel->title = 'Scheduled jobs'; $this->add_panel($panel); $unscheduled_job_query = clone $job_query; restrict_to_open($unscheduled_job_query); restrict_to_unscheduled($unscheduled_job_query); $panel = new $job_panel_class_name($this, $unscheduled_job_query, $job_type_info); $panel->id = 'unscheduled_jobs'; $panel->title = 'Unscheduled jobs'; $this->add_panel($panel); $open_job_query = clone $job_query; restrict_to_open($open_job_query); $panel = new $job_panel_class_name($this, $open_job_query, $job_type_info); $panel->id = 'open_jobs'; $panel->title = 'Open jobs'; $this->add_panel($panel); $unassigned_job_query = clone $job_query; $unassigned_job_query->restrict("assignee_id = 0"); $panel = new $job_panel_class_name($this, $unassigned_job_query, $job_type_info); $panel->id = 'unassigned_jobs'; $panel->title = 'Unassigned jobs'; $this->add_panel($panel); $closed_job_query = clone $job_query; restrict_to_closed($closed_job_query); $panel = new $job_panel_class_name($this, $closed_job_query, $job_type_info); $panel->id = 'closed_jobs'; $panel->title = 'Closed Jobs'; $this->add_panel($panel); $this->_add_comment_panel_for($this->_component->comment_query()); $this->move_panel_to('in_progress_jobs', 0, Panel_selection); $this->move_panel_to('scheduled_jobs', 1, Panel_selection); $this->move_panel_to('open_jobs', 2, Panel_selection); $this->move_panel_to('unassigned_jobs', 3, Panel_selection); $this->move_panel_to('closed_jobs', 4, Panel_selection); $this->move_panel_to('job', 5, Panel_selection); $this->move_panel_to('change', 6, Panel_selection); }