Plugin Directory

Changeset 3035644


Ignore:
Timestamp:
02/14/2024 12:33:10 PM (2 years ago)
Author:
taskbuilder
Message:

version change to 2.0.8

Location:
taskbuilder
Files:
22 edited
1 copied

Legend:

Unmodified
Added
Removed
  • taskbuilder/tags/2.0.8/includes/admin/addons.php

    r3019975 r3035644  
    2222                        <div class="pheader">
    2323                            <h3 class="title"><img src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/calendar.svg'); ?>"><?php echo esc_html_e('Calendar','taskbuilder');?></h3>
    24                             <h4 class="subtitle">$14.99</h4>
     24                            <h4 class="subtitle">$19.99</h4>
    2525                            <div style="text-align:center">
    2626                                <small class="payment_freq"><?php echo esc_html_e('Per year','taskbuilder');?></small>
  • taskbuilder/tags/2.0.8/includes/admin/projects/open_project/wppm_view_project_tasks.php

    r3019975 r3035644  
    55global $wpdb,$current_user, $wppmfunction;
    66$task_per_page = 20;
     7$total_no_of_rows = 0;
     8$totalrows_tasks = 0;
    79$page_no = isset($_POST['page_no']) ? intval(sanitize_text_field($_POST['page_no'])) : '0';
    810$task_status = $wpdb->get_results( "SELECT * FROM {$wpdb->prefix}wppm_task_statuses ORDER BY load_order ASC" );
     11$wppm_task_time = get_option('wppm_task_time');
    912$search_tag = isset($_POST['task_search']) ? sanitize_text_field($_POST['task_search']) : '';
    1013$filter_by = isset($_POST['wppm_task_filter']) ? sanitize_text_field($_POST['wppm_task_filter']) : "all";
     
    4649    $wppm_tl_filter = "(FIND_IN_SET('$current_user->ID',Task.users)>0)";
    4750}
    48 if(!empty($search_tag)){
    49     $search_tag_text = '%'.$search_tag.'%';
    50     if($current_user->has_cap('manage_options')){
    51         $query = ("SELECT Task.*
     51if(!empty($task_status)){
     52    foreach($task_status as $status) {
     53        if(!empty($search_tag)){
     54            $search_tag_text = '%'.$search_tag.'%';
     55            if($current_user->has_cap('manage_options')){
     56                $query = ("SELECT Task.*
     57                            FROM {$wpdb->prefix}wppm_task AS Task
     58                            Left join {$wpdb->prefix}wppm_project proj ON Task.project = proj.id
     59                            Left join {$wpdb->prefix}wppm_task_statuses task_statuses ON Task.status = task_statuses.id
     60                            Left join {$wpdb->prefix}wppm_task_priorities task_priorities ON Task.priority = task_priorities.id
     61                            Left join {$wpdb->base_prefix}users user ON (FIND_IN_SET(user.id,Task.users)>0) AND user.display_name LIKE '$search_tag_text'
     62                            Left join {$wpdb->prefix}wppm_project_meta proj_meta ON Task.project = proj_meta.project_id
     63                        ");
     64                $no_of_rows = ( "SELECT count(*) FROM ($query");
     65                $where = " where $wppm_tl_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";
     66            } else{
     67                $query = ("SELECT Task.*
    5268                    FROM {$wpdb->prefix}wppm_task AS Task
    5369                    Left join {$wpdb->prefix}wppm_project proj ON Task.project = proj.id
    5470                    Left join {$wpdb->prefix}wppm_task_statuses task_statuses ON Task.status = task_statuses.id
    5571                    Left join {$wpdb->prefix}wppm_task_priorities task_priorities ON Task.priority = task_priorities.id
     72                    Left join {$wpdb->prefix}wppm_project_users proj_users ON Task.project = proj_users.proj_id
    5673                    Left join {$wpdb->base_prefix}users user ON (FIND_IN_SET(user.id,Task.users)>0) AND user.display_name LIKE '$search_tag_text'
    5774                    Left join {$wpdb->prefix}wppm_project_meta proj_meta ON Task.project = proj_meta.project_id
     75                    ");
     76                $no_of_rows = ( "SELECT count(*) FROM ($query");
     77                $where = " where $wppm_tl_filter AND (((FIND_IN_SET('$current_user->ID',Task.users)>0) OR (Task.created_by= '$current_user->ID') OR (proj_users.user_id = '$current_user->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)) 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";
     78            }
     79        }else{
     80            if($current_user->has_cap('manage_options')){
     81                $query = ( "SELECT Task.* FROM {$wpdb->prefix}wppm_task AS Task
     82                            Left join {$wpdb->prefix}wppm_project_meta proj_meta ON Task.project = proj_meta.project_id
    5883                ");
    59         $no_of_rows = ( "SELECT count(*) FROM ($query");
    60         $where = " where $wppm_tl_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')";
    61     } else{
    62         $query = ("SELECT Task.*
    63               FROM {$wpdb->prefix}wppm_task AS Task
    64               Left join {$wpdb->prefix}wppm_project proj ON Task.project = proj.id
    65               Left join {$wpdb->prefix}wppm_task_statuses task_statuses ON Task.status = task_statuses.id
    66               Left join {$wpdb->prefix}wppm_task_priorities task_priorities ON Task.priority = task_priorities.id
    67               Left join {$wpdb->prefix}wppm_project_users proj_users ON Task.project = proj_users.proj_id
    68               Left join {$wpdb->base_prefix}users user ON (FIND_IN_SET(user.id,Task.users)>0) AND user.display_name LIKE '$search_tag_text'
    69               Left join {$wpdb->prefix}wppm_project_meta proj_meta ON Task.project = proj_meta.project_id
    70               ");
    71         $no_of_rows = ( "SELECT count(*) FROM ($query");
    72         $where = " where $wppm_tl_filter AND (((FIND_IN_SET('$current_user->ID',Task.users)>0) OR (Task.created_by= '$current_user->ID') OR (proj_users.user_id = '$current_user->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)) 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'))";
     84                $no_of_rows = ( "SELECT count(*) FROM ($query");
     85                $where = " where $wppm_tl_filter AND Task.status= $status->id";
     86            }else{
     87                $query = ( "SELECT Task.*
     88                    FROM {$wpdb->prefix}wppm_task AS Task
     89                    Left join {$wpdb->prefix}wppm_project proj ON Task.project = proj.id
     90                    Left join {$wpdb->prefix}wppm_project_users proj_users ON Task.project = proj_users.proj_id
     91                    Left join {$wpdb->prefix}wppm_project_meta proj_meta ON Task.project = proj_meta.project_id
     92                    ");
     93                $no_of_rows = ( "SELECT count(*) FROM ($query");
     94                $where = " where $wppm_tl_filter AND ((FIND_IN_SET('$current_user->ID',Task.users)>0) OR (Task.created_by= '$current_user->ID') OR (proj_users.user_id = '$current_user->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)) AND Task.status= $status->id";
     95            }
     96        }
     97        $no_of_rows = apply_filters('wppm_number_of_rows_query_for_grid_view',$no_of_rows);
     98        $where = apply_filters('wppm_task_list_where_for_grid_view',$where,$wppm_tl_filter,$search_tag);
     99        $no_of_rows .= $where;
     100        $no_of_rows .= " Group by Task.id) AS Task";
     101        $no_of_rows = apply_filters('wppm_task_list_no_of_rows_for_grid_view',$no_of_rows);
     102        $totalrows = $wpdb->get_var($no_of_rows);
     103        $totalrows_tasks +=$totalrows;
     104        if($total_no_of_rows > $totalrows){
     105            $totalrows = $total_no_of_rows;
     106        }else{
     107            $total_no_of_rows = $totalrows;
     108        }
     109        $limit_start=$page_no*$task_per_page;
     110        $limit="\n LIMIT ".$limit_start.",".$task_per_page." ";
     111        $current_page=$page_no+1;
     112        $query = apply_filters('wppm_tasks_grid_view_query',$query,$search_tag);
     113        $where .= " Group by Task.id";
     114        $query .= $where;
     115        $query = apply_filters('wppm_task_list_grid_view_query',$query);
     116        $query = $query.$limit;
     117        $wppm_task_fillter[] = $wpdb->get_results($query);
    73118    }
    74 }else{
    75     if($current_user->has_cap('manage_options')){
    76         $query = ( "SELECT Task.* FROM {$wpdb->prefix}wppm_task AS Task
    77                     Left join {$wpdb->prefix}wppm_project_meta proj_meta ON Task.project = proj_meta.project_id
    78         ");
    79         $no_of_rows = ( "SELECT count(*) FROM ($query");
    80         $where = " where $wppm_tl_filter";
    81     }else{
    82         $query = ( "SELECT Task.*
    83             FROM {$wpdb->prefix}wppm_task AS Task
    84             Left join {$wpdb->prefix}wppm_project proj ON Task.project = proj.id
    85             Left join {$wpdb->prefix}wppm_project_users proj_users ON Task.project = proj_users.proj_id
    86             Left join {$wpdb->prefix}wppm_project_meta proj_meta ON Task.project = proj_meta.project_id
    87             ");
    88         $no_of_rows = ( "SELECT count(*) FROM ($query");
    89         $where = " where $wppm_tl_filter AND ((FIND_IN_SET('$current_user->ID',Task.users)>0) OR (Task.created_by= '$current_user->ID') OR (proj_users.user_id = '$current_user->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))";
    90     }
    91 }
    92 $no_of_rows = apply_filters('wppm_number_of_rows_query_for_grid_view',$no_of_rows);
    93 $where = apply_filters('wppm_task_list_where_for_grid_view',$where,$wppm_tl_filter,$search_tag);
    94 $no_of_rows .= $where;
    95 $no_of_rows .= " Group by Task.id) AS Task";
    96 $no_of_rows = apply_filters('wppm_task_list_no_of_rows_for_grid_view',$no_of_rows);
    97 $totalrows = $wpdb->get_var($no_of_rows);
    98 $limit_start=$page_no*$task_per_page;
    99 $limit="\n LIMIT ".$limit_start.",".$task_per_page." ";
    100 $current_page=$page_no+1;
    101 $query = apply_filters('wppm_tasks_grid_view_query',$query,$search_tag);
    102 $where .= " Group by Task.id";
    103 $query .= $where;
    104 $query = apply_filters('wppm_task_list_grid_view_query',$query);
    105 $query = $query.$limit;
    106 $wppm_task_fillter = $wpdb->get_results($query);
    107 $total_pages=ceil($totalrows/$task_per_page);
    108 $prev_page_no=$current_page-1;
    109 $prev_class=(!$prev_page_no)?'disabled':'';
    110 $next_page_no=($total_pages==$current_page)? $current_page-1:$current_page;
    111 $next_class=($total_pages==$current_page)?'disabled':'';
     119    $total_pages=ceil($total_no_of_rows/$task_per_page);
     120    $prev_page_no=$current_page-1;
     121    $prev_class=(!$prev_page_no)?'disabled':'';
     122    $next_page_no=($total_pages==$current_page)? $current_page-1:$current_page;
     123    $next_class=($total_pages==$current_page)?'disabled':'';
     124}
    112125?>
    113126<form name="wppm_view_project_task" id="wppm_view_project_task">
     
    167180                    $total_tasks = 0;
    168181                    if(!empty($wppm_task_fillter)){
    169                         foreach($wppm_task_fillter as $task){
    170                             $total_tasks++;
    171                             if((!empty($task)) && $task->status==$status->id){
    172                                 $task_per_status = true;
    173                                 if(isset($task->priority)){
    174                                     $task_priority = $wpdb->get_row( "SELECT * FROM {$wpdb->prefix}wppm_task_priorities where id = $task->priority" );
    175                                 }
    176                                 if(!empty($task->id)){
    177                                     $checklists = $wpdb->get_results( "SELECT * FROM {$wpdb->prefix}wppm_checklist where task_id = $task->id" );
    178                                     $total=$wpdb->get_var("SELECT COUNT(Items.id) AS check_id
    179                                         FROM {$wpdb->prefix}wppm_checklist_items AS Items
    180                                         Left join {$wpdb->prefix}wppm_checklist checklist ON Items.checklist_id = checklist.id
    181                                         WHERE checklist.task_id = $task->id");
    182                                     $total_checked_items=$wpdb->get_var("SELECT COUNT(Items.id) AS check_id
    183                                         FROM {$wpdb->prefix}wppm_checklist_items AS Items
    184                                         Left join {$wpdb->prefix}wppm_checklist checklist ON Items.checklist_id = checklist.id
    185                                         WHERE checklist.task_id = $task->id AND Items.checked=1");
    186                                     ?>
    187                                     <div class="wppm_card_body" onclick="wppm_open_task(<?php echo esc_attr($task->id)?>)" id="wppm_draggable_card_<?php echo esc_attr($task->id)?>">
    188                                         <div class="row">
    189                                             <div class="col-sm-6">
    190                                                 <span class="wppm_td_task_priority" style="background-color:<?php echo (!empty($task_priority->bg_color))? esc_attr($task_priority->bg_color):"";?>;color:<?php echo (!empty($task_priority->color))? esc_attr($task_priority->color):"";?>"><?php echo (!empty($task_priority->name))? esc_html($task_priority->name):"" ?></span>
     182                        foreach($wppm_task_fillter as $key=>$tasks){
     183                            foreach($tasks as $task){
     184                                $total_tasks++;
     185                                if((!empty($task)) && $task->status==$status->id){
     186                                    $task_per_status = true;
     187                                    if(isset($task->priority)){
     188                                        $task_priority = $wpdb->get_row( "SELECT * FROM {$wpdb->prefix}wppm_task_priorities where id = $task->priority" );
     189                                    }
     190                                    if($wppm_task_time == 1){
     191                                        $task_end_date = $task->end_date;
     192                                    }elseif($wppm_task_time == 0){
     193                                        $teDate = new DateTime($task->end_date);
     194                                        $task_end_date = $teDate->format('Y-m-d');
     195                                    }
     196                                    if(!empty($task->id)){
     197                                        $checklists = $wpdb->get_results( "SELECT * FROM {$wpdb->prefix}wppm_checklist where task_id = $task->id" );
     198                                        $total=$wpdb->get_var("SELECT COUNT(Items.id) AS check_id
     199                                            FROM {$wpdb->prefix}wppm_checklist_items AS Items
     200                                            Left join {$wpdb->prefix}wppm_checklist checklist ON Items.checklist_id = checklist.id
     201                                            WHERE checklist.task_id = $task->id");
     202                                        $total_checked_items=$wpdb->get_var("SELECT COUNT(Items.id) AS check_id
     203                                            FROM {$wpdb->prefix}wppm_checklist_items AS Items
     204                                            Left join {$wpdb->prefix}wppm_checklist checklist ON Items.checklist_id = checklist.id
     205                                            WHERE checklist.task_id = $task->id AND Items.checked=1");
     206                                        ?>
     207                                        <div class="wppm_card_body" onclick="wppm_open_task(<?php echo esc_attr($task->id)?>)" id="wppm_draggable_card_<?php echo esc_attr($task->id)?>">
     208                                            <div class="row">
     209                                                <div class="col-sm-6">
     210                                                    <span class="wppm_td_task_priority" style="background-color:<?php echo (!empty($task_priority->bg_color))? esc_attr($task_priority->bg_color):"";?>;color:<?php echo (!empty($task_priority->color))? esc_attr($task_priority->color):"";?>"><?php echo (!empty($task_priority->name))? esc_html($task_priority->name):"" ?></span>
     211                                                </div>
     212                                                <div class="wppm_card_task_action col-sm-6">
     213                                                    <span class="wppm_checklist_total_checked_item"><?php echo esc_html($total_checked_items.'/'.$total)?></span><span class="wppm_total_checked_item"><img src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/checked.svg'); ?>" alt="checked"></span>
     214                                                    <span class="wppm_show_dropdown_menu" onclick="wppm_show_dropdown_menu(<?php echo esc_attr($task->id);?>)" data-popover="wppm-dropdown-menu-<?php echo esc_attr($task->id);?>" id="wppm_task_action_<?php echo esc_attr($task->id);?>"><img src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/vertical_dot.svg'); ?>" alt="vertical_dot"></span>
     215                                                    <div class="gpopover" id="wppm-dropdown-menu-<?php echo esc_attr($task->id);?>">
     216                                                        <a class="dropdown-item" href="#"><?php echo esc_html_e('Edit','taskbuilder');?></a>
     217                                                        <a class="dropdown-item" href="#"><?php echo esc_html_e('Delete','taskbuilder');?></a>
     218                                                    </div>
     219                                                </div>
    191220                                            </div>
    192                                             <div class="wppm_card_task_action col-sm-6">
    193                                                 <span class="wppm_checklist_total_checked_item"><?php echo esc_html($total_checked_items.'/'.$total)?></span><span class="wppm_total_checked_item"><img src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/checked.svg'); ?>" alt="checked"></span>
    194                                                 <span class="wppm_show_dropdown_menu" onclick="wppm_show_dropdown_menu(<?php echo esc_attr($task->id);?>)" data-popover="wppm-dropdown-menu-<?php echo esc_attr($task->id);?>" id="wppm_task_action_<?php echo esc_attr($task->id);?>"><img src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/vertical_dot.svg'); ?>" alt="vertical_dot"></span>
    195                                                 <div class="gpopover" id="wppm-dropdown-menu-<?php echo esc_attr($task->id);?>">
    196                                                     <a class="dropdown-item" href="#"><?php echo esc_html_e('Edit','taskbuilder');?></a>
    197                                                     <a class="dropdown-item" href="#"><?php echo esc_html_e('Delete','taskbuilder');?></a>
     221                                            <div class="row">
     222                                                <div class="col-sm-12">
     223                                                    <span class="wppm_task_name_grid_view"><?php echo esc_html_e($task->task_name,'taskbuilder');?></span>
     224                                                </div>
     225                                            </div>
     226                                            <div class="row">
     227                                                <div class="col-sm-6 wppm_task_due_date_grid_view">
     228                                                <?php $style = ($task->status!=4 && $task->end_date < $current_date) ? "color:#FF0000":"color:#2C3E50"; ?>
     229                                                    <small style="<?php echo esc_attr($style); ?>"><?php echo (isset($task_end_date))? esc_html_e($task_end_date,'taskbuilder') :"" ?></small>
     230                                                </div>
     231                                                <div class="col-sm-6" class="wppm_card_task_users" style="text-align:right;">
     232                                                    <?php
     233                                                    $task_users = explode(',',$task->users);
     234                                                    $i=0;
     235                                                    $project_data = $wppmfunction->get_project($task->project);
     236                                                    if(!empty($project_data['users'])){
     237                                                        $proj_users = explode(',',$project_data['users']);
     238                                                    }
     239                                                    if(!empty($task_users)){
     240                                                        foreach($task_users as $user){
     241                                                            if( (!empty($proj_users)) && (in_array($user,$proj_users))){
     242                                                                $i++;
     243                                                                if( $i <= 4 ){
     244                                                                    if(!empty($user)){
     245                                                                        $userdata = get_userdata( $user );
     246                                                                        ?>
     247                                                                        <a href="#"  title="<?php echo esc_attr($userdata->display_name)?>">
     248                                                                            <?php echo get_avatar($user, 25, "mysteryman");?>
     249                                                                        </a>
     250                                                                <?php }
     251                                                                }
     252                                                            }
     253                                                        }
     254                                                    }
     255                                                    if($i > 4){
     256                                                        ?>
     257                                                            <a href="#" class="wppm_avatar">
     258                                                            <span id="wppm_avatar" style="background-color:black;" class="avatar">+<?php echo esc_html($i-4) ?></span>
     259                                                            </a>
     260                                                    <?php } ?>
    198261                                                </div>
    199262                                            </div>
    200263                                        </div>
    201                                         <div class="row">
    202                                             <div class="col-sm-12">
    203                                                 <span class="wppm_task_name_grid_view"><?php echo esc_html_e($task->task_name,'taskbuilder');?></span>
    204                                             </div>
    205                                         </div>
    206                                         <div class="row">
    207                                             <div class="col-sm-6 wppm_task_due_date_grid_view">
    208                                                 <small><?php echo (isset($task->end_date))? esc_html_e($task->end_date,'taskbuilder') :"" ?></small>
    209                                             </div>
    210                                             <div class="col-sm-6" class="wppm_card_task_users" style="text-align:right;">
    211                                                 <?php
    212                                                 $task_users = explode(',',$task->users);
    213                                                 $i=0;
    214                                                 $project_data = $wppmfunction->get_project($task->project);
    215                                                 if(!empty($project_data['users'])){
    216                                                     $proj_users = explode(',',$project_data['users']);
    217                                                 }
    218                                                 if(!empty($task_users)){
    219                                                     foreach($task_users as $user){
    220                                                         if( (!empty($proj_users)) && (in_array($user,$proj_users))){
    221                                                             $i++;
    222                                                             if( $i <= 4 ){
    223                                                                 if(!empty($user)){
    224                                                                     $userdata = get_userdata( $user );
    225                                                                     ?>
    226                                                                     <a href="#"  title="<?php echo esc_attr($userdata->display_name)?>">
    227                                                                         <?php echo get_avatar($user, 25, "mysteryman");?>
    228                                                                     </a>
    229                                                             <?php }
    230                                                             }
    231                                                         }
    232                                                     }
    233                                                 }
    234                                                 if($i > 4){
    235                                                     ?>
    236                                                         <a href="#" class="wppm_avatar">
    237                                                         <span id="wppm_avatar" style="background-color:black;" class="avatar">+<?php echo esc_html($i-4) ?></span>
    238                                                         </a>
    239                                                 <?php } ?>
    240                                             </div>
    241                                         </div>
    242                                     </div>
    243                                     <?php
     264                                        <?php
     265                                    }
    244266                                }
    245267                            }
     
    265287    <div class="row wppm_task_pagination_container">
    266288        <div class="col-sm-4">
    267             <?php echo esc_html_e('Total:','taskbuilder'); ?>&nbsp;<?php echo esc_html($total_tasks); ?>&nbsp;<?php echo esc_html_e( 'of','taskbuilder') ?>&nbsp;<?php echo esc_html($totalrows) ?>&nbsp;<?php echo esc_html_e('Tasks','taskbuilder')?>
     289            <?php echo esc_html_e('Total:','taskbuilder'); ?>&nbsp;<?php echo esc_html($total_tasks); ?>&nbsp;<?php echo esc_html_e( 'of','taskbuilder') ?>&nbsp;<?php echo esc_html($totalrows_tasks) ?>&nbsp;<?php echo esc_html_e('Tasks','taskbuilder')?>
    268290        </div>
    269291        <div class="wppm_task_pagination col-sm-4" style="<?php echo (esc_attr($total_pages)==0)? "display:none;":"display:flex;"?>">
  • taskbuilder/tags/2.0.8/includes/admin/projects/projects_list.php

    r3019975 r3035644  
    260260                  <?php if($wppm_default_project_date==1){ ?>
    261261                          <td class="wppm_table_td"><?php echo isset($proj_start_date) ? esc_html($proj_start_date): "" ?></td>
    262                           <td class="wppm_table_td"><?php echo isset($proj_end_date) ? esc_html($proj_end_date):"" ?></td>
     262                          <?php $style = ($project->status!=4 && $proj_end_date < $current_date) ? "color:#FF0000":"color:#2C3E50"; ?>
     263                          <td class="wppm_table_td"><span style="<?php echo esc_attr($style); ?>"><?php echo isset($proj_end_date) ? esc_html($proj_end_date):"" ?></td></span>
    263264                  <?php } ?>
    264265                  <td class="wppm_table_td"><?php echo isset($no_of_tasks) ? esc_html($no_of_tasks):"" ?></td>
  • taskbuilder/tags/2.0.8/includes/admin/projects/wppm_open_project.php

    r2951988 r3035644  
    77$wppm_default_project_date = get_option('wppm_default_project_date');
    88$wppm_public_projects_permission = get_option('wppm_public_projects_permission');
     9$current_date = date('Y-m-d');
    910$id = isset($_POST) && isset($_POST['id']) ? intval(sanitize_text_field($_POST['id'])) : 0;
    1011if (!$id) {exit;}
     
    8384                      </div>
    8485                      <div class="col-sm-9">
    85                         <span class="wppm_project_details"><?php echo (isset($proj_end_date))? esc_html($proj_end_date):"" ?></span>
     86                      <?php $style = ($project->status!=4 && $proj_end_date < $current_date) ? "color:#FF0000":"color:#2C3E50"; ?>
     87                        <span class="wppm_project_details" style="<?php echo esc_attr($style); ?>"><?php echo (isset($proj_end_date))? esc_html($proj_end_date):"" ?></span>
    8688                      </div>
    8789                    </div>
  • taskbuilder/tags/2.0.8/includes/admin/settings/wppm_get_general_settings.php

    r2951988 r3035644  
    99$wppm_default_task_date = get_option('wppm_default_task_date');
    1010$wppm_project_time = get_option('wppm_project_time');
     11$wppm_task_time = get_option('wppm_task_time');
    1112$wppm_edit_tasks_permission = get_option('wppm_default_edit_tasks_permission');
    1213?>
     
    3435                echo '<option '.$selected.' value="1">'.__('Show','taskbuilder').'</option>';
    3536                $selected = $wppm_project_time == '0' ? 'selected="selected"' : '';
     37                echo '<option '.$selected.' value="0">'.__('Hide','taskbuilder').'</option>';
     38                ?>
     39    </select>
     40    <hr>
     41    <span>
     42      <label><?php echo esc_html_e('Time in task start date and end date','taskbuilder');?></label>
     43    </span><br>
     44    <p class="help-block"><?php echo esc_html_e('Default show/hide time in start and end date of task.','taskbuilder');?></p>
     45    <select class="form-control" name="wppm_task_time" id="wppm_task_time">
     46                <?php
     47                $selected = $wppm_task_time == '1' ? 'selected="selected"' : '';
     48                echo '<option '.$selected.' value="1">'.__('Show','taskbuilder').'</option>';
     49                $selected = $wppm_task_time == '0' ? 'selected="selected"' : '';
    3650                echo '<option '.$selected.' value="0">'.__('Hide','taskbuilder').'</option>';
    3751                ?>
  • taskbuilder/tags/2.0.8/includes/admin/settings/wppm_set_general_settings.php

    r2951988 r3035644  
    1818$wppm_edit_tasks_permission = isset($_POST) && isset(($_POST['wppm_edit_tasks_permission'])) ? sanitize_text_field($_POST['wppm_edit_tasks_permission']) : '0';
    1919update_option('wppm_default_edit_tasks_permission',$wppm_edit_tasks_permission);
     20$wppm_task_time = isset($_POST) && isset(($_POST['wppm_task_time'])) ? sanitize_text_field($_POST['wppm_task_time']) : '1';
     21update_option('wppm_task_time',$wppm_task_time);
    2022do_action('wppm_set_general_settings');
    2123
  • taskbuilder/tags/2.0.8/includes/admin/tasks/open_task/wppm_open_task.php

    r2844010 r3035644  
    88$task_list_view = get_option('wppm_default_task_list_view');
    99$wppm_default_task_date = get_option('wppm_default_task_date');
     10$wppm_task_time = get_option('wppm_task_time');
    1011if (!(($current_user->ID && $current_user->has_cap('manage_options')) || ($wppmfunction->has_permission('view_task',$id)))) {exit;}
    1112$proj_id = isset($_POST) && isset($_POST['proj_id']) ? intval(sanitize_text_field($_POST['proj_id'])) : 0;
    1213$auth_id = $wppmfunction->wppm_get_auth_code($id);
    1314$auth_id = sanitize_text_field($auth_id);
     15$current_date = date('Y-m-d');
    1416if(!empty($id)){
    1517  $task = $wpdb->get_row( "SELECT * FROM {$wpdb->prefix}wppm_task where id=".$id);
     
    3638}
    3739
     40if($wppm_task_time == 1){
     41  $task_start_date = $task->start_date;
     42  $task_end_date = $task->end_date;
     43} elseif($wppm_task_time == 0){
     44    $tsDate = new DateTime($task->start_date);
     45    $teDate = new DateTime($task->end_date);
     46    $task_start_date = $tsDate->format('Y-m-d');
     47    $task_end_date = $teDate->format('Y-m-d');
     48}
    3849?>
    3950<form id="wppm_open_task" method="post">
     
    99110                  </div>
    100111                  <div class="col-sm-9">
    101                     <span class="wppm_task_details"><?php echo (isset($task->start_date))? esc_html($task->start_date):"" ?></span>
     112                    <span class="wppm_task_details"><?php echo (isset($task_start_date))? esc_html($task_start_date):"" ?></span>
    102113                  </div>
    103114                </div>
     
    107118                  </div>
    108119                  <div class="col-sm-9">
    109                     <span class="wppm_task_details"><?php echo (isset($task->end_date))? esc_html($task->end_date):"" ?></span>
     120                    <?php $style = ($task->status!=4 && $task->end_date < $current_date) ? "color:#FF0000":"color:#2C3E50"; ?>
     121                    <span class="wppm_task_details" style="<?php echo esc_attr($style); ?>"><?php echo (isset($task_end_date))? esc_html($task_end_date):"" ?></span>
    110122                  </div>
    111123                </div>
  • taskbuilder/tags/2.0.8/includes/admin/tasks/wppm_tasks_list.php

    r3019975 r3035644  
    1111$filter_by = isset($_POST['wppm_task_filter']) ? sanitize_text_field($_POST['wppm_task_filter']) : "all";
    1212$current_date = date('Y-m-d');
     13$wppm_task_time = get_option('wppm_task_time');
    1314$filters = array(
    1415  'sort_by' => $sort_by,
     
    247248                    $project = $wpdb->get_row( "SELECT * FROM {$wpdb->prefix}wppm_project where id = $task->project" );
    248249                  }
     250                  if($wppm_task_time == 1){
     251                    $task_start_date = $task->start_date;
     252                    $task_end_date = $task->end_date;
     253                  } elseif($wppm_task_time == 0){
     254                      $tsDate = new DateTime($task->start_date);
     255                      $teDate = new DateTime($task->end_date);
     256                      $task_start_date = $tsDate->format('Y-m-d');
     257                      $task_end_date = $teDate->format('Y-m-d');
     258                  }
    249259                  ?>
    250260                  <tr onclick= "if(link)wppm_open_task(<?php echo esc_attr($task->id) ?>)" >
     
    270280                    <?php if($wppm_default_task_date == 1) { ?>
    271281                            <td>
    272                             <?php if(!empty($task->start_date)){ ?>
    273                                       <?php echo esc_html_e($task->start_date,'taskbuilder');
     282                            <?php if(!empty($task_start_date)){ ?>
     283                                      <?php echo esc_html_e($task_start_date,'taskbuilder');
    274284                                  } ?>
    275285                            </td>
    276286                            <td>
    277                             <?php if(!empty($task->end_date)){ ?>
    278                                     <?php echo esc_html_e($task->end_date,'taskbuilder');
     287                            <?php if(!empty($task_end_date)){
     288                                  $style = ($task->status!=4 && $task_end_date < $current_date) ? "color:#FF0000":"color:#2C3E50";
     289                                  ?>
     290                                  <span style="<?php echo esc_attr($style); ?>"><?php echo esc_html_e($task_end_date,'taskbuilder');?></span><?php
    279291                                  } ?>
    280292                            </td>
  • taskbuilder/tags/2.0.8/includes/wppm-install.php

    r2951988 r3035644  
    270270            update_option('wppm_public_projects_permission',0);
    271271        }
     272        if($installed_version < '2.0.8'){
     273            update_option('wppm_task_time',1);
     274        }
    272275        // update wppm_version option to plugin version
    273276        update_option( 'wppm_version', WPPM_VERSION );
  • taskbuilder/tags/2.0.8/readme.txt

    r3019975 r3035644  
    44Tags: project,task,project management,task management,project manager,wordpress project management,task manager,CRM,Kanban board,management,bug tracker,issue tracker
    55Requires at least: 4.4
    6 Tested up to: 6.4.2
    7 Stable tag: 2.0.7
     6Tested up to: 6.4.3
     7Stable tag: 2.0.8
    88License: GPL v3
    99
     
    9898
    9999== Changelog ==
     100= V 2.0.8(Feb 14,2024) =
     101* New: Highlight due dates of projects and tasks in task list, project list.
     102* New: Setting given to hide/show time in start date and end date of task.
     103* Fix: Pagination issue fixed in grid view.
     104
    100105= V 2.0.7(Jan 10,2024) =
    101106* New (Pro feature): Buddypress Integration add-on.
  • taskbuilder/tags/2.0.8/taskbuilder.php

    r3019975 r3035644  
    44 * Plugin URI: https://wordpress.org/plugins/taskbuilder/
    55 * Description: Wordpress Project & Task Management plugin. Easy to keep track of projects & tasks!
    6  * Version: 2.0.7
     6 * Version: 2.0.8
    77 * Author: Taskbuilder Team
    88 * Author URI: https://taskbuilder.net/
    99 * Requires at least: 4.4
    10  * Tested up to: 6.4.2
     10 * Tested up to: 6.4.3
    1111 * Text Domain: taskbuilder
    1212 * Domain Path: /lang
     
    2020 
    2121  final class WP_Taskbuilder {
    22     public $version    = '2.0.7';
     22    public $version    = '2.0.8';
    2323    public function __construct() {
    2424      // define global constants
  • taskbuilder/trunk/includes/admin/addons.php

    r3019975 r3035644  
    2222                        <div class="pheader">
    2323                            <h3 class="title"><img src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/calendar.svg'); ?>"><?php echo esc_html_e('Calendar','taskbuilder');?></h3>
    24                             <h4 class="subtitle">$14.99</h4>
     24                            <h4 class="subtitle">$19.99</h4>
    2525                            <div style="text-align:center">
    2626                                <small class="payment_freq"><?php echo esc_html_e('Per year','taskbuilder');?></small>
  • taskbuilder/trunk/includes/admin/projects/open_project/wppm_view_project_tasks.php

    r3019975 r3035644  
    55global $wpdb,$current_user, $wppmfunction;
    66$task_per_page = 20;
     7$total_no_of_rows = 0;
     8$totalrows_tasks = 0;
    79$page_no = isset($_POST['page_no']) ? intval(sanitize_text_field($_POST['page_no'])) : '0';
    810$task_status = $wpdb->get_results( "SELECT * FROM {$wpdb->prefix}wppm_task_statuses ORDER BY load_order ASC" );
     11$wppm_task_time = get_option('wppm_task_time');
    912$search_tag = isset($_POST['task_search']) ? sanitize_text_field($_POST['task_search']) : '';
    1013$filter_by = isset($_POST['wppm_task_filter']) ? sanitize_text_field($_POST['wppm_task_filter']) : "all";
     
    4649    $wppm_tl_filter = "(FIND_IN_SET('$current_user->ID',Task.users)>0)";
    4750}
    48 if(!empty($search_tag)){
    49     $search_tag_text = '%'.$search_tag.'%';
    50     if($current_user->has_cap('manage_options')){
    51         $query = ("SELECT Task.*
     51if(!empty($task_status)){
     52    foreach($task_status as $status) {
     53        if(!empty($search_tag)){
     54            $search_tag_text = '%'.$search_tag.'%';
     55            if($current_user->has_cap('manage_options')){
     56                $query = ("SELECT Task.*
     57                            FROM {$wpdb->prefix}wppm_task AS Task
     58                            Left join {$wpdb->prefix}wppm_project proj ON Task.project = proj.id
     59                            Left join {$wpdb->prefix}wppm_task_statuses task_statuses ON Task.status = task_statuses.id
     60                            Left join {$wpdb->prefix}wppm_task_priorities task_priorities ON Task.priority = task_priorities.id
     61                            Left join {$wpdb->base_prefix}users user ON (FIND_IN_SET(user.id,Task.users)>0) AND user.display_name LIKE '$search_tag_text'
     62                            Left join {$wpdb->prefix}wppm_project_meta proj_meta ON Task.project = proj_meta.project_id
     63                        ");
     64                $no_of_rows = ( "SELECT count(*) FROM ($query");
     65                $where = " where $wppm_tl_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";
     66            } else{
     67                $query = ("SELECT Task.*
    5268                    FROM {$wpdb->prefix}wppm_task AS Task
    5369                    Left join {$wpdb->prefix}wppm_project proj ON Task.project = proj.id
    5470                    Left join {$wpdb->prefix}wppm_task_statuses task_statuses ON Task.status = task_statuses.id
    5571                    Left join {$wpdb->prefix}wppm_task_priorities task_priorities ON Task.priority = task_priorities.id
     72                    Left join {$wpdb->prefix}wppm_project_users proj_users ON Task.project = proj_users.proj_id
    5673                    Left join {$wpdb->base_prefix}users user ON (FIND_IN_SET(user.id,Task.users)>0) AND user.display_name LIKE '$search_tag_text'
    5774                    Left join {$wpdb->prefix}wppm_project_meta proj_meta ON Task.project = proj_meta.project_id
     75                    ");
     76                $no_of_rows = ( "SELECT count(*) FROM ($query");
     77                $where = " where $wppm_tl_filter AND (((FIND_IN_SET('$current_user->ID',Task.users)>0) OR (Task.created_by= '$current_user->ID') OR (proj_users.user_id = '$current_user->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)) 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";
     78            }
     79        }else{
     80            if($current_user->has_cap('manage_options')){
     81                $query = ( "SELECT Task.* FROM {$wpdb->prefix}wppm_task AS Task
     82                            Left join {$wpdb->prefix}wppm_project_meta proj_meta ON Task.project = proj_meta.project_id
    5883                ");
    59         $no_of_rows = ( "SELECT count(*) FROM ($query");
    60         $where = " where $wppm_tl_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')";
    61     } else{
    62         $query = ("SELECT Task.*
    63               FROM {$wpdb->prefix}wppm_task AS Task
    64               Left join {$wpdb->prefix}wppm_project proj ON Task.project = proj.id
    65               Left join {$wpdb->prefix}wppm_task_statuses task_statuses ON Task.status = task_statuses.id
    66               Left join {$wpdb->prefix}wppm_task_priorities task_priorities ON Task.priority = task_priorities.id
    67               Left join {$wpdb->prefix}wppm_project_users proj_users ON Task.project = proj_users.proj_id
    68               Left join {$wpdb->base_prefix}users user ON (FIND_IN_SET(user.id,Task.users)>0) AND user.display_name LIKE '$search_tag_text'
    69               Left join {$wpdb->prefix}wppm_project_meta proj_meta ON Task.project = proj_meta.project_id
    70               ");
    71         $no_of_rows = ( "SELECT count(*) FROM ($query");
    72         $where = " where $wppm_tl_filter AND (((FIND_IN_SET('$current_user->ID',Task.users)>0) OR (Task.created_by= '$current_user->ID') OR (proj_users.user_id = '$current_user->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)) 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'))";
     84                $no_of_rows = ( "SELECT count(*) FROM ($query");
     85                $where = " where $wppm_tl_filter AND Task.status= $status->id";
     86            }else{
     87                $query = ( "SELECT Task.*
     88                    FROM {$wpdb->prefix}wppm_task AS Task
     89                    Left join {$wpdb->prefix}wppm_project proj ON Task.project = proj.id
     90                    Left join {$wpdb->prefix}wppm_project_users proj_users ON Task.project = proj_users.proj_id
     91                    Left join {$wpdb->prefix}wppm_project_meta proj_meta ON Task.project = proj_meta.project_id
     92                    ");
     93                $no_of_rows = ( "SELECT count(*) FROM ($query");
     94                $where = " where $wppm_tl_filter AND ((FIND_IN_SET('$current_user->ID',Task.users)>0) OR (Task.created_by= '$current_user->ID') OR (proj_users.user_id = '$current_user->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)) AND Task.status= $status->id";
     95            }
     96        }
     97        $no_of_rows = apply_filters('wppm_number_of_rows_query_for_grid_view',$no_of_rows);
     98        $where = apply_filters('wppm_task_list_where_for_grid_view',$where,$wppm_tl_filter,$search_tag);
     99        $no_of_rows .= $where;
     100        $no_of_rows .= " Group by Task.id) AS Task";
     101        $no_of_rows = apply_filters('wppm_task_list_no_of_rows_for_grid_view',$no_of_rows);
     102        $totalrows = $wpdb->get_var($no_of_rows);
     103        $totalrows_tasks +=$totalrows;
     104        if($total_no_of_rows > $totalrows){
     105            $totalrows = $total_no_of_rows;
     106        }else{
     107            $total_no_of_rows = $totalrows;
     108        }
     109        $limit_start=$page_no*$task_per_page;
     110        $limit="\n LIMIT ".$limit_start.",".$task_per_page." ";
     111        $current_page=$page_no+1;
     112        $query = apply_filters('wppm_tasks_grid_view_query',$query,$search_tag);
     113        $where .= " Group by Task.id";
     114        $query .= $where;
     115        $query = apply_filters('wppm_task_list_grid_view_query',$query);
     116        $query = $query.$limit;
     117        $wppm_task_fillter[] = $wpdb->get_results($query);
    73118    }
    74 }else{
    75     if($current_user->has_cap('manage_options')){
    76         $query = ( "SELECT Task.* FROM {$wpdb->prefix}wppm_task AS Task
    77                     Left join {$wpdb->prefix}wppm_project_meta proj_meta ON Task.project = proj_meta.project_id
    78         ");
    79         $no_of_rows = ( "SELECT count(*) FROM ($query");
    80         $where = " where $wppm_tl_filter";
    81     }else{
    82         $query = ( "SELECT Task.*
    83             FROM {$wpdb->prefix}wppm_task AS Task
    84             Left join {$wpdb->prefix}wppm_project proj ON Task.project = proj.id
    85             Left join {$wpdb->prefix}wppm_project_users proj_users ON Task.project = proj_users.proj_id
    86             Left join {$wpdb->prefix}wppm_project_meta proj_meta ON Task.project = proj_meta.project_id
    87             ");
    88         $no_of_rows = ( "SELECT count(*) FROM ($query");
    89         $where = " where $wppm_tl_filter AND ((FIND_IN_SET('$current_user->ID',Task.users)>0) OR (Task.created_by= '$current_user->ID') OR (proj_users.user_id = '$current_user->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))";
    90     }
    91 }
    92 $no_of_rows = apply_filters('wppm_number_of_rows_query_for_grid_view',$no_of_rows);
    93 $where = apply_filters('wppm_task_list_where_for_grid_view',$where,$wppm_tl_filter,$search_tag);
    94 $no_of_rows .= $where;
    95 $no_of_rows .= " Group by Task.id) AS Task";
    96 $no_of_rows = apply_filters('wppm_task_list_no_of_rows_for_grid_view',$no_of_rows);
    97 $totalrows = $wpdb->get_var($no_of_rows);
    98 $limit_start=$page_no*$task_per_page;
    99 $limit="\n LIMIT ".$limit_start.",".$task_per_page." ";
    100 $current_page=$page_no+1;
    101 $query = apply_filters('wppm_tasks_grid_view_query',$query,$search_tag);
    102 $where .= " Group by Task.id";
    103 $query .= $where;
    104 $query = apply_filters('wppm_task_list_grid_view_query',$query);
    105 $query = $query.$limit;
    106 $wppm_task_fillter = $wpdb->get_results($query);
    107 $total_pages=ceil($totalrows/$task_per_page);
    108 $prev_page_no=$current_page-1;
    109 $prev_class=(!$prev_page_no)?'disabled':'';
    110 $next_page_no=($total_pages==$current_page)? $current_page-1:$current_page;
    111 $next_class=($total_pages==$current_page)?'disabled':'';
     119    $total_pages=ceil($total_no_of_rows/$task_per_page);
     120    $prev_page_no=$current_page-1;
     121    $prev_class=(!$prev_page_no)?'disabled':'';
     122    $next_page_no=($total_pages==$current_page)? $current_page-1:$current_page;
     123    $next_class=($total_pages==$current_page)?'disabled':'';
     124}
    112125?>
    113126<form name="wppm_view_project_task" id="wppm_view_project_task">
     
    167180                    $total_tasks = 0;
    168181                    if(!empty($wppm_task_fillter)){
    169                         foreach($wppm_task_fillter as $task){
    170                             $total_tasks++;
    171                             if((!empty($task)) && $task->status==$status->id){
    172                                 $task_per_status = true;
    173                                 if(isset($task->priority)){
    174                                     $task_priority = $wpdb->get_row( "SELECT * FROM {$wpdb->prefix}wppm_task_priorities where id = $task->priority" );
    175                                 }
    176                                 if(!empty($task->id)){
    177                                     $checklists = $wpdb->get_results( "SELECT * FROM {$wpdb->prefix}wppm_checklist where task_id = $task->id" );
    178                                     $total=$wpdb->get_var("SELECT COUNT(Items.id) AS check_id
    179                                         FROM {$wpdb->prefix}wppm_checklist_items AS Items
    180                                         Left join {$wpdb->prefix}wppm_checklist checklist ON Items.checklist_id = checklist.id
    181                                         WHERE checklist.task_id = $task->id");
    182                                     $total_checked_items=$wpdb->get_var("SELECT COUNT(Items.id) AS check_id
    183                                         FROM {$wpdb->prefix}wppm_checklist_items AS Items
    184                                         Left join {$wpdb->prefix}wppm_checklist checklist ON Items.checklist_id = checklist.id
    185                                         WHERE checklist.task_id = $task->id AND Items.checked=1");
    186                                     ?>
    187                                     <div class="wppm_card_body" onclick="wppm_open_task(<?php echo esc_attr($task->id)?>)" id="wppm_draggable_card_<?php echo esc_attr($task->id)?>">
    188                                         <div class="row">
    189                                             <div class="col-sm-6">
    190                                                 <span class="wppm_td_task_priority" style="background-color:<?php echo (!empty($task_priority->bg_color))? esc_attr($task_priority->bg_color):"";?>;color:<?php echo (!empty($task_priority->color))? esc_attr($task_priority->color):"";?>"><?php echo (!empty($task_priority->name))? esc_html($task_priority->name):"" ?></span>
     182                        foreach($wppm_task_fillter as $key=>$tasks){
     183                            foreach($tasks as $task){
     184                                $total_tasks++;
     185                                if((!empty($task)) && $task->status==$status->id){
     186                                    $task_per_status = true;
     187                                    if(isset($task->priority)){
     188                                        $task_priority = $wpdb->get_row( "SELECT * FROM {$wpdb->prefix}wppm_task_priorities where id = $task->priority" );
     189                                    }
     190                                    if($wppm_task_time == 1){
     191                                        $task_end_date = $task->end_date;
     192                                    }elseif($wppm_task_time == 0){
     193                                        $teDate = new DateTime($task->end_date);
     194                                        $task_end_date = $teDate->format('Y-m-d');
     195                                    }
     196                                    if(!empty($task->id)){
     197                                        $checklists = $wpdb->get_results( "SELECT * FROM {$wpdb->prefix}wppm_checklist where task_id = $task->id" );
     198                                        $total=$wpdb->get_var("SELECT COUNT(Items.id) AS check_id
     199                                            FROM {$wpdb->prefix}wppm_checklist_items AS Items
     200                                            Left join {$wpdb->prefix}wppm_checklist checklist ON Items.checklist_id = checklist.id
     201                                            WHERE checklist.task_id = $task->id");
     202                                        $total_checked_items=$wpdb->get_var("SELECT COUNT(Items.id) AS check_id
     203                                            FROM {$wpdb->prefix}wppm_checklist_items AS Items
     204                                            Left join {$wpdb->prefix}wppm_checklist checklist ON Items.checklist_id = checklist.id
     205                                            WHERE checklist.task_id = $task->id AND Items.checked=1");
     206                                        ?>
     207                                        <div class="wppm_card_body" onclick="wppm_open_task(<?php echo esc_attr($task->id)?>)" id="wppm_draggable_card_<?php echo esc_attr($task->id)?>">
     208                                            <div class="row">
     209                                                <div class="col-sm-6">
     210                                                    <span class="wppm_td_task_priority" style="background-color:<?php echo (!empty($task_priority->bg_color))? esc_attr($task_priority->bg_color):"";?>;color:<?php echo (!empty($task_priority->color))? esc_attr($task_priority->color):"";?>"><?php echo (!empty($task_priority->name))? esc_html($task_priority->name):"" ?></span>
     211                                                </div>
     212                                                <div class="wppm_card_task_action col-sm-6">
     213                                                    <span class="wppm_checklist_total_checked_item"><?php echo esc_html($total_checked_items.'/'.$total)?></span><span class="wppm_total_checked_item"><img src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/checked.svg'); ?>" alt="checked"></span>
     214                                                    <span class="wppm_show_dropdown_menu" onclick="wppm_show_dropdown_menu(<?php echo esc_attr($task->id);?>)" data-popover="wppm-dropdown-menu-<?php echo esc_attr($task->id);?>" id="wppm_task_action_<?php echo esc_attr($task->id);?>"><img src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/vertical_dot.svg'); ?>" alt="vertical_dot"></span>
     215                                                    <div class="gpopover" id="wppm-dropdown-menu-<?php echo esc_attr($task->id);?>">
     216                                                        <a class="dropdown-item" href="#"><?php echo esc_html_e('Edit','taskbuilder');?></a>
     217                                                        <a class="dropdown-item" href="#"><?php echo esc_html_e('Delete','taskbuilder');?></a>
     218                                                    </div>
     219                                                </div>
    191220                                            </div>
    192                                             <div class="wppm_card_task_action col-sm-6">
    193                                                 <span class="wppm_checklist_total_checked_item"><?php echo esc_html($total_checked_items.'/'.$total)?></span><span class="wppm_total_checked_item"><img src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/checked.svg'); ?>" alt="checked"></span>
    194                                                 <span class="wppm_show_dropdown_menu" onclick="wppm_show_dropdown_menu(<?php echo esc_attr($task->id);?>)" data-popover="wppm-dropdown-menu-<?php echo esc_attr($task->id);?>" id="wppm_task_action_<?php echo esc_attr($task->id);?>"><img src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/vertical_dot.svg'); ?>" alt="vertical_dot"></span>
    195                                                 <div class="gpopover" id="wppm-dropdown-menu-<?php echo esc_attr($task->id);?>">
    196                                                     <a class="dropdown-item" href="#"><?php echo esc_html_e('Edit','taskbuilder');?></a>
    197                                                     <a class="dropdown-item" href="#"><?php echo esc_html_e('Delete','taskbuilder');?></a>
     221                                            <div class="row">
     222                                                <div class="col-sm-12">
     223                                                    <span class="wppm_task_name_grid_view"><?php echo esc_html_e($task->task_name,'taskbuilder');?></span>
     224                                                </div>
     225                                            </div>
     226                                            <div class="row">
     227                                                <div class="col-sm-6 wppm_task_due_date_grid_view">
     228                                                <?php $style = ($task->status!=4 && $task->end_date < $current_date) ? "color:#FF0000":"color:#2C3E50"; ?>
     229                                                    <small style="<?php echo esc_attr($style); ?>"><?php echo (isset($task_end_date))? esc_html_e($task_end_date,'taskbuilder') :"" ?></small>
     230                                                </div>
     231                                                <div class="col-sm-6" class="wppm_card_task_users" style="text-align:right;">
     232                                                    <?php
     233                                                    $task_users = explode(',',$task->users);
     234                                                    $i=0;
     235                                                    $project_data = $wppmfunction->get_project($task->project);
     236                                                    if(!empty($project_data['users'])){
     237                                                        $proj_users = explode(',',$project_data['users']);
     238                                                    }
     239                                                    if(!empty($task_users)){
     240                                                        foreach($task_users as $user){
     241                                                            if( (!empty($proj_users)) && (in_array($user,$proj_users))){
     242                                                                $i++;
     243                                                                if( $i <= 4 ){
     244                                                                    if(!empty($user)){
     245                                                                        $userdata = get_userdata( $user );
     246                                                                        ?>
     247                                                                        <a href="#"  title="<?php echo esc_attr($userdata->display_name)?>">
     248                                                                            <?php echo get_avatar($user, 25, "mysteryman");?>
     249                                                                        </a>
     250                                                                <?php }
     251                                                                }
     252                                                            }
     253                                                        }
     254                                                    }
     255                                                    if($i > 4){
     256                                                        ?>
     257                                                            <a href="#" class="wppm_avatar">
     258                                                            <span id="wppm_avatar" style="background-color:black;" class="avatar">+<?php echo esc_html($i-4) ?></span>
     259                                                            </a>
     260                                                    <?php } ?>
    198261                                                </div>
    199262                                            </div>
    200263                                        </div>
    201                                         <div class="row">
    202                                             <div class="col-sm-12">
    203                                                 <span class="wppm_task_name_grid_view"><?php echo esc_html_e($task->task_name,'taskbuilder');?></span>
    204                                             </div>
    205                                         </div>
    206                                         <div class="row">
    207                                             <div class="col-sm-6 wppm_task_due_date_grid_view">
    208                                                 <small><?php echo (isset($task->end_date))? esc_html_e($task->end_date,'taskbuilder') :"" ?></small>
    209                                             </div>
    210                                             <div class="col-sm-6" class="wppm_card_task_users" style="text-align:right;">
    211                                                 <?php
    212                                                 $task_users = explode(',',$task->users);
    213                                                 $i=0;
    214                                                 $project_data = $wppmfunction->get_project($task->project);
    215                                                 if(!empty($project_data['users'])){
    216                                                     $proj_users = explode(',',$project_data['users']);
    217                                                 }
    218                                                 if(!empty($task_users)){
    219                                                     foreach($task_users as $user){
    220                                                         if( (!empty($proj_users)) && (in_array($user,$proj_users))){
    221                                                             $i++;
    222                                                             if( $i <= 4 ){
    223                                                                 if(!empty($user)){
    224                                                                     $userdata = get_userdata( $user );
    225                                                                     ?>
    226                                                                     <a href="#"  title="<?php echo esc_attr($userdata->display_name)?>">
    227                                                                         <?php echo get_avatar($user, 25, "mysteryman");?>
    228                                                                     </a>
    229                                                             <?php }
    230                                                             }
    231                                                         }
    232                                                     }
    233                                                 }
    234                                                 if($i > 4){
    235                                                     ?>
    236                                                         <a href="#" class="wppm_avatar">
    237                                                         <span id="wppm_avatar" style="background-color:black;" class="avatar">+<?php echo esc_html($i-4) ?></span>
    238                                                         </a>
    239                                                 <?php } ?>
    240                                             </div>
    241                                         </div>
    242                                     </div>
    243                                     <?php
     264                                        <?php
     265                                    }
    244266                                }
    245267                            }
     
    265287    <div class="row wppm_task_pagination_container">
    266288        <div class="col-sm-4">
    267             <?php echo esc_html_e('Total:','taskbuilder'); ?>&nbsp;<?php echo esc_html($total_tasks); ?>&nbsp;<?php echo esc_html_e( 'of','taskbuilder') ?>&nbsp;<?php echo esc_html($totalrows) ?>&nbsp;<?php echo esc_html_e('Tasks','taskbuilder')?>
     289            <?php echo esc_html_e('Total:','taskbuilder'); ?>&nbsp;<?php echo esc_html($total_tasks); ?>&nbsp;<?php echo esc_html_e( 'of','taskbuilder') ?>&nbsp;<?php echo esc_html($totalrows_tasks) ?>&nbsp;<?php echo esc_html_e('Tasks','taskbuilder')?>
    268290        </div>
    269291        <div class="wppm_task_pagination col-sm-4" style="<?php echo (esc_attr($total_pages)==0)? "display:none;":"display:flex;"?>">
  • taskbuilder/trunk/includes/admin/projects/projects_list.php

    r3019975 r3035644  
    260260                  <?php if($wppm_default_project_date==1){ ?>
    261261                          <td class="wppm_table_td"><?php echo isset($proj_start_date) ? esc_html($proj_start_date): "" ?></td>
    262                           <td class="wppm_table_td"><?php echo isset($proj_end_date) ? esc_html($proj_end_date):"" ?></td>
     262                          <?php $style = ($project->status!=4 && $proj_end_date < $current_date) ? "color:#FF0000":"color:#2C3E50"; ?>
     263                          <td class="wppm_table_td"><span style="<?php echo esc_attr($style); ?>"><?php echo isset($proj_end_date) ? esc_html($proj_end_date):"" ?></td></span>
    263264                  <?php } ?>
    264265                  <td class="wppm_table_td"><?php echo isset($no_of_tasks) ? esc_html($no_of_tasks):"" ?></td>
  • taskbuilder/trunk/includes/admin/projects/wppm_open_project.php

    r2951988 r3035644  
    77$wppm_default_project_date = get_option('wppm_default_project_date');
    88$wppm_public_projects_permission = get_option('wppm_public_projects_permission');
     9$current_date = date('Y-m-d');
    910$id = isset($_POST) && isset($_POST['id']) ? intval(sanitize_text_field($_POST['id'])) : 0;
    1011if (!$id) {exit;}
     
    8384                      </div>
    8485                      <div class="col-sm-9">
    85                         <span class="wppm_project_details"><?php echo (isset($proj_end_date))? esc_html($proj_end_date):"" ?></span>
     86                      <?php $style = ($project->status!=4 && $proj_end_date < $current_date) ? "color:#FF0000":"color:#2C3E50"; ?>
     87                        <span class="wppm_project_details" style="<?php echo esc_attr($style); ?>"><?php echo (isset($proj_end_date))? esc_html($proj_end_date):"" ?></span>
    8688                      </div>
    8789                    </div>
  • taskbuilder/trunk/includes/admin/settings/wppm_get_general_settings.php

    r2951988 r3035644  
    99$wppm_default_task_date = get_option('wppm_default_task_date');
    1010$wppm_project_time = get_option('wppm_project_time');
     11$wppm_task_time = get_option('wppm_task_time');
    1112$wppm_edit_tasks_permission = get_option('wppm_default_edit_tasks_permission');
    1213?>
     
    3435                echo '<option '.$selected.' value="1">'.__('Show','taskbuilder').'</option>';
    3536                $selected = $wppm_project_time == '0' ? 'selected="selected"' : '';
     37                echo '<option '.$selected.' value="0">'.__('Hide','taskbuilder').'</option>';
     38                ?>
     39    </select>
     40    <hr>
     41    <span>
     42      <label><?php echo esc_html_e('Time in task start date and end date','taskbuilder');?></label>
     43    </span><br>
     44    <p class="help-block"><?php echo esc_html_e('Default show/hide time in start and end date of task.','taskbuilder');?></p>
     45    <select class="form-control" name="wppm_task_time" id="wppm_task_time">
     46                <?php
     47                $selected = $wppm_task_time == '1' ? 'selected="selected"' : '';
     48                echo '<option '.$selected.' value="1">'.__('Show','taskbuilder').'</option>';
     49                $selected = $wppm_task_time == '0' ? 'selected="selected"' : '';
    3650                echo '<option '.$selected.' value="0">'.__('Hide','taskbuilder').'</option>';
    3751                ?>
  • taskbuilder/trunk/includes/admin/settings/wppm_set_general_settings.php

    r2951988 r3035644  
    1818$wppm_edit_tasks_permission = isset($_POST) && isset(($_POST['wppm_edit_tasks_permission'])) ? sanitize_text_field($_POST['wppm_edit_tasks_permission']) : '0';
    1919update_option('wppm_default_edit_tasks_permission',$wppm_edit_tasks_permission);
     20$wppm_task_time = isset($_POST) && isset(($_POST['wppm_task_time'])) ? sanitize_text_field($_POST['wppm_task_time']) : '1';
     21update_option('wppm_task_time',$wppm_task_time);
    2022do_action('wppm_set_general_settings');
    2123
  • taskbuilder/trunk/includes/admin/tasks/open_task/wppm_open_task.php

    r2844010 r3035644  
    88$task_list_view = get_option('wppm_default_task_list_view');
    99$wppm_default_task_date = get_option('wppm_default_task_date');
     10$wppm_task_time = get_option('wppm_task_time');
    1011if (!(($current_user->ID && $current_user->has_cap('manage_options')) || ($wppmfunction->has_permission('view_task',$id)))) {exit;}
    1112$proj_id = isset($_POST) && isset($_POST['proj_id']) ? intval(sanitize_text_field($_POST['proj_id'])) : 0;
    1213$auth_id = $wppmfunction->wppm_get_auth_code($id);
    1314$auth_id = sanitize_text_field($auth_id);
     15$current_date = date('Y-m-d');
    1416if(!empty($id)){
    1517  $task = $wpdb->get_row( "SELECT * FROM {$wpdb->prefix}wppm_task where id=".$id);
     
    3638}
    3739
     40if($wppm_task_time == 1){
     41  $task_start_date = $task->start_date;
     42  $task_end_date = $task->end_date;
     43} elseif($wppm_task_time == 0){
     44    $tsDate = new DateTime($task->start_date);
     45    $teDate = new DateTime($task->end_date);
     46    $task_start_date = $tsDate->format('Y-m-d');
     47    $task_end_date = $teDate->format('Y-m-d');
     48}
    3849?>
    3950<form id="wppm_open_task" method="post">
     
    99110                  </div>
    100111                  <div class="col-sm-9">
    101                     <span class="wppm_task_details"><?php echo (isset($task->start_date))? esc_html($task->start_date):"" ?></span>
     112                    <span class="wppm_task_details"><?php echo (isset($task_start_date))? esc_html($task_start_date):"" ?></span>
    102113                  </div>
    103114                </div>
     
    107118                  </div>
    108119                  <div class="col-sm-9">
    109                     <span class="wppm_task_details"><?php echo (isset($task->end_date))? esc_html($task->end_date):"" ?></span>
     120                    <?php $style = ($task->status!=4 && $task->end_date < $current_date) ? "color:#FF0000":"color:#2C3E50"; ?>
     121                    <span class="wppm_task_details" style="<?php echo esc_attr($style); ?>"><?php echo (isset($task_end_date))? esc_html($task_end_date):"" ?></span>
    110122                  </div>
    111123                </div>
  • taskbuilder/trunk/includes/admin/tasks/wppm_tasks_list.php

    r3019975 r3035644  
    1111$filter_by = isset($_POST['wppm_task_filter']) ? sanitize_text_field($_POST['wppm_task_filter']) : "all";
    1212$current_date = date('Y-m-d');
     13$wppm_task_time = get_option('wppm_task_time');
    1314$filters = array(
    1415  'sort_by' => $sort_by,
     
    247248                    $project = $wpdb->get_row( "SELECT * FROM {$wpdb->prefix}wppm_project where id = $task->project" );
    248249                  }
     250                  if($wppm_task_time == 1){
     251                    $task_start_date = $task->start_date;
     252                    $task_end_date = $task->end_date;
     253                  } elseif($wppm_task_time == 0){
     254                      $tsDate = new DateTime($task->start_date);
     255                      $teDate = new DateTime($task->end_date);
     256                      $task_start_date = $tsDate->format('Y-m-d');
     257                      $task_end_date = $teDate->format('Y-m-d');
     258                  }
    249259                  ?>
    250260                  <tr onclick= "if(link)wppm_open_task(<?php echo esc_attr($task->id) ?>)" >
     
    270280                    <?php if($wppm_default_task_date == 1) { ?>
    271281                            <td>
    272                             <?php if(!empty($task->start_date)){ ?>
    273                                       <?php echo esc_html_e($task->start_date,'taskbuilder');
     282                            <?php if(!empty($task_start_date)){ ?>
     283                                      <?php echo esc_html_e($task_start_date,'taskbuilder');
    274284                                  } ?>
    275285                            </td>
    276286                            <td>
    277                             <?php if(!empty($task->end_date)){ ?>
    278                                     <?php echo esc_html_e($task->end_date,'taskbuilder');
     287                            <?php if(!empty($task_end_date)){
     288                                  $style = ($task->status!=4 && $task_end_date < $current_date) ? "color:#FF0000":"color:#2C3E50";
     289                                  ?>
     290                                  <span style="<?php echo esc_attr($style); ?>"><?php echo esc_html_e($task_end_date,'taskbuilder');?></span><?php
    279291                                  } ?>
    280292                            </td>
  • taskbuilder/trunk/includes/wppm-install.php

    r2951988 r3035644  
    270270            update_option('wppm_public_projects_permission',0);
    271271        }
     272        if($installed_version < '2.0.8'){
     273            update_option('wppm_task_time',1);
     274        }
    272275        // update wppm_version option to plugin version
    273276        update_option( 'wppm_version', WPPM_VERSION );
  • taskbuilder/trunk/readme.txt

    r3019975 r3035644  
    44Tags: project,task,project management,task management,project manager,wordpress project management,task manager,CRM,Kanban board,management,bug tracker,issue tracker
    55Requires at least: 4.4
    6 Tested up to: 6.4.2
    7 Stable tag: 2.0.7
     6Tested up to: 6.4.3
     7Stable tag: 2.0.8
    88License: GPL v3
    99
     
    9898
    9999== Changelog ==
     100= V 2.0.8(Feb 14,2024) =
     101* New: Highlight due dates of projects and tasks in task list, project list.
     102* New: Setting given to hide/show time in start date and end date of task.
     103* Fix: Pagination issue fixed in grid view.
     104
    100105= V 2.0.7(Jan 10,2024) =
    101106* New (Pro feature): Buddypress Integration add-on.
  • taskbuilder/trunk/taskbuilder.php

    r3019975 r3035644  
    44 * Plugin URI: https://wordpress.org/plugins/taskbuilder/
    55 * Description: Wordpress Project & Task Management plugin. Easy to keep track of projects & tasks!
    6  * Version: 2.0.7
     6 * Version: 2.0.8
    77 * Author: Taskbuilder Team
    88 * Author URI: https://taskbuilder.net/
    99 * Requires at least: 4.4
    10  * Tested up to: 6.4.2
     10 * Tested up to: 6.4.3
    1111 * Text Domain: taskbuilder
    1212 * Domain Path: /lang
     
    2020 
    2121  final class WP_Taskbuilder {
    22     public $version    = '2.0.7';
     22    public $version    = '2.0.8';
    2323    public function __construct() {
    2424      // define global constants
Note: See TracChangeset for help on using the changeset viewer.