ID); $page_no = isset($_POST['page_no']) ? intval(sanitize_text_field($_POST['page_no'])) : '0'; $orderby_sql = esc_sql(sanitize_sql_orderby( "load_order ASC" )); $task_status = $wpdb->get_results( "SELECT * FROM {$wpdb->prefix}wppm_task_statuses ORDER BY $orderby_sql " ); $wppm_task_time = get_option('wppm_task_time'); $wppm_date_setting = get_option('wppm_date_setting'); $search_tag = isset($_POST['task_search']) ? sanitize_text_field($_POST['task_search']) : ''; $filter_by = isset($_POST['wppm_task_filter']) ? sanitize_text_field($_POST['wppm_task_filter']) : "all"; $proj_filter = isset($_POST['wppm_proj_filter']) ? sanitize_text_field($_POST['wppm_proj_filter']) : "0"; $public_projects = isset($_POST['public_projects']) ? sanitize_text_field($_POST['public_projects']):"0"; $wppm_current_user_capability = get_user_meta( $current_user->ID, 'wppm_capability', true ); $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'); 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 = ''; } $filters = array( 'search' => $search_tag, 'filter'=>$filter_by, 'proj_filter'=>$proj_filter ); $grid_view_filter = $filters ; $tl_filters = isset( $_COOKIE['wppm_grid_view_filters'] ) ? sanitize_text_field( wp_unslash( $_COOKIE['wppm_grid_view_filters'] ) ) : $grid_view_filter; $current_date = date('Y-m-d'); $proj_attr = isset($_POST['wppm_project_attr']) ? sanitize_text_field($_POST['wppm_project_attr']):""; if(!empty($proj_attr )){ $proj_attr = esc_sql($proj_attr); $wppm_proj_attr = ' AND (proj.project_name = "'.$proj_attr.'")'; }else{ $wppm_proj_attr = ''; } $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"); $santitize_order_by = esc_sql(sanitize_sql_orderby( "project_name ASC" )); if($current_user->has_cap('manage_options') || $wppm_current_user_capability == 'wppm_admin'){ if(!empty($proj_attr )){ $proj_attr = esc_sql($proj_attr); $where = " where project_name = '".$proj_attr."' Group by proj.id ORDER BY '$santitize_order_by'"; }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 '$santitize_order_by'"; }else{ $where = " Group by proj.id ORDER BY '$santitize_order_by'"; } } }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 '$santitize_order_by'"; } 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 '$santitize_order_by'"; } } $where = apply_filters('wppm_project_filter_in_task_list_grid_view_where',$where); $query.= $where; $projects = $wpdb->get_results($query); $wppm_tl_filter = "1=1"; if(!is_array($tl_filters)){ $tl_filters = json_decode($tl_filters); $tl_filters_arr = (array) $tl_filters; } else{ $tl_filters_arr = $filters; } $search_tag = isset($_POST['task_search']) ? sanitize_text_field($_POST['task_search']) : $tl_filters_arr['search']; $filter_by = isset($_POST['wppm_task_filter']) ? sanitize_text_field($_POST['wppm_task_filter']) : $tl_filters_arr['filter']; $proj_filter = isset($_POST['wppm_proj_filter']) ? sanitize_text_field($_POST['wppm_proj_filter']) : $tl_filters_arr['proj_filter']; $filters = array( 'search'=>$search_tag, 'filter'=>$filter_by, 'proj_filter' =>$proj_filter ); setcookie('wppm_grid_view_filters',wp_json_encode( $filters ),time() + 3600); 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)"; } if(!empty($wppm_hide_task_statuses_from_frontend) && is_array($wppm_hide_task_statuses_from_frontend) && (isset($_POST['is_frontend']) && sanitize_text_field($_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 = ".esc_sql($proj_filter).""; }else{ $wppm_task_by_proj_filter ="1=1"; } if(!empty($task_status)){ foreach($task_status as $status) { $status_id = esc_sql($status->id); if(!empty($search_tag)){ $search_tag_text = '%'.$wpdb->esc_like($search_tag).'%'; if($current_user->has_cap('manage_options') || $wppm_current_user_capability == 'wppm_admin'){ $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->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 "); $no_of_rows = ( "SELECT count(*) FROM ($query"); 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') AND Task.status='$status_id' "; }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') AND Task.status='$status_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_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 "); $no_of_rows = ( "SELECT count(*) FROM ($query"); 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')) AND Task.status= '$status_id'"; }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 (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')) AND Task.status= '$status_id'"; } } }else{ if($current_user->has_cap('manage_options') || $wppm_current_user_capability == 'wppm_admin'){ $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 "); $no_of_rows = ( "SELECT count(*) FROM ($query"); 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.status= '$status_id'"; }else{ $where = " where $wppm_tl_filter AND $wppm_task_by_proj_filter AND Task.status= '$status_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_project_meta proj_meta ON Task.project = proj_meta.project_id "); $no_of_rows = ( "SELECT count(*) FROM ($query"); 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.status= '$status_id'"; } 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 Task.status= '$status_id'"; } } } $query = apply_filters('wppm_query_for_grid_view',$query); $no_of_rows = apply_filters('wppm_number_of_rows_query_for_grid_view',$no_of_rows); $where.= $wppm_proj_attr; $where = apply_filters('wppm_task_list_where_for_grid_view',$where,$wppm_tl_filter,$search_tag); $no_of_rows .= $where; $no_of_rows .= " Group by Task.id) AS Task"; $no_of_rows = apply_filters('wppm_task_list_no_of_rows_for_grid_view',$no_of_rows); $totalrows = $wpdb->get_var($no_of_rows); $totalrows_tasks +=$totalrows; if($total_no_of_rows > $totalrows){ $totalrows = $total_no_of_rows; }else{ $total_no_of_rows = $totalrows; } $limit_start=$page_no*$task_per_page; $limit="\n LIMIT ".$limit_start.",".$task_per_page." "; $current_page=$page_no+1; $query = apply_filters('wppm_tasks_grid_view_query',$query,$search_tag); $where .= " Group by Task.id"; $query .= $where; $query = apply_filters('wppm_task_list_grid_view_query',$query); $query = $query.$limit; $wppm_task_fillter[] = $wpdb->get_results($query); } $total_pages=ceil($total_no_of_rows/$task_per_page); $prev_page_no=$current_page-1; $prev_class=(!$prev_page_no)?'disabled':''; $next_page_no=($total_pages==$current_page)? $current_page-1:$current_page; $next_class=($total_pages==$current_page)?'disabled':''; $flag = false; if(!empty($wppm_task_fillter)){ foreach($wppm_task_fillter as $key_filter=>$val_filter){ foreach($val_filter as $key=>$val){ $val_array = (array) $val; $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("SELECT role_id FROM {$wpdb->prefix}wppm_project_users WHERE proj_id = '$tproject_id' AND user_id = '$cu_id'"); $project_users = $wpdb->get_var("SELECT users FROM {$wpdb->prefix}wppm_project WHERE id = '$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; } } } } } } $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;"; ?>
has_cap('manage_options') || $wppmfunction->has_permission('add_new_task',0) || $wppm_current_user_capability=='wppm_manager'|| ($flag==true)){ $style = "display:inline;"; }else{ $style = "display:none;"; } $style = apply_filters('wppm_add_new_task_btn_style_grid_view',$style); ?> add list

list
name,'taskbuilder');?> add
$tasks){ foreach($tasks as $task){ $total_tasks++; if((!empty($task)) && $task->status==$status->id){ $task_per_status = true; if(isset($task->priority)){ $tpriority = esc_sql($task->priority); $task_priority = $wpdb->get_row( "SELECT * FROM {$wpdb->prefix}wppm_task_priorities where id = '$tpriority'" ); } if($wppm_task_time == 1){ $task_end_date = $task->end_date; $teDate = new DateTime($task->end_date); 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'; } }else{ $task_end_date = $teDate->format($wppm_date_setting); } }elseif($wppm_task_time == 0){ $teDate = new DateTime($task->end_date); $task_end_date = $teDate->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 = '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'; } }else{ 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'); } } } if(!empty($task->id)){ $tid = esc_sql( $task->id); $checklists = $wpdb->get_results( "SELECT * FROM {$wpdb->prefix}wppm_checklist where task_id = '$tid'" ); $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 = '$tid'"); $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 = '$tid' AND Items.checked=1"); $project_data = $wppmfunction->get_project($task->project); ?>
;color:color))? esc_attr($task_priority->color):"";?>">name))? esc_html($task_priority->name):"" ?>
checked vertical_dot
task_name,'taskbuilder');?> ()
status!=4 && $task->end_date < $current_date) ? "color:#FF0000":"color:#2C3E50"; ?>
users); $i=0; if(!empty($project_data['users'])){ $proj_users = explode(',',$project_data['users']); } if(!empty($task_users)){ foreach($task_users as $user){ if( (!empty($proj_users)) && (in_array($user,$proj_users))){ $i++; if( $i <= 4 ){ if(!empty($user)){ $userdata = get_userdata( $user ); ?> 4){ ?> +
    
">     style="cursor:pointer;"> style="cursor:pointer;">