public function edit($activity = null) { $activity_id = phpgw::get_var('id'); $parent_activity_id = phpgw::get_var('parent_id', 'int'); $project_id = phpgw::get_var('project_id', 'int'); if ($activity == null) { if ($activity_id && is_numeric($activity_id)) { $activity = $this->so->get_single($activity_id); $project_id = $activity->get_project_id(); } else { $activity = new logistic_activity(); if ($project_id && is_numeric($project_id)) { $project = $this->so_project->get_single($project_id); $activity->set_project_id($project_id); } else { if ($parent_activity_id) { $activity->set_parent_id($parent_activity_id); $parent_activity = $this->so->get_single($parent_activity_id); $project_id = $parent_activity->get_project_id(); $activity->set_project_id($project_id); $activity->set_start_date($parent_activity->get_start_date()); $activity->set_end_date($parent_activity->get_end_date()); } } } } $accounts = $GLOBALS['phpgw']->acl->get_user_list_right(PHPGW_ACL_READ, 'run', 'logistic'); $activities = $this->so->get(0, 0, 'name', true, null, null, null, true); if ($activity_id) { $exclude = array($activity_id); $children = $this->so->get_children($activity_id, 0, true); foreach ($children as $child) { $exclude[] = $child['id']; } $k = count($activities); for ($i = 0; $i < $k; $i++) { if (in_array($activities[$i]->get_id(), $exclude)) { unset($activities[$i]); } } } $data = array('responsible_users' => $accounts, 'activities' => $project_id ? $activities : array(), 'activity' => $activity, 'editable' => true, 'breadcrumb' => $this->_get_breadcrumb($activity_id, 'logistic.uiactivity.edit', 'id')); if ($project) { $data['project'] = $project; } // if($activity->get_parent_id() || $activity_id) // if( $activity_id ) if ($project_id) { $parent_activity = $this->so->get_single($activity->get_parent_id()); $data['parent_activity'] = $parent_activity; } else { $projects = $this->so_project->get(); $data['projects'] = $projects; } $this->use_yui_editor('description'); $GLOBALS['phpgw_info']['flags']['app_header'] = lang('logistic') . '::' . lang('Add activity'); $GLOBALS['phpgw']->jqcal->add_listener('start_date', 'datetime'); $GLOBALS['phpgw']->jqcal->add_listener('end_date', 'datetime'); self::add_javascript('logistic', 'logistic', 'activity.js'); self::add_javascript('phpgwapi', 'yui3', 'yui/yui-min.js'); self::add_javascript('phpgwapi', 'yui3-gallery', 'gallery-formvalidator/gallery-formvalidator-min.js'); $GLOBALS['phpgw']->css->add_external_file('phpgwapi/js/yui3-gallery/gallery-formvalidator/validatorCss.css'); //_debug_array($data);die(); self::render_template_xsl('activity/add_activity_item', $data); }
protected function populate(int $activity_id, &$activity) { if ($activity == null) { $activity = new logistic_activity((int) $activity_id); $activity->set_name($this->unmarshal($this->db->f('name'), 'string')); $activity->set_description($this->unmarshal($this->db->f('description'), 'string')); $activity->set_parent_id($this->unmarshal($this->db->f('parent_activity_id'), 'int')); $activity->set_project_id($this->unmarshal($this->db->f('project_id'), 'int')); $activity->set_start_date($this->unmarshal($this->db->f('start_date'), 'int')); $activity->set_end_date($this->unmarshal($this->db->f('end_date'), 'int')); $activity->set_responsible_user_id($this->unmarshal($this->db->f('responsible_user_id'), 'int')); $activity->set_create_date($this->unmarshal($this->db->f('create_date'), 'int')); $activity->set_create_user($this->unmarshal($this->db->f('create_user'), 'int')); $activity->set_update_date($this->unmarshal($this->db->f('update_date'), 'int')); $activity->set_update_user($this->unmarshal($this->db->f('update_user'), 'int')); } return $activity; }