/** * Get title of the item/task cell by field type * * @param string Type of the field: 'priority', 'status', 'assigned' * @param object Item * @param integer Priority * @return string */ function td_task_cell($type, $Item) { global $current_User; switch ($type) { case 'priority': $value = $Item->priority; $title = item_priority_title($Item->priority); break; case 'status': $value = $Item->pst_ID; $title = $Item->get('t_extra_status'); if (empty($title)) { $title = T_('No status'); } break; case 'assigned': $value = $Item->assigned_user_ID; if (empty($value)) { $title = T_('No user'); } else { $UserCache =& get_UserCache(); $User =& $UserCache->get_by_ID($Item->assigned_user_ID); $title = $User->get_colored_login(array('mask' => '$avatar$ $login$')); } break; default: $value = 0; $title = ''; } if ($current_User->check_perm('item_post!CURSTATUS', 'edit', false, $Item)) { // Current user can edit this item return '<a href="#" rel="' . $value . '">' . $title . '</a>'; } else { // No perms to edit item, Display only a title return $title; } }
// Invalid field $Ajaxlog->add(sprintf('Invalid field: %s', $field), 'error'); break; } $post_ID = param('post_ID', 'integer', true); $ItemCache =& get_ItemCache(); $Item =& $ItemCache->get_by_ID($post_ID); // Check permission: $current_User->check_perm('item_post!CURSTATUS', 'edit', true, $Item); $new_attrs = ''; switch ($field) { case 'priority': // Update task priority $new_value = param('new_priority', 'integer', NULL); $new_attrs = ' color="' . item_priority_color($new_priority) . '"'; $new_title = item_priority_title($new_priority); $Item->set_from_Request('priority', 'new_priority', true); $Item->dbupdate(); break; case 'assigned': // Update task assigned user $new_assigned_ID = param('new_assigned_ID', 'integer', NULL); $new_assigned_login = param('new_assigned_login', 'string', NULL); if ($Item->assign_to($new_assigned_ID, $new_assigned_login)) { // An assigned user can be changed $Item->dbupdate(); } else { // Error on changing of an assigned user load_funcs('_core/_template.funcs.php'); headers_content_mightcache('text/html', 0, '#', false); // Do NOT cache error messages! (Users would not see they fixed them)