/**
  * 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'));
     }
 }
Example #2
0
/**
 * 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'));
     }
 }