if ($move == 1) { $catarray = $toproject->listCategories(); } else { $catarray = $proj->listCategories(); } if (isset($_POST['product_category']) && (!is_numeric(Post::val('product_category')) || false === Flyspray::array_find('category_id', Post::val('product_category'), $catarray))) { $errors['invalidcategory'] = 1; } # FIXME what if we move to different project, but os_id is defined for the old project only (not global)? # FIXME what if we move to different project and operating_system selection is deactivated/not shown in edit task page? if ($move == 1) { $osarray = $toproject->listOs(); } else { $osarray = $proj->listOs(); } if (isset($_POST['operating_system']) && (!is_numeric(Post::val('operating_system')) || $_POST['operating_system'] !== '0' && false === Flyspray::array_find('os_id', Post::val('operating_system'), $osarray))) { $errors['invalidos'] = 1; } if ($due_date = Post::val('due_date', 0)) { $due_date = Flyspray::strtotime(Post::val('due_date')); } $estimated_effort = 0; if (($estimated_effort = effort::EditStringToSeconds(Post::val('estimated_effort'), $proj->prefs['hours_per_manday'], $proj->prefs['estimated_effort_format'])) === FALSE) { $errors['invalideffort'] = 1; } $time = time(); $result = $db->Query('SELECT * from {tasks} WHERE task_id = ?', array($task['task_id'])); $defaults = $db->fetchRow($result); if (!Post::has('due_date')) { $due_date = $defaults['due_date']; }
/** * Returns a list of all groups, sorted by project * @param integer $user_id restrict to groups the user is member of * @access public static * @return array * @version 1.0 */ function listallGroups($user_id = null) { global $db, $fs; $group_list = array(L('global') => null); $params = array(); $query = 'SELECT g.group_id, group_name, group_desc, g.project_id, project_title FROM {groups} g LEFT JOIN {projects} p ON p.project_id = g.project_id'; // Limit to groups a specific user is in if (!is_null($user_id)) { $query .= ' LEFT JOIN {users_in_groups} uig ON uig.group_id = g.group_id WHERE uig.user_id = ? '; $params[] = $user_id; } $sql = $db->getAll($query, null, $params); foreach ($sql as $row) { // make sure that the user only sees projects he is allowed to if ($row['project_id'] != '0' && Flyspray::array_find('project_id', $row['project_id'], $fs->projects) === false) { continue; } $group_list[$row['project_title']][] = $row; } $group_list[L('global')] = $group_list['']; unset($group_list['']); return $group_list; }