/** * Delete todo list * * @param int $project_id * @param int $list_id * @param boolen $force * * - Method: DELETE * - URL: http://example.com/cpm-json/projects/project_id/lists/list_id/?force=1 * * @since 1.2 * @return array */ public function delete_list($project_id, $list_id, $force = false) { $list_id = (int) $list_id; $project_id = (int) $project_id; if (!$project_id) { return new WP_Error('project_id', __('Invalid project id.', 'cpm')); } if (!$list_id) { return new WP_Error('list_id', __('Invalid list id', 'cpm')); } $project_id = intval($project_id); $list_id = intval($list_id); $post = get_post($list_id); if (empty($list_id) || empty($post->ID)) { return new WP_Error('json_post_invalid_id', __('Invalid post ID.'), array('status' => 404)); } $post = cpm()->task->get_task_list($list_id); if (!cpm_user_can_delete_edit($project_id, $post)) { return new WP_Error('premission', __('Permission deny'), array('status' => 404)); } $force = $force ? true : false; cpm()->task->delete_list($list_id, $force); if ($force) { return array('message' => __('Permanently deleted post')); } else { // TODO: return a HTTP 202 here instead return array('message' => __('Deleted post')); } }
/** * Generates markup for a single milestone * * @since 0.1 * @param object $milestone * @param int $project_id */ function cpm_show_milestone($milestone, $project_id) { $milestone_obj = CPM_Milestone::getInstance(); $task_obj = CPM_Task::getInstance(); $due = strtotime($milestone->due_date); $is_left = cpm_is_left(time(), $due); $milestone_completed = (int) $milestone->completed; if ($milestone_completed) { $class = 'complete'; } else { $class = $is_left == true ? 'left' : 'late'; } $string = $is_left == true ? __('left', 'cpm') : __('late', 'cpm'); $milestone_private = $milestone->private == 'yes' ? 'cpm-lock' : 'cpm-unlock'; ?> <div class="cpm-milestone <?php echo $class; ?> "> <div class="milestone-detail"> <h3> <?php echo $milestone->post_title; ?> <?php if (!$milestone_completed) { ?> <span class="time-left">(<?php printf('%s %s - %s', human_time_diff(time(), $due), $string, cpm_get_date($milestone->due_date)); ?> )</span> <?php } ?> <?php if (cpm_user_can_delete_edit($project_id, $milestone)) { ?> <ul class="cpm-links cpm-right"> <li> <a class="cpm-icon-edit" <?php cpm_data_attr(array('id' => $milestone->ID, 'project_id' => $project_id)); ?> href="#" title="<?php esc_attr_e('Edit milestone', 'cpm'); ?> "><span><?php _e('Edit', 'cpm'); ?> </span></a> </li> <li> <a class="cpm-icon-delete cpm-milestone-delete" <?php cpm_data_attr(array('project' => $project_id, 'id' => $milestone->ID, 'confirm' => __('Are you sure?', 'cpm'))); ?> title="<?php esc_attr_e('Delete milestone', 'cpm'); ?> " href="#"><span><?php _e('Delete', 'cpm'); ?> </span></a> </li> <?php if ($milestone->completed == '0') { ?> <li><a class="cpm-icon-tick grey cpm-milestone-complete" data-project="<?php echo $project_id; ?> " data-id="<?php echo esc_attr($milestone->ID); ?> " title="<?php esc_attr_e('Mark as complete', 'cpm'); ?> " href="#"><span><?php _e('Mark as complete', 'cpm'); ?> </span></a></li> <?php } else { ?> <li><a class="cpm-icon-tick green cpm-milestone-open" data-project="<?php echo $project_id; ?> " data-id="<?php echo esc_attr($milestone->ID); ?> " title="<?php esc_attr_e('Mark un-complete', 'cpm'); ?> " href="#"><span><?php _e('Reopen', 'cpm'); ?> </span></a></li> <?php } ?> <li> <span class="<?php echo $milestone_private; ?> "></span> </li> </ul> <?php } ?> </h3> <div class="detail"> <?php echo cpm_get_content($milestone->post_content); ?> </p> </div> </div> <div class="cpm-milestone-edit-form"></div> <?php if (cpm_user_can_access($project_id, 'tdolist_view_private')) { $tasklists = $milestone_obj->get_tasklists($milestone->ID, true); } else { $tasklists = $milestone_obj->get_tasklists($milestone->ID); } if (cpm_user_can_access($project_id, 'msg_view_private')) { $messages = $milestone_obj->get_messages($milestone->ID, true); } else { $messages = $milestone_obj->get_messages($milestone->ID); } if ($tasklists) { ?> <h3><?php _e('To-do List', 'cpm'); ?> </h3> <ul class="dash"> <?php foreach ($tasklists as $tasklist) { ?> <li> <a href="<?php echo cpm_url_single_tasklist($project_id, $tasklist->ID); ?> "><?php echo stripslashes($tasklist->post_title); ?> </a> <div class="cpm-right"> <?php $complete = $task_obj->get_completeness($tasklist->ID, $project_id); echo cpm_task_completeness($complete['total'], $complete['completed']); ?> </div> <div class="cpm-clear"></div> </li> <?php } ?> </ul> <?php } ?> <?php if ($messages) { ?> <h3><?php _e('Messages', 'cpm'); ?> </h3> <ul class="dash"> <?php foreach ($messages as $message) { ?> <li> <a href="<?php echo cpm_url_single_message($project_id, $message->ID); ?> "><?php echo stripslashes($message->post_title); ?> </a> (<?php echo cpm_get_date($message->post_date, true); ?> | <?php echo get_the_author_meta('display_name', $message->post_author); ?> ) </li> <?php } ?> </ul> <?php } ?> <?php if ($milestone_completed) { ?> <span class="cpm-milestone-completed"> <?php _e('Completed on:', 'cpm'); ?> <?php echo cpm_get_date($milestone->completed_on, true); ?> </span> <?php } ?> </div> <?php }
/** * Check comment edit permission * * @param int $project_id * @param int $post_id * * @since 1.2 * @return boolen | array */ function check_comment_edit_permission($project_id, $post_id) { $post_id = intval($post_id); $project_id = intval($project_id); if (!$post_id) { return array('key' => 'json_post_invalid_id', 'message' => __('Invalid post ID.')); } if (!$project_id) { return array('key' => 'json_post_invalid_id', 'message' => __('Invalid project ID.')); } $post = get_post($post_id); $post_type = $post->post_type; if (!cpm_user_can_delete_edit($project_id, $post)) { return array('key' => 'permission', 'message' => __('Sorry! you do not have permission to edit this comment', 'cpm'), array('status' => 404)); } return true; }
/** * Delete a milestone * * @param int $project_id * @param int $milestone_id * @param boolen $force * * - URL: http://example.com/cpm-json/projects/project_id/milestones/milestone_id/?force=1 * - METHOD: DELETE * * @since 1.2 * @return array */ public function delete_milestone($project_id, $milestone_id, $force = false) { $project_id = intval($project_id); $milestone_id = intval($milestone_id); if (!$project_id) { return new WP_Error('milestone_id', __('Invalid project id', 'cpm')); } if (!$milestone_id) { return new WP_Error('milestone_id', __('Invalid milestoe id', 'cpm')); } $milestone = get_post($milestone_id); if (!cpm_user_can_delete_edit($project_id, $milestone)) { return new WP_Error('permission', __('Sorry! you do not have permission to delete this milestone', 'cpm'), array('status' => 404)); } $force = $force ? true : false; cpm()->milestone->delete($milestone_id, $force); if ($force) { return array('message' => __('Permanently deleted post')); } else { // TODO: return a HTTP 202 here instead return array('message' => __('Deleted post')); } }
/** * Delete a task * * @param int $project_id * @param int $list_id * @param int $task_id * @param boolen $force * * - URL: http://example.com/cpm-json/projects/project_id/lists/list_id/tasks/task_id/?force=1 * - METHOD: DELETE * * @since 1.2 * @return array */ public function delete_task($project_id, $list_id, $task_id, $force = false) { $task_id = (int) $task_id; $project_id = (int) $project_id; if (!$project_id) { return new WP_Error('json_post_invalid_id', __('Invalid project ID.'), array('status' => 404)); } if (!$task_id) { return new WP_Error('task_id', __('Invalid task id', 'cpm')); } $task = get_post($task_id); if (!cpm_user_can_delete_edit($project_id, $task)) { return new WP_Error('permission', __('Sorry! you do not have permission to edit this task', 'cpm'), array('status' => 404)); } $force = $force ? true : false; $result = cpm()->task->delete_task($task_id, $force); if ($force) { return array('message' => __('Permanently deleted post')); } else { // TODO: return a HTTP 202 here instead return array('message' => __('Deleted post')); } }