# taskbuilder/5.0.4/includes/admin/tasks/wppm_tasks_list.php

Taskbuilder – Project Management &amp; Task Management Tool With Kanban Board, version 5.0.4. 810 lines.

- Page: https://pluginprobe.com/plugins/taskbuilder/5.0.4/code/includes/admin/tasks/wppm_tasks_list.php
- Raw: https://pluginprobe.com/plugins/taskbuilder/5.0.4/raw/includes/admin/tasks/wppm_tasks_list.php
- Modified: 2026-02-24T17:57:02+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/taskbuilder/5.0.4/code/includes/admin/tasks/wppm_tasks_list.php#L10-L20`.

```php
<?php
if ( ! defined( 'ABSPATH' ) ) {
  exit; // Exit if accessed directly
}
global $current_user,$wpdb,$wppmfunction;
$task_per_page = 20;
$page_no = isset($_POST['page_no']) ? intval(sanitize_text_field(wp_unslash($_POST['page_no']))) : '0';
$search_tag = isset($_POST['task_search']) ? sanitize_text_field(wp_unslash($_POST['task_search'])) : '';
$order = isset($_POST['order']) ? sanitize_text_field(wp_unslash($_POST['order'])) :"ASC";
$sort_by = isset($_POST['sort_by']) ? sanitize_text_field(wp_unslash($_POST['sort_by'])):"task_name";
$filter_by = isset($_POST['wppm_task_filter']) ? sanitize_text_field(wp_unslash($_POST['wppm_task_filter'])) : "all";
$proj_filter = isset($_POST['wppm_proj_filter']) ? sanitize_text_field(wp_unslash($_POST['wppm_proj_filter'])) : "0";
$proj_attr = isset($_POST['wppm_project_attr']) ? sanitize_text_field(wp_unslash($_POST['wppm_project_attr'])):"";
$public_projects = isset($_POST['public_projects']) ? sanitize_text_field(wp_unslash($_POST['public_projects'])):"0";
$page = isset($_POST['page']) ? sanitize_text_field(wp_unslash($_POST['page'])):"";
$wppm_current_user_capability = get_user_meta( $current_user->ID, 'wppm_capability', true );
$wppm_create_tasks_coworkers_permission = get_option('wppm_allow_coworkers_create_task');
$orderby_proj_sql = esc_sql(sanitize_sql_orderby( "project_name" ));
$wppm_date_setting = get_option('wppm_date_setting');
$wppm_hide_completed_status_task = get_option('wppm_hide_completed_status_task');
$wppm_hide_task_statuses_from_frontend = get_option('wppm_hide_task_statuses_from_frontend');
$wppm_deafault_time_duration_task = get_option('wppm_display_time_duration_task');
if(!empty($wppm_hide_task_statuses_from_frontend)){
  $wppm_hide_task_statuses_from_frontend = explode(",",$wppm_hide_task_statuses_from_frontend);
} else {
  $wppm_hide_task_statuses_from_frontend = '';
}
$proj_attr = esc_sql($proj_attr);
$is_frontend = 0;
if(!empty($proj_attr )){
  $wppm_proj_attr = ' AND (proj.project_name = "'.$proj_attr.'")';
}else{
  $wppm_proj_attr = '';
}
$current_date = wp_date('Y-m-d');
$current_date = esc_sql($current_date );
$cu_id = esc_sql($current_user->ID);
$archived_where = "";
if ( isset($page) && $page === 'wppm-archived-tasks' ) {
  $archived_where = " AND is_archived = 1";
}
if( isset($page) && $page === 'wppm-tasks'){
  $archived_where = " AND is_archived = 0";
}
$wppm_task_time = get_option('wppm_task_time');
$query = ("SELECT proj.*
            FROM {$wpdb->prefix}wppm_project AS proj
            Left join {$wpdb->prefix}wppm_project_meta proj_meta ON proj.id = proj_meta.project_id");
if($current_user->has_cap('manage_options')  || $wppm_current_user_capability == 'wppm_admin'){
  if(!empty($proj_attr )){
    $where = " where project_name = '".$proj_attr."' Group by proj.id ORDER BY ".$orderby_proj_sql;
  }else{
    if(!empty($public_projects)){
      $where = " where proj.id = proj_meta.project_id AND proj_meta.meta_key='public_project' AND proj_meta.meta_value=1 Group by proj.id ORDER BY ".$orderby_proj_sql;
    }else{
      $where = " Group by proj.id ORDER BY ".$orderby_proj_sql;
    }
  }
}else{
  if(!empty($public_projects)){
    $where =  " where (proj.id = proj_meta.project_id AND proj_meta.meta_key='public_project' AND proj_meta.meta_value=1) $wppm_proj_attr Group by proj.id ORDER BY $orderby_proj_sql";
  }
  else{
    $where =  " where ((FIND_IN_SET('$current_user->ID',proj.users)) OR (proj.id = proj_meta.project_id AND proj_meta.meta_key='public_project' AND proj_meta.meta_value=1) OR ( proj.created_by='$cu_id')) $wppm_proj_attr Group by proj.id ORDER BY $orderby_proj_sql";
  }
}
$where = apply_filters('wppm_project_filter_in_task_list_where',$where);
$query.= $where;
$projects = $wpdb->get_results($query);
$appearance_settings = get_option("wppm-ap-task-list");
$filters = array(
  'sort_by' => $sort_by,
  'order' => $order,
  'search' => $search_tag,
  'filter'=>$filter_by,
  'proj_filter' =>$proj_filter
);
$tl_filters = isset( $_COOKIE['wppm_filters'] ) ? sanitize_text_field( wp_unslash( $_COOKIE['wppm_filters'] ) ) : $filters;
if(!is_array($tl_filters)){
    $tl_filters  = json_decode($tl_filters);
    $tl_filters_arr = (array) $tl_filters;
} else{
  $tl_filters_arr = $filters;
}
$wppm_tl_filter = "1=1";
$order = isset($_POST['order']) ? sanitize_text_field(wp_unslash($_POST['order'])) :$tl_filters_arr['order'];
$sort_by = isset($_POST['sort_by']) ? sanitize_text_field(wp_unslash($_POST['sort_by'])):$tl_filters_arr['sort_by'];
$search_tag = isset($_POST['task_search']) ? sanitize_text_field(wp_unslash($_POST['task_search'])) : $tl_filters_arr['search'];
$filter_by = isset($_POST['wppm_task_filter']) ? sanitize_text_field(wp_unslash($_POST['wppm_task_filter'])) : $tl_filters_arr['filter'];
$proj_filter = isset($_POST['wppm_proj_filter']) ? sanitize_text_field(wp_unslash($_POST['wppm_proj_filter'])) : $tl_filters_arr['proj_filter'];
$proj_filter = esc_sql($proj_filter);
if($sort_by == ""){
  $sort_by = 'task_name';
}
$filters = array(
  'sort_by' => $sort_by,
  'order' => $order,
  'search'=>$search_tag,
  'filter'=>$filter_by,
  'proj_filter'=>$proj_filter
);
setcookie('wppm_filters',wp_json_encode( $filters ),time() + 3600);

// Allowed sort columns
$allowed_sort_by = [
    'project'       => 'proj.project_name',
    'status'        => 'task_statuses.name',
    'priority'      => 'task_priorities.name',
    'start_date'    => 'Task.start_date',
    'end_date'      => 'Task.end_date',
    'TIMESTAMPDIFF(SECOND, Task.start_date, Task.end_date)' => 'TIMESTAMPDIFF(SECOND, Task.start_date, Task.end_date)',
];

// Resolve sort_by safely
$sort_key = isset($_POST['sort_by'])
    ? sanitize_text_field(wp_unslash($_POST['sort_by']))
    : ($tl_filters_arr['sort_by'] ?? 'task_name');

$sort_by = $allowed_sort_by[$sort_key] ?? 'task_name';

// Resolve order safely
$order = (isset($_POST['order']) && strtoupper(wp_unslash($_POST['order'])) === 'ASC')
    ? 'ASC'
    : 'DESC';

if($filter_by=='all'){
  if($wppm_hide_completed_status_task == 0){
     $wppm_tl_filter = "Task.status!='4'";
  }
}
if($filter_by=='4'){
  $wppm_tl_filter = "Task.status='4'";
}elseif($filter_by=='overdue'){
  $wppm_tl_filter = "Task.status!='4' AND (CAST(Task.end_date AS DATE)) < '$current_date'";
}elseif($filter_by == 'unassigned'){
  $wppm_tl_filter = "Task.users=''";
}elseif($filter_by == '1'){
  $wppm_tl_filter = "Task.status='1'";
}elseif($filter_by == '2'){
  $wppm_tl_filter = "Task.status='2'";
}elseif($filter_by == '3'){
  $wppm_tl_filter = "Task.status='3'";
}elseif($filter_by == 'mine'){
  $wppm_tl_filter = "(FIND_IN_SET('$current_user->ID',Task.users)>0)";
}elseif($filter_by == 'archived'){
  $wppm_tl_filter = "Task.is_archived = 1";
}

if(!empty($wppm_hide_task_statuses_from_frontend) && is_array($wppm_hide_task_statuses_from_frontend) && ((isset($_POST['is_frontend'])) && (sanitize_text_field(wp_unslash($_POST['is_frontend']))==1))){
  foreach($wppm_hide_task_statuses_from_frontend as $status){
    $wppm_tl_filter .= " AND Task.status != '$status'";
  }
}
if($proj_filter!=0){
  $wppm_task_by_proj_filter = "Task.project = '$proj_filter'";
}else{
  $wppm_task_by_proj_filter ="1=1";
}
$wppm_default_task_date = get_option('wppm_default_task_date');
$search_tag_text = '%'.$wpdb->esc_like($search_tag).'%';
if(!empty($search_tag)){
  $search_tag_text = '%'.$wpdb->esc_like($search_tag).'%';
  $query = ("SELECT Task.*
              FROM {$wpdb->prefix}wppm_task AS Task
              Left join {$wpdb->prefix}wppm_project proj ON Task.project = proj.id
              Left join {$wpdb->prefix}wppm_task_statuses task_statuses ON Task.status = task_statuses.id
              Left join {$wpdb->prefix}wppm_task_priorities task_priorities ON Task.priority = task_priorities.id
              Left join {$wpdb->prefix}wppm_project_users proj_users ON Task.project = proj_users.proj_id
              Left join {$wpdb->base_prefix}users user ON (FIND_IN_SET(user.id,Task.users)>0) AND user.display_name LIKE '$search_tag_text'
              Left join {$wpdb->prefix}wppm_project_meta proj_meta ON Task.project = proj_meta.project_id");          
} 
else{ 
  if($current_user->has_cap('manage_options') || $wppm_current_user_capability == 'wppm_admin'){
    if($sort_by=='task_name'|| $sort_by=='start_date' || $sort_by=='end_date'){
      $query = ( "SELECT Task.* FROM {$wpdb->prefix}wppm_task AS Task
      Left join {$wpdb->prefix}wppm_project proj ON Task.project = proj.id
      Left join {$wpdb->prefix}wppm_project_meta proj_meta ON Task.project = proj_meta.project_id
      ");
    } else{
      $query = ( "SELECT Task.* FROM {$wpdb->prefix}wppm_task AS Task
      Left join {$wpdb->prefix}wppm_project proj ON Task.project = proj.id
      Left join {$wpdb->prefix}wppm_task_statuses task_statuses ON Task.status = task_statuses.id
      Left join {$wpdb->prefix}wppm_task_priorities task_priorities ON Task.priority = task_priorities.id
      Left join {$wpdb->prefix}wppm_project_meta proj_meta ON Task.project = proj_meta.project_id
    ");
    }
  }else{
    $query = ( "SELECT Task.*
      FROM {$wpdb->prefix}wppm_task AS Task
      Left join {$wpdb->prefix}wppm_project proj ON Task.project = proj.id
      Left join {$wpdb->prefix}wppm_project_users proj_users ON Task.project = proj_users.proj_id
      Left join {$wpdb->prefix}wppm_task_statuses task_statuses ON Task.status = task_statuses.id
      Left join {$wpdb->prefix}wppm_task_priorities task_priorities ON Task.priority = task_priorities.id
      Left join {$wpdb->prefix}wppm_project_meta proj_meta ON Task.project = proj_meta.project_id
      ");
  }
}
$no_of_rows = ( "SELECT count(*) FROM ($query");
if(!empty($search_tag )){
  if($current_user->has_cap('manage_options') || $wppm_current_user_capability == 'wppm_admin'){
    if(!empty($public_projects)){
      $where = " where (proj_meta.meta_key='public_project' AND proj_meta.meta_value=1) AND $wppm_tl_filter AND $wppm_task_by_proj_filter AND (Task.task_name LIKE '$search_tag_text' OR proj.project_name LIKE '$search_tag_text' OR task_statuses.name LIKE '$search_tag_text' OR task_priorities.name LIKE '$search_tag_text' OR user.display_name LIKE '$search_tag_text') $wppm_proj_attr ";
    }else{
      $where = " where $wppm_tl_filter AND $wppm_task_by_proj_filter AND (Task.task_name LIKE '$search_tag_text' OR proj.project_name LIKE '$search_tag_text' OR task_statuses.name LIKE '$search_tag_text' OR task_priorities.name LIKE '$search_tag_text' OR user.display_name LIKE '$search_tag_text') $wppm_proj_attr ";
    }
  } else{
    if(!empty($public_projects)){
      $where = " where (proj_meta.meta_key='public_project' AND proj_meta.meta_value=1) AND $wppm_tl_filter AND $wppm_task_by_proj_filter AND (((FIND_IN_SET('$current_user->ID',Task.users)>0) OR (Task.created_by= '$cu_id') OR (proj_users.user_id = '$cu_id' AND proj_users.role_id = 1 AND (FIND_IN_SET('$current_user->ID',proj.users)>0)) OR (Task.project = proj_meta.project_id AND proj_meta.meta_key='public_project' AND proj_meta.meta_value=1) OR (proj.created_by='$cu_id' AND (FIND_IN_SET('$current_user->ID',proj.users)>0))) AND (Task.task_name LIKE '$search_tag_text' OR proj.project_name LIKE '$search_tag_text' OR task_statuses.name LIKE '$search_tag_text' OR task_priorities.name LIKE '$search_tag_text' OR user.display_name LIKE '$search_tag_text')) $wppm_proj_attr";
    }else{
      $where = " where $wppm_tl_filter AND $wppm_task_by_proj_filter AND (((FIND_IN_SET('$current_user->ID',Task.users)>0) OR (Task.created_by= '$cu_id') OR (proj_users.user_id = '$cu_id' AND proj_users.role_id = 1 AND (FIND_IN_SET('$current_user->ID',proj.users)>0)) OR (Task.project = proj_meta.project_id AND proj_meta.meta_key='public_project' AND proj_meta.meta_value=1) OR (proj.created_by='$cu_id' AND (FIND_IN_SET('$current_user->ID',proj.users)>0))) AND (Task.task_name LIKE '$search_tag_text' OR proj.project_name LIKE '$search_tag_text' OR task_statuses.name LIKE '$search_tag_text' OR task_priorities.name LIKE '$search_tag_text' OR user.display_name LIKE '$search_tag_text')) $wppm_proj_attr";
    }
  }
}else{
  if($current_user->has_cap('manage_options') || $wppm_current_user_capability == 'wppm_admin'){
    if(!empty($public_projects)){
      $where = " where (proj_meta.meta_key='public_project' AND proj_meta.meta_value=1) AND $wppm_tl_filter AND $wppm_task_by_proj_filter $wppm_proj_attr";
    }else{
      $where = " where $wppm_tl_filter AND $wppm_task_by_proj_filter $wppm_proj_attr";
    }
  } else{
    if(!empty($public_projects)){
      $where = " where  (proj_meta.meta_key='public_project' AND proj_meta.meta_value=1) AND $wppm_tl_filter AND $wppm_task_by_proj_filter $wppm_proj_attr";
    }else{
      $where = " where $wppm_tl_filter AND $wppm_task_by_proj_filter AND ((FIND_IN_SET('$current_user->ID',Task.users)>0) OR (Task.created_by= '$cu_id') OR (proj_users.user_id = '$cu_id' AND proj_users.role_id = 1 AND (FIND_IN_SET('$current_user->ID',proj.users)>0)) OR (Task.project = proj_meta.project_id AND proj_meta.meta_key='public_project' AND proj_meta.meta_value=1) OR (proj.created_by='$cu_id' AND (FIND_IN_SET('$current_user->ID',proj.users)>0))) $wppm_proj_attr";
    }
  }
}
$query = apply_filters('wppm_task_list_list_view_query',$query,$search_tag_text);
$no_of_rows= apply_filters('wppm_task_list_number_of_rows_query',$no_of_rows,$search_tag_text);
$where = apply_filters('wppm_task_list_query_where',$where, $wppm_tl_filter,$search_tag_text);
if($filter_by != 'archived'){
  $where .= $archived_where;
}
$no_of_rows_where = $where." Group by Task.id) AS Task";
$no_of_rows .= $no_of_rows_where;
$no_of_rows = apply_filters('wppm_task_list_no_of_rows',$no_of_rows,$wppm_tl_filter,$search_tag_text);
$totalrows = $wpdb->get_var($no_of_rows);
$query .= $where." Group by Task.id ORDER BY ".$sort_by." ".$order."";
$query = apply_filters('wppm_task_list_query',$query);
$limit_start=$page_no*$task_per_page;
$limit="\n LIMIT ".$limit_start.",".$task_per_page." ";
$task_id_array = array();
$query = $query.$limit;
$wppm_task_fillter = $wpdb->get_results($query);
$flag = false;
$project_creator = $wpdb->get_var($wpdb->prepare("SELECT created_by FROM {$wpdb->prefix}wppm_project WHERE created_by = %d",$cu_id));
if(!empty($wppm_task_fillter)){
  foreach($wppm_task_fillter as $key_filter=>$val_filter){
    $val_array = (array) $val_filter;
    $tusers =  $val_array['users'];
    $tusers_arr = explode(',',$tusers);
    $tproject_id = esc_sql($val_array['project']);
    if(!empty($tusers) && in_array($current_user->ID,$tusers_arr)){
      $project_user_role = $wpdb->get_var($wpdb->prepare("SELECT role_id FROM {$wpdb->prefix}wppm_project_users WHERE proj_id = %d AND user_id = %d",$tproject_id,$cu_id));
      $project_users = $wpdb->get_var($wpdb->prepare("SELECT users FROM {$wpdb->prefix}wppm_project WHERE id = %d",$tproject_id));
      $project_users_arr = explode(',',(string)$project_users);
      if(((!empty($project_user_role)) && ($project_user_role == 1) && in_array($current_user->ID,$project_users_arr))){
        $flag= true;
        break;
      }
    }
  }
}
if(($current_user->has_cap('manage_options') || $wppmfunction->has_permission('add_new_task',0) || ($flag==true) || ($project_creator!="")) && (isset($page) && $page != 'wppm-archived-tasks' )){
  $style = "display:inline;";
}else{
  $style = "display:none;";
}
$style = apply_filters('wppm_tl_add_new_task_btn_style',$style);
if($current_user->has_cap('manage_options') || $wppm_current_user_capability == ('wppm_admin') || ($flag==true) || ($wppmfunction->has_permission('change_task_status',0))!="" || ($project_creator!="")){
  $cs_style = "display:flex;";
}else{
  $cs_style = "display:none;";
}
if ( isset($page) && $page === 'wppm-archived-tasks' ) {
  $ar_filter_style = "display:none;";
} else {
  $ar_filter_style = "display:flex;";
}
$todo_status_name = $wpdb->get_var( "SELECT name FROM {$wpdb->prefix}wppm_task_statuses where id='".esc_sql(1)."'" );
$inp_status_name = $wpdb->get_var( "SELECT name FROM {$wpdb->prefix}wppm_task_statuses where id='".esc_sql(2)."'" );
$hold_status_name = $wpdb->get_var( "SELECT name FROM {$wpdb->prefix}wppm_task_statuses where id='".esc_sql(3)."'" );
$completed_status_name = $wpdb->get_var( "SELECT name FROM {$wpdb->prefix}wppm_task_statuses where id='".esc_sql(4)."'" );
$todo_status_style = (!empty($todo_status_name))? "display:inline" :"display:none;";
$inp_status_style = (!empty($inp_status_name))? "display:inline" :"display:none;";
$hold_status_style = (!empty($hold_status_name))? "display:inline" :"display:none;";
$completed_status_style = (!empty($completed_status_name))? "display:inline" :"display:none;";
if( isset($page) && $page === 'wppm-tasks'){
 $arch_filter_style = "display:inline;";
}else{
  $arch_filter_style = "display:none;";
}
?>
<form id="wppm_task_list_frm">
  <div id="wppm_task_list_container" class="wppm_bootstrap">
    <div class="row">
      <div class="col-sm-12" id="wppm_heading_inline">
        <span class="wppm-heading-inline"><?php echo (isset($page) && $page === 'wppm-archived-tasks' ) ? esc_html_e('Archived Tasks','taskbuilder'): esc_html_e('Tasks','taskbuilder');?> </span>
        <span class="wppm-add-new-btn btn-primary" id="wppm_add_new_task_btn_tl" style="background-color:<?php echo esc_attr($appearance_settings['list-header-button-background-color'])?>;color:<?php echo esc_attr($appearance_settings['list-header-button-text-color'])?>;<?php echo esc_attr($style)?>;" onclick="wppm_add_new_task()"><img class="wppm_add_new_task_img" src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/plus_icon.svg'); ?>" alt="add_icon"><?php echo esc_html_e('Add New','taskbuilder');?></span>
      </div>
    </div>
    <div style="display:flex;justify-content:space-between;margin-top:20px;flex-wrap: wrap;">
      <div style="display:flex;flex-wrap: wrap;min-width: 0; max-width: 100%; ">
        <div id="wppm_task_filter_container">
          <div class="wppm-bulk-actions"style="margin-left: -14px !important;">
            <button 
              id="wppm-task-bulk-actions-btn"
              class="wppm-button small secondary"
              type="button"
              style="display:none;margin: 14px -20px 0px 22px; padding:14px;font: 13px Helvetica Neue, Arial, Helvetica, sans-serif !important;"
              data-popover="wppm-task-bulk-actions">
              <?php esc_attr_e( 'Bulk Actions ', 'taskbuilder' ); ?><img src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/wppm_chevron_down_icon.svg'); ?>" alt="chevron_down">
            </button>
            <div id="wppm-task-bulk-actions" class="gpopover wppm-popover-menu wppm-proj-bulk-actions">
              <div class="wppm-popover-menu-item" style="<?php echo esc_attr($cs_style);?><?php echo esc_attr($ar_filter_style);?>" onclick="wppm_bulk_change_task_status('<?php echo esc_attr( wp_create_nonce( 'wppm_bulk_change_task_status' ) ); ?>');">
                <span><img style="margin-right:5px;" src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/gps-navigation.svg'); ?>" alt="task_status"><?php echo esc_html_e('Change Status','taskbuilder'); ?></span>
              </div>
              <div class="wppm-popover-menu-item" style="<?php echo esc_attr($ar_filter_style);?>" onclick="wppm_bulk_change_task_priority('<?php echo esc_attr( wp_create_nonce( 'wppm_bulk_change_task_priority' ) ); ?>');">
                <span><img style="margin-right:5px;" src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/priority_up_icon.svg'); ?>" alt="priority"><?php echo esc_html_e('Change Priority','taskbuilder'); ?></span>
              </div>
              <div class="wppm-popover-menu-item" onclick="wppm_bulk_delete_task('<?php echo esc_attr( wp_create_nonce( 'wppm_bulk_delete_task' ) ); ?>');">
                <span><img style="margin-right:5px;" src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/trash-alt-solid.svg'); ?>" alt="delete"><?php echo esc_html_e('Delete Tasks','taskbuilder'); ?></span>
              </div>
          </div>
          <div class="wppm-filter-item">
                <label for="wppm_task_filter" style="margin-left:20px;"> <?php echo esc_html_e('Filter','taskbuilder');?></label>
                <select id="wppm_task_filter" name="wppm_task_filter" onchange="wppm_apply_task_filter('<?php echo esc_attr($page); ?>')" style="margin-left:20px;">
                  <option value="all"<?php echo ($filter_by == "all")? 'selected':""?>><?php echo esc_html_e('All','taskbuilder');?></option>
                  <option value="1" style="<?php echo esc_attr($todo_status_style); ?>" <?php echo ($filter_by == "1")? 'selected':""?>><?php echo  esc_html($todo_status_name);?></option>
                  <option value="2" style="<?php echo esc_attr($inp_status_style); ?>" <?php echo ($filter_by == "2")? 'selected':""?>><?php echo  esc_html($inp_status_name);?></option>
                  <option value="3" style="<?php echo esc_attr($hold_status_style); ?>" <?php echo ($filter_by == "3")? 'selected':""?>><?php echo  esc_html($hold_status_name);?></option>
                  <option value="4" style="<?php echo esc_attr($completed_status_style); ?>" <?php echo ($filter_by == "4")? 'selected':""?>><?php echo  esc_html($completed_status_name);?></option>
                  <option value="mine" <?php echo ($filter_by == "mine")? 'selected':""?>><?php echo  esc_html_e('Mine','taskbuilder');?></option>
                  <option value="unassigned" <?php echo ($filter_by == "unassigned")? 'selected':""?>><?php echo  esc_html_e('Unassigned','taskbuilder');?></option>
                  <option value="overdue" <?php echo ($filter_by == "overdue")? 'selected':""?>><?php echo  esc_html_e('Overdue','taskbuilder');?></option>
                  <option value="archived" style="<?php echo esc_attr($arch_filter_style); ?>" <?php echo ($filter_by == "archived")? 'selected':""?>><?php echo  esc_html_e('Archived','taskbuilder');?></option>
                </select>
              </div>
            </div>
          </div>
          <div class="wppm-filter-item wppm_project_autocomplete_container" style="margin: 0 0 0 28px;">
                <label for="wppm_task_list_proj_filter">
                    <?php echo esc_html_e('Project','taskbuilder');?>
                </label><br>
                <select searchable="search here" onchange="wppm_tasks_by_select_project('<?php echo esc_attr($page); ?>')" class="form-control" size="40" name="wppm_task_list_proj_filter" id="wppm_task_list_proj_filter" data-width="100%" style="width: 100%!important;">
                    <option value="0" <?php echo ($proj_filter == 0)? 'selected':""?>><?php echo esc_html_e('All','taskbuilder');?></option>
                    <?php 
                      if(!empty($projects)){
                          foreach($projects as $proj) { 
                              ?>
                              <option value="<?php echo esc_attr($proj->id)?>" <?php echo ($proj_filter == $proj->id)? 'selected':""?>><?php echo esc_html($proj->project_name,'taskbuilder');?></option>
                      <?php } 
                      } ?>
                </select>
          </div>
          <div class="wppm_display_submit" style="margin: 0 0 -5px 10px;">
            <div class="wppm-filter-actions">
                <span class="wppm-link" onclick="wppm_tl_reset_filter('<?php echo esc_attr($page); ?>')"> <?php echo esc_html_e('Reset','taskbuilder');?></span>
            </div>
          </div>
        </div> 
        <div id="wppm_task_search" style="display:flex;justify-content:flex-end;">
          <img width="25px" height="15" class="wppm_task_search_filter_img" style="position: relative;top: 10px;left: 30px;" height="15px" src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/search.svg'); ?>" alt="search">
          <input type="search" id="wppm_task_search_filter" style="margin-right:10px;" name="wppm_task_search_filter" class="form-control form-control-sm" aria-controls="selection-datatable" placeholder="<?php echo esc_attr__('Search','taskbuilder');?>" value="<?php echo (!empty($search_tag)) ? esc_attr($search_tag) : "" ?>">
        </div>
      </div>
    </div>
    <div style="display:flex;justify-content:flex-end;margin-right: 10px;">
      <span id="wppm_grid_view_btn" onclick="wppm_view_task_search_filter(<?php echo esc_attr($page_no)?>,'<?php echo esc_attr($page)?>')"><img src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/grid_view.svg'); ?>" alt="grid_view"><span><?php echo esc_html_e('Grid view','taskbuilder');?></span></span>
    </div>
  </div>
  <script>
    jQuery('#wppm-more-actions-btn, #wppm-task-bulk-actions-btn').gpopover({width: 200});
  </script>
    <div id="wppm_task_table_container" class="wppm_task_table_container table-responsive" style="padding: 0 15px 15px 15px;">
      <table id="wppm_task_table" class="wppm_table table">
        <thead>
          <tr>
            <th style="background-color:<?php echo esc_attr($appearance_settings['list-header-background-color'])?>" onchange="wppm_task_bulk_select_change()">
              <div class="checkbox-container">
                <input id="wppm_task_bulk_select_option" class="wppm-bulk-selector" type="checkbox" onchange="wppm_task_bulk_select_change();"/>
                <label for="wppm_task_bulk_select_option"></label>
              </div>
            </th>
            <th class="wppm_table_header" style="background-color:<?php echo esc_attr($appearance_settings['list-header-background-color'])?>">
              <div id="wppm_task_name_container">
                <span id="wppm_task_name_th" style="color:<?php echo esc_attr($appearance_settings['list-header-text-color'])?>"><?php echo esc_html_e('Task name','taskbuilder'); ?></span>
                <img width="16" height="16" style = "<?php echo ($sort_by == 'task_name' && $order == 'DESC') ? 'display:inline': 'display:none;'?>" onclick="wppm_sort_up_task_list('task_name','ASC','<?php echo esc_attr($page); ?>')" class="wppm_chevron_img" id="wppm_chevron_sort_up_task_name_img" src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/sort_up_icon.svg'); ?>" alt="chevron_sort_up_icon">
                <img width="16" height="16" style = "<?php echo ($sort_by == 'task_name' && $order == 'ASC') ? 'display:inline': 'display:none;'?>" onclick="wppm_sort_up_task_list('task_name','DESC','<?php echo esc_attr($page); ?>')" class="wppm_chevron_img" id="wppm_chevron_sort_down_task_name_img" src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/sort_down_icon.svg'); ?>" alt="chevron_sort_down_icon">
              </div>
            </th>
            <th class="wppm_table_header" style="background-color:<?php echo esc_attr($appearance_settings['list-header-background-color'])?>">
              <span id="wppm_project_name_th" style="color:<?php echo esc_attr($appearance_settings['list-header-text-color'])?>"><?php echo esc_html_e('Project','taskbuilder'); ?></span>
              <img width="16" height="16" style = "<?php echo ($sort_by == 'proj.project_name' && $order == 'DESC') ? 'display:inline': 'display:none;'?>" onclick="wppm_sort_up_task_list('project','ASC','<?php echo esc_attr($page); ?>')" class="wppm_chevron_img" id="wppm_chevron_sort_up_project_list_img" src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/sort_up_icon.svg'); ?>" alt="chevron_sort_up_icon">
              <img width="16" height="16" style = "<?php echo ($sort_by == 'proj.project_name' && $order == 'ASC') ? 'display:inline': 'display:none;'?>" onclick="wppm_sort_up_task_list('project','DESC','<?php echo esc_attr($page); ?>')" class="wppm_chevron_img" id="wppm_chevron_sort_down_project_list_img" src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/sort_down_icon.svg'); ?>" alt="chevron_sort_down_icon">
            </th>
            <th class="wppm_table_header" style="background-color:<?php echo esc_attr($appearance_settings['list-header-background-color'])?>">
              <span id="wppm_status_th" style="color:<?php echo esc_attr($appearance_settings['list-header-text-color'])?>"><?php echo esc_html_e('Status','taskbuilder'); ?></span>
              <img width="16" height="16" style = "<?php echo ($sort_by == 'task_statuses.name' && $order == 'DESC') ? 'display:inline': 'display:none;'?>" onclick="wppm_sort_up_task_list('status','ASC','<?php echo esc_attr($page); ?>')" class="wppm_chevron_img" id="wppm_chevron_sort_up_status_img" src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/sort_up_icon.svg'); ?>" alt="chevron_sort_up_icon">
              <img width="16" height="16" style = "<?php echo ($sort_by == 'task_statuses.name' && $order == 'ASC') ? 'display:inline': 'display:none;'?>" onclick="wppm_sort_up_task_list('status','DESC','<?php echo esc_attr($page); ?>')" class="wppm_chevron_img" id="wppm_chevron_sort_down_status_img" src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/sort_down_icon.svg'); ?>" alt="chevron_sort_down_icon">
            </th>
            <th class="wppm_table_header" style="background-color:<?php echo esc_attr($appearance_settings['list-header-background-color'])?>">
              <span id="wppm_priority_th" style="color:<?php echo esc_attr($appearance_settings['list-header-text-color'])?>"><?php echo esc_html_e('Priority','taskbuilder'); ?></span>
              <img width="16" height="16" style = "<?php echo ($sort_by == ('task_priorities.name') && $order == 'DESC') ? 'display:inline': 'display:none;'?>" onclick="wppm_sort_up_task_list('priority','ASC','<?php echo esc_attr($page); ?>')" class="wppm_chevron_img" id="wppm_chevron_sort_up_priority_img" src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/sort_up_icon.svg'); ?>" alt="chevron_sort_up_icon">
              <img width="16" height="16" style = "<?php echo ($sort_by == ('task_priorities.name') && $order == 'ASC') ? 'display:inline': 'display:none;'?>" onclick="wppm_sort_up_task_list('priority','DESC','<?php echo esc_attr($page); ?>')" class="wppm_chevron_img" id="wppm_chevron_sort_down_priority_img" src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/sort_down_icon.svg'); ?>" alt="chevron_sort_down_icon">
            </th>
            <?php if($wppm_default_task_date == 1 && $wppm_deafault_time_duration_task==0) { ?>
                    <th class="wppm_table_header" style="background-color:<?php echo esc_attr($appearance_settings['list-header-background-color'])?>">
                      <span id="wppm_start_date_th" style="color:<?php echo esc_attr($appearance_settings['list-header-text-color'])?>"><?php echo esc_html_e('Start date','taskbuilder'); ?></span>
                      <img width="16" height="16" style = "<?php echo ($sort_by == 'Task.start_date' && $order == 'DESC') ? 'display:inline': 'display:none;'?>" onclick="wppm_sort_up_task_list('start_date','ASC','<?php echo esc_attr($page); ?>')" class="wppm_chevron_img" id="wppm_chevron_sort_up_start_date_img" src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/sort_up_icon.svg'); ?>" alt="chevron_sort_up_icon">
                      <img width="16" height="16" style = "<?php echo ($sort_by == 'Task.start_date' && $order == 'ASC') ? 'display:inline': 'display:none;'?>" onclick="wppm_sort_up_task_list('start_date','DESC','<?php echo esc_attr($page); ?>')" class="wppm_chevron_img" id="wppm_chevron_sort_down_start_date_img" src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/sort_down_icon.svg'); ?>" alt="chevron_sort_down_icon">
                    </th>
                    <th class="wppm_table_header" style="background-color:<?php echo esc_attr($appearance_settings['list-header-background-color'])?>">
                      <span id="wppm_end_date_th" style="color:<?php echo esc_attr($appearance_settings['list-header-text-color'])?>"><?php echo esc_html_e('End date','taskbuilder'); ?></span>
                      <img width="16" height="16" style = "<?php echo ($sort_by == 'Task.end_date' && $order == 'DESC') ? 'display:inline': 'display:none;'?>" onclick="wppm_sort_up_task_list('end_date','ASC','<?php echo esc_attr($page); ?>')" class="wppm_chevron_img" id="wppm_chevron_sort_up_end_date_img" src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/sort_up_icon.svg'); ?>" alt="chevron_sort_up_icon">
                      <img width="16" height="16" style = "<?php echo ($sort_by == 'Task.end_date' && $order == 'ASC') ? 'display:inline': 'display:none;'?>" onclick="wppm_sort_up_task_list('end_date','DESC','<?php echo esc_attr($page); ?>')" class="wppm_chevron_img" id="wppm_chevron_sort_down_end_date_img" src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/sort_down_icon.svg'); ?>" alt="chevron_sort_down_icon">
                    </th>
            <?php }
            if( $wppm_deafault_time_duration_task==1){ ?>
                  <th class="wppm_table_header" style="background-color:<?php echo esc_attr($appearance_settings['list-header-background-color'])?>">
                      <span id="wppm_task_duration_th" style="color:<?php echo esc_attr($appearance_settings['list-header-text-color'])?>"><?php echo esc_html_e('Duration','taskbuilder'); ?></span>
                      <img width="16" height="16" style = "<?php echo ($sort_by == 'TIMESTAMPDIFF(SECOND, Task.start_date, Task.end_date)' && $order == 'DESC') ? 'display:inline': 'display:none;'?>" onclick="wppm_sort_up_task_list('TIMESTAMPDIFF(SECOND, Task.start_date, Task.end_date)','ASC','<?php echo esc_attr($page); ?>')" class="wppm_chevron_img" id="wppm_chevron_sort_up_task_duration_img" src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/sort_up_icon.svg'); ?>" alt="chevron_sort_up_icon">
                      <img width="16" height="16" style = "<?php echo ($sort_by == 'TIMESTAMPDIFF(SECOND, Task.start_date, Task.end_date)' && $order == 'ASC') ? 'display:inline': 'display:none;'?>" onclick="wppm_sort_up_task_list('TIMESTAMPDIFF(SECOND, Task.start_date, Task.end_date)','DESC','<?php echo esc_attr($page); ?>')" class="wppm_chevron_img" id="wppm_chevron_sort_down_task_duration_img" src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/sort_down_icon.svg'); ?>" alt="chevron_sort_down_icon">
                    </th>
          <?php }?>
            <th class="wppm_table_header" style="background-color:<?php echo esc_attr($appearance_settings['list-header-background-color'])?>">
              <span style="color:<?php echo esc_attr($appearance_settings['list-header-text-color'])?>"><?php echo esc_html_e('Assign To','taskbuilder'); ?></span>
            </th>
            <th class="wppm_table_header" style="background-color:<?php echo esc_attr($appearance_settings['list-header-background-color'])?>">
              <span style="color:<?php echo esc_attr($appearance_settings['list-header-text-color'])?>"><?php echo esc_html_e('Progress','taskbuilder'); ?></span>
            </th>
            <?php do_action('wppm_table_header');?>
          </tr>
        </thead>
        <tbody>
          <?php 
          $task_index = 0;
          if(!empty($wppm_task_fillter)){
            foreach($wppm_task_fillter as $task) {
              $task_id = absint($task->id);
              $wppm_task_duration = $wppmfunction->wppm_get_duration($task->start_date,$task->end_date);
              $checklists = $wpdb->get_results( $wpdb->prepare("SELECT * FROM {$wpdb->prefix}wppm_checklist where task_id = %d",$task_id) );
                if(!empty($task)){
                  $taskdata = $wppmfunction->get_task($task->id);
                  $project_data = $wppmfunction->get_project($task->project);
                  $task_index++;
                  $total=$wpdb->get_var("SELECT COUNT(Items.id) AS check_id
                    FROM {$wpdb->prefix}wppm_checklist_items AS Items
                    Left join {$wpdb->prefix}wppm_checklist checklist ON Items.checklist_id = checklist.id
                    WHERE checklist.task_id = '$task_id'");
                  $total_checked_items=$wpdb->get_var("SELECT COUNT(Items.id) AS check_id
                    FROM {$wpdb->prefix}wppm_checklist_items AS Items
                    Left join {$wpdb->prefix}wppm_checklist checklist ON Items.checklist_id = checklist.id
                    WHERE checklist.task_id = '$task_id' AND Items.checked=1");
                  
                  if(isset($task->status)){
                    $tstatus = absint($task->status);
                    $status = $wpdb->get_row( $wpdb->prepare("SELECT * FROM {$wpdb->prefix}wppm_task_statuses where id = %d",$tstatus) );
                  }
                  if(!empty($task->priority)){
                    $tpriority = absint($task->priority);
                    $priority = $wpdb->get_row( $wpdb->prepare("SELECT * FROM {$wpdb->prefix}wppm_task_priorities where id = %d",$tpriority) );
                  }
                  if(isset($task->project)){
                    $tproj = absint($task->project);
                    $project = $wpdb->get_row( $wpdb->prepare("SELECT * FROM {$wpdb->prefix}wppm_project where id = %d",$tproj) );
                  }
                  if($wppm_task_time == 1){
                    $tsDate = new DateTime($task->start_date);
                    $teDate = new DateTime($task->end_date);
                    if($task->start_date=='0000-00-00 00:00:00'){
                      if($wppm_date_setting=='Y-m-d H:i:s'){
                        $task_start_date = '0000-00-00 00:00:00';
                      }elseif($wppm_date_setting=='d-m-Y H:i:s'){
                        $task_start_date = '00-00-0000 00:00:00';
                      }elseif($wppm_date_setting=='m-d-Y H:i:s'){
                        $task_start_date = '00-00-0000 00:00:00';
                      }else{
                        $task_start_date = '0000-00-00 00:00:00';
                      }
                    }if($task->end_date=='0000-00-00 00:00:00'){
                      if($wppm_date_setting=='Y-m-d H:i:s'){
                        $task_end_date = '0000-00-00 00:00:00';
                      }elseif($wppm_date_setting=='d-m-Y H:i:s'){
                        $task_end_date = '00-00-0000 00:00:00';
                      }elseif($wppm_date_setting=='m-d-Y H:i:s'){
                        $task_end_date = '00-00-0000 00:00:00';
                      }else{
                        $task_end_date = '0000-00-00 00:00:00';
                      }
                    }if($task->start_date!='0000-00-00 00:00:00'){
                      if(!empty($wppm_date_setting)){
                        $task_start_date = $tsDate->format($wppm_date_setting);
                      } else {
                        $task_start_date = isset($task->start_date)? $task->start_date:"";
                      }
                    }if($task->end_date!='0000-00-00 00:00:00'){
                      if(!empty($wppm_date_setting)){
                        $task_end_date = $teDate->format($wppm_date_setting);
                      }else{
                        $task_end_date = isset($task->end_date) ? $task->end_date: "" ;
                      }

                    }
                  } elseif($wppm_task_time == 0){
                      $tsDate = new DateTime($task->start_date);
                      $teDate = new DateTime($task->end_date);
                      $task_start_date = $tsDate->format('Y-m-d');
                      $task_end_date = $teDate->format('Y-m-d');
                      if($task->start_date=='0000-00-00 00:00:00'){
                        if($wppm_date_setting=='Y-m-d H:i:s'){
                          $task_start_date = '0000-00-00';
                        }elseif($wppm_date_setting=='d-m-Y H:i:s'){
                          $task_start_date = '00-00-0000';
                        }elseif($wppm_date_setting=='m-d-Y H:i:s'){
                          $task_start_date = '00-00-0000';
                        }else{
                          $task_start_date = '0000-00-00';
                        }
                      }
                      if($task->end_date=='0000-00-00 00:00:00'){
                        if($wppm_date_setting=='Y-m-d H:i:s'){
                          $task_end_date = '0000-00-00';
                        }elseif($wppm_date_setting=='d-m-Y H:i:s'){
                          $task_end_date = '00-00-0000';
                        }elseif($wppm_date_setting=='m-d-Y H:i:s'){
                          $task_end_date = '00-00-0000';
                        }else{
                          $task_end_date = '0000-00-00';
                        }
                      }
                      if($task->start_date!='0000-00-00 00:00:00'){
                        if($wppm_date_setting=='Y-m-d H:i:s'){
                          $task_start_date = $tsDate->format('Y-m-d');
                        }elseif($wppm_date_setting=='d-m-Y H:i:s'){
                          $task_start_date = $tsDate->format('d-m-Y');                       
                        }elseif($wppm_date_setting=='m-d-Y H:i:s'){
                          $task_start_date = $tsDate->format('m-d-Y');
                        }else{
                          $task_start_date = $tsDate->format('Y-m-d');
                        }
                      }
                      if($task->end_date!='0000-00-00 00:00:00'){
                        if($wppm_date_setting=='Y-m-d H:i:s'){
                          $task_end_date = $teDate->format('Y-m-d');
                        }elseif($wppm_date_setting=='d-m-Y H:i:s'){
                          $task_end_date = $teDate->format('d-m-Y');
                        }elseif($wppm_date_setting=='m-d-Y H:i:s'){
                          $task_end_date = $teDate->format('m-d-Y');
                        }else{
                          $task_end_date = $teDate->format('Y-m-d');
                        }
                      }
                  }
                  $url = $wppmfunction->get_task_url( $task->id, $is_frontend );
                  ?>
                  <tr onclick= "if(link)wppm_tl_handle_click(event, <?php echo esc_attr($task->id) ?>, '<?php echo esc_url( $url ); ?>')" >
                    <td class="bulk-selector" onmouseover="link=false;" onmouseout="link=true;">
                      <div class="wppm-pl-item-selector">
                        <div class="checkbox-container">
                          <input id="wppm_bulk_select_<?php echo esc_attr($task->id) ?>" class="wppm-task-bulk-select" type="checkbox" onchange="wppm_bulk_task_item_select_change();" value="<?php echo esc_attr( $task->id ); ?>"/>
                          <label for="wppm_bulk_select_<?php echo esc_attr($task->id) ?>"></label>
                        </div>
                      </div>
                    </td>
                    <td onmouseover="link=true;">
                      <?php echo esc_html($task->task_name) ?>
                    </td>
                    <td onmouseover="link=true;">
                      <?php if(!empty($project->project_name)){
                      echo esc_html($project->project_name);
                      }
                      ?>
                    </td>
                    <td onmouseover="link=true;">
                    <?php if(!empty($task->status)){ ?>
                              <span class="wppm_td_task_status" style="background-color:<?php echo (isset($status->bg_color))? esc_attr($status->bg_color):"";?>; color: <?php echo (isset($status->color))? esc_attr($status->color):""; ?>"><?php echo (isset($status->name))? esc_html($status->name):"" ?></span>
                    <?php } ?>
                    </td>
                    <td onmouseover="link=true;">
                      <?php if(!empty($task->priority)){ ?>
                              <span class ="wppm_td_task_priority" style="background-color:<?php echo (isset($priority->bg_color))? esc_attr($priority->bg_color):"" ;?>; color: <?php echo (isset($priority->color))? esc_attr($priority->color):""; ?>"><?php echo (isset($priority->name))? esc_html($priority->name):"" ?></span>
                      <?php } ?>
                    </td>
                    <?php if($wppm_default_task_date == 1 && $wppm_deafault_time_duration_task==0) { ?>
                            <td onmouseover="link=true;">
                            <?php if(!empty($task_start_date)){ ?>
                                      <?php echo esc_html($task_start_date);
                                  } ?>
                            </td>
                            <td onmouseover="link=true;">
                            <?php if(!empty($task_end_date) && ($task->status!=4 && $task_end_date < $current_date && $task_end_date != '0000-00-00 00:00:00' && $task_end_date != '00-00-0000 00:00:00' && $task_end_date != '00-00-0000' && $task_end_date != '0000-00-00')){ 
                                  $style =  "color:#FF0000";
                                  } else{
                                  $style = "color:#2C3E50";
                                  }?>
                                  <span style="<?php echo esc_attr($style); ?>"><?php echo esc_html($task_end_date);?></span>
                            </td>
                    <?php } ?>
                    <?php if($wppm_deafault_time_duration_task==1){ ?>
                            <?php
                            if(!empty($task_end_date) && ($task->status!=4 && $task_end_date < $current_date && $task_end_date != '0000-00-00 00:00:00' && $task_end_date != '00-00-0000 00:00:00' && $task_end_date != '00-00-0000' && $task_end_date != '0000-00-00')){ 
                              $style = "color:#FF2222";
                            } else {
                              $style = "color:#2C3E50";
                            } ?>
                            <td onmouseover="link=true;" class="wppm_table_td"><span style="<?php echo esc_attr($style); ?>"><?php echo isset($wppm_task_duration) ? esc_html($wppm_task_duration):"" ?></span></td>
                    <?php } ?>
                    </td>
                    <td onmouseover="link=true;" style="text-align:center;">
                      <?php 
                        $i=0;
                        if(!empty($project_data['users'])){
                          $proj_users = explode(',',$project_data['users']);
                        }
                        if(!empty($task->users)){
                          $users = explode(",",$task->users);
                          foreach($users as $user){ 
                            if( (!empty($proj_users)) && (in_array($user,$proj_users))){
                              $i++;
                              if( $i <= 4 ){
                                $userdata = get_userdata( $user ); 
                                if(!empty($userdata)){
                                  ?>
                                  <a href="#" title="<?php echo esc_attr($userdata->display_name); ?>">
                                    <?php echo get_avatar($userdata->ID, 25, "mysteryman")?>
                                  </a> <?php
                                }
                              }
                            }
                          }
                        } 
                        if($i > 4){
                          ?>
                          <a href="#" class="wppm_avatar">
                            <span id="wppm_avatar" style="background-color:black;" class="avatar">+<?php echo esc_html($i-4) ?></span>
                          </a>
                        <?php } ?>
                        <?php
                        if($i==0){
                          echo esc_html_e('None','taskbuilder');
                        } ?>
                    </td>
                    <td onmouseover="link=true;">
                      <?php
                      $completion = 0;
                      if ($total != 0 && $total != NULL) {
                        $completion = intval($total_checked_items/$total*100);
                      }
                      echo esc_html($completion).'%';
                      ?>
                    </td>
                    <?php do_action('wppm_table_column');?>
                  </tr>
        <?php   }
            } 
          }
          ?>
        </tbody>
      </table>
      <script>
      function wppm_tl_handle_click(event, id, url) {
        if ( ( event.ctrlKey || event.metaKey ) && url ) {
          window.open(url, '_blank');
        } else {
          wppm_open_task(id);
        }
      }
			</script>
      <?php
      $current_page=$page_no+1;
      $total_pages=ceil($totalrows/$task_per_page);
      $prev_page_no=$current_page-1;
      $prev_class=($prev_page_no==0)?'disabled':'';
      $next_page_no=($total_pages==$current_page)? $current_page-1:$current_page;
      $next_class=($total_pages==$current_page)?'disabled':'';
      ?>
      <div class="row" style="background-color:#ffffff;">
        <div class="col-sm-12">
          <div class="wppm_task_result" style="<?php echo esc_attr($total_pages==0)? '':'display: none;';?>"><?php esc_html_e('Your search request returned no results.','taskbuilder');?></div>
          <hr style="<?php echo esc_attr($total_pages==0)? '':'display: none;';?>">
        </div>
      <div>
    </div>
  </div>
  <div class="row wppm_task_pagination_container">
    <div class="col-sm-4">
      <?php echo esc_html_e('Total:','taskbuilder'); ?>&nbsp;<?php echo esc_attr($task_index) ?>&nbsp;<?php echo esc_html_e('of','taskbuilder') ?>&nbsp;<?php echo esc_html($totalrows) ?>&nbsp;<?php echo esc_html_e('Tasks','taskbuilder')?>
    </div>
    <div class="wppm_task_pagination col-sm-4" style="<?php echo esc_attr($total_pages==0)? "display:none;":"display:flex;"?>">
      <span class="wppm-pagination-txt">
          <span><?php echo esc_html($current_page)?>&nbsp;<?php echo esc_html_e('of','taskbuilder');?>&nbsp;<?php echo esc_html($total_pages); ?>&nbsp;<?php echo esc_html_e('Page','taskbuilder'); ?></span>
      </span>
      <span <?php echo esc_attr($prev_class) ?> 
        style="<?php echo (isset($prev_class) && esc_attr($prev_class)== 'disabled') ? 'display:none;':'display:block;'?>cursor:pointer;">
        <a class="wppm_pagination_prev" onclick="return wppm_load_prev_task_page(<?php echo esc_attr($prev_page_no) ?>,<?php echo esc_attr($page_no) ?>,'<?php echo esc_attr($sort_by)?>','<?php echo esc_attr($order) ?>');"><?php echo esc_html_e('PREV','taskbuilder');?></a>
      </span>
      <span <?php echo esc_attr($next_class) ?>
        style="<?php echo (isset($next_class) && esc_attr($next_class) == 'disabled')?'display:none;':'display:block;'?>cursor:pointer;">
        <a class="wppm_pagination_next" onclick="return wppm_load_next_task_page(<?php echo esc_attr($next_page_no) ?>,<?php echo esc_attr($page_no) ?>,'<?php echo esc_attr($sort_by)?>','<?php echo esc_attr($order) ?>');"><?php echo esc_html_e('NEXT','taskbuilder');?></a>
      </span>
    </div>
  </div>
</form>
<style>
	.select2-selection--single {
		height: 30px!important;
	}
  .select2-dropdown:hover {
    	color: #23527c!important;;
	}
	.select2-results__options{
		font:15px "Helvetica Neue",Arial,Helvetica,sans-serif !important;
		margin: 0!important;
		line-height: inherit!important;
	}
	.select2-selection__rendered{
		font:15px "Helvetica Neue",Arial,Helvetica,sans-serif !important;
		margin-top: 5px!important;
	}
	.select2-selection__rendered:hover{
		color: #2271b1 !important;
	}
	.select2-container--default .select2-results__option--highlighted.select2-results__option--selectable{
		background-color: #e85f08!important;
		color: white !important;
	}
  .select2-container {
    max-width: 150px !important;
    min-width: 150px !important;
  }
  #wppm_task_filter{
		min-height: 30px !important;
    max-height: 35px !important;
	}
  #wppm_task_table tr:nth-child(even) td{
    background-color:<?php echo esc_attr($appearance_settings['list-item-even-background-color'])?>;
    color:<?php echo esc_attr($appearance_settings['list-item-even-text-color'])?>;
  }
  #wppm_task_table tr:nth-child(odd) td{
    background-color:<?php echo esc_attr($appearance_settings['list-item-odd-background-color'])?>;
    color:<?php echo esc_attr($appearance_settings['list-item-odd-text-color'])?>;
  }
  #wppm_task_table tr:hover td{
    background-color:<?php echo esc_attr($appearance_settings['list-item-hover-background-color'])?>;
  }
  #wppm_task_table tr:hover td{
    color: <?php echo esc_attr($appearance_settings['list-item-hover-text-color'])?>;
  }
  #wppm_add_new_task_btn_tl:hover{
    background-color:<?php echo esc_attr($appearance_settings['list-header-button-hover-color'])?>!important; 
  }
</style>
<script type="text/javascript">
  var link = true;
  jQuery( document ).ready( function( jQuery ) {
    jQuery("input[name='wppm_task_search_filter']").keypress(function(e) {
          //Enter key
      if (e.which == 13) {
        wppm_task_search_filter('<?php echo esc_attr($page); ?>');
      }
    });
    jQuery("#wppm_task_name_th").hover(function(){
      jQuery('#wppm_chevron_sort_up_task_name_img').show();
      jQuery('#wppm_chevron_sort_down_task_name_img').hide();
    });
    jQuery("#wppm_project_name_th").hover(function(){
      jQuery('#wppm_chevron_sort_up_project_list_img').show();
      jQuery('#wppm_chevron_sort_down_project_list_img').hide();
    });
    jQuery("#wppm_status_th").hover(function(){
      jQuery('#wppm_chevron_sort_up_status_img').show();
      jQuery('#wppm_chevron_sort_down_status_img').hide();
    });
    jQuery("#wppm_priority_th").hover(function(){
      jQuery('#wppm_chevron_sort_up_priority_img').show();
      jQuery('#wppm_chevron_sort_down_priority_img').hide();
    });
    jQuery("#wppm_start_date_th").hover(function(){
      jQuery('#wppm_chevron_sort_up_start_date_img').show();
      jQuery('#wppm_chevron_sort_down_start_date_img').hide();
    });
    jQuery("#wppm_end_date_th").hover(function(){
      jQuery('#wppm_chevron_sort_up_end_date_img').show();
      jQuery('#wppm_chevron_sort_down_end_date_img').hide();
    });
     jQuery("#wppm_task_duration_th").hover(function(){
      jQuery('#wppm_chevron_sort_up_task_duration_img').show();
      jQuery('#wppm_chevron_sort_down_task_duration_img').hide();
    });
    
  })
  jQuery('#wppm_task_list_proj_filter').select2({ dropdownAutoWidth: true, width: 'auto' });
  jQuery('#wppm_task_list_proj_filter').val(<?php echo esc_attr($proj_filter) ?>);
    /**
 * Bulk item selector change
 */
  function wppm_bulk_task_item_select_change() {
    jQuery("#wppm-task-bulk-actions-btn").show();
    var items = jQuery(".wppm-task-bulk-select:checked");
    var checked = items.length === 0 ? false : true;
    if(checked){
      jQuery(".wppm-bulk-selector").prop("checked", checked);
    }else{
      jQuery("#wppm-task-bulk-actions-btn").hide();
      jQuery(".wppm-bulk-selector").prop("checked", false);
    }
  }
</script>

```
