function delete_task() { check_ajax_referer('cpm_nonce'); $task_id = (int) $_POST['task_id']; $list_id = (int) $_POST['list_id']; $project_id = (int) $_POST['project_id']; $task_obj = CPM_Task::getInstance(); do_action('cpm_delete_task_prev', $task_id, $list_id, $project_id, $task_obj); $task_obj->delete_task($task_id, true); $complete = $task_obj->get_completeness($list_id, $project_id); do_action('cpm_delete_task_after', $task_id, $list_id, $project_id, $task_obj); echo json_encode(array('success' => true, 'list_url' => cpm_url_single_tasklist($project_id, $list_id), 'progress' => cpm_task_completeness($complete['total'], $complete['completed']))); exit; }
/** * 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 }
<div class="cpm-project-meta"> <?php echo cpm_project_summary($project->info); ?> </div> <footer class="cpm-project-people"> <?php foreach ($project->users as $user) { echo get_avatar($user['id'], 48, '', $user['name']); } ?> </footer> </a> <?php $progress = $project_obj->get_progress_by_tasks($project->ID); echo cpm_task_completeness($progress['total'], $progress['completed']); ?> </article> <?php } ?> </div> <?php cpm_pagination($total_projects, $limit, $pagenum); ?> <div id="cpm-project-dialog" title="<?php _e('Start a new project', 'cpm');
/** * List all projects * * @since 1.0 */ function list_projects() { $project_obj = CPM_Project::getInstance(); $projects = $project_obj->get_projects(); $status_class = isset($_GET['status']) ? $_GET['status'] : 'active'; if (function_exists('cpm_project_count')) { $count = cpm_project_count(); } ?> <div class="icon32" id="icon-themes"><br></div> <h2><?php _e('Project Manager', 'cpm'); ?> </h2> <?php if (function_exists('cpm_project_filters')) { cpm_project_filters(); } ?> <div class="cpm-projects"> <?php if (function_exists('cpm_project_filters')) { ?> <ul class="list-inline order-statuses-filter"> <li<?php echo $status_class == 'all' ? ' class="active"' : ''; ?> > <a href="<?php echo cpm_url_all(); ?> "><?php _e('All', 'cpm'); ?> </a> </li> <li<?php echo $status_class == 'active' ? ' class="active"' : ''; ?> > <a class="cpm-active" href="<?php echo cpm_url_active(); ?> "><?php printf(__('Active (%d)', 'cpm'), $count['active']); ?> </a> </li> <li<?php echo $status_class == 'archive' ? ' class="active"' : ''; ?> > <a class="cpm-archive-head" href="<?php echo cpm_url_archive(); ?> "><?php printf(__('Completed (%d)', 'cpm'), $count['archive']); ?> </a> </li> </ul> <?php } ?> <?php if (cpm_manage_capability('project_create_role')) { ?> <nav class="cpm-new-project"> <a href="#" id="cpm-create-project"><span><?php _e('New Project', 'cpm'); ?> </span></a> </nav> <?php } ?> <?php foreach ($projects as $project) { if (!$project_obj->has_permission($project)) { continue; } ?> <article class="cpm-project"> <?php if (cpm_is_project_archived($project->ID)) { ?> <div class="cpm-completed-wrap"><div class="ribbon-green"><?php _e('Completed', 'cpm'); ?> </div></div> <?php } ?> <a href="<?php echo cpm_url_project_details($project->ID); ?> "> <h5><?php echo get_the_title($project->ID); ?> </h5> <div class="cpm-project-detail"><?php echo cpm_excerpt($project->post_content, 55); ?> </div> <div class="cpm-project-meta"> <?php echo cpm_project_summary($project->info); ?> </div> <footer class="cpm-project-people"> <div class="cpm-scroll"> <?php if (count($project->users)) { foreach ($project->users as $id => $user_meta) { echo get_avatar($id, 48, '', $user_meta['name']); } } ?> </div> </footer> </a> <?php $progress = $project_obj->get_progress_by_tasks($project->ID); echo cpm_task_completeness($progress['total'], $progress['completed']); if (cpm_user_can_access($project->ID)) { cpm_project_actions($project->ID); } ?> </article> <?php } ?> </div> <div id="cpm-project-dialog" title="<?php _e('Start a new project', 'cpm'); ?> " style="display: none;"> <?php if ($project_obj->has_admin_rights()) { ?> <?php cpm_project_form(); ?> <?php } ?> </div> <div id="cpm-create-user-wrap"> <?php if ($project_obj->has_admin_rights()) { ?> <?php cpm_user_create_form(); ?> <?php } ?> </div> <script type="text/javascript"> jQuery(function($) { $( "#cpm-project-dialog, #cpm-create-user-wrap" ).dialog({ autoOpen: false, modal: true, dialogClass: 'cpm-ui-dialog', width: 485, height: 425, position:['middle', 100] }); }); jQuery(function($) { $( "#cpm-create-user-wrap" ).dialog({ autoOpen: false, modal: true, dialogClass: 'cpm-ui-dialog', width: 400, height: 353, position:['middle', 100] }); }); </script> <?php }