Plugin Directory

Changeset 3329577


Ignore:
Timestamp:
07/17/2025 10:12:09 AM (9 months ago)
Author:
taskbuilder
Message:

new version

Location:
taskbuilder
Files:
2 added
30 edited
1 copied

Legend:

Unmodified
Added
Removed
  • taskbuilder/tags/4.0.5/asset/css/admin.css

    r3312666 r3329577  
    15031503}
    15041504
    1505 #wppm_task_description, #wppm_proj_description{
     1505#wppm_task_description, #wppm_add_new_project #wppm_proj_description{
    15061506    height: 160px !important;
    15071507    width: 100% !important;
  • taskbuilder/tags/4.0.5/includes/admin/projects/open_project/wppm_view_project_tasks.php

    r3312666 r3329577  
    1919$public_projects = isset($_POST['public_projects']) ? sanitize_text_field($_POST['public_projects']):"0";
    2020$wppm_current_user_capability = get_user_meta( $current_user->ID, 'wppm_capability', true );
     21$wppm_hide_completed_status_task = get_option('wppm_hide_completed_status_task');
     22$wppm_hide_task_statuses_from_frontend = get_option('wppm_hide_task_statuses_from_frontend');
     23if(!empty($wppm_hide_task_statuses_from_frontend)){
     24  $wppm_hide_task_statuses_from_frontend = explode(",",$wppm_hide_task_statuses_from_frontend);
     25} else {
     26  $wppm_hide_task_statuses_from_frontend = '';
     27}
    2128$filters = array(
    2229    'search' => $search_tag,
     
    7582);
    7683setcookie('wppm_grid_view_filters',wp_json_encode( $filters ),time() + 3600);
    77 
     84if($filter_by=='all'){
     85  if($wppm_hide_completed_status_task == 0){
     86     $wppm_tl_filter = "Task.status!='4'";
     87  }
     88}
    7889if($filter_by=='4'){
    7990    $wppm_tl_filter = "Task.status='4'";
     
    91102    $wppm_tl_filter = "(FIND_IN_SET('$current_user->ID',Task.users)>0)";
    92103}
     104
     105if(!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)){
     106  foreach($wppm_hide_task_statuses_from_frontend as $status){
     107    $wppm_tl_filter .= " AND Task.status != '$status'";
     108  }
     109}
     110
    93111if($proj_filter!=0){
    94112    $wppm_task_by_proj_filter = "Task.project = ".esc_sql($proj_filter)."";
  • taskbuilder/tags/4.0.5/includes/admin/projects/projects_list.php

    r3312666 r3329577  
    1717$current_date = date('Y-m-d');
    1818$wppm_pl_filter = "1=1";
     19$wppm_hide_completed_status_proj = get_option('wppm_hide_completed_status_proj');
    1920$cu_id = esc_sql($current_user->ID);
     21$wppm_hide_proj_statuses_from_frontend = get_option('wppm_hide_proj_statuses_from_frontend');
     22if(!empty($wppm_hide_proj_statuses_from_frontend)){
     23  $wppm_hide_proj_statuses_from_frontend = explode(",",$wppm_hide_proj_statuses_from_frontend);
     24} else {
     25  $wppm_hide_proj_statuses_from_frontend = '';
     26}
    2027$filters = array(
    2128  'sort_by' => $sort_by,
     
    5966if($sort_by=='category'){
    6067  $sort_by = 'proj_categories.name';
     68}
     69if($filter_by=='all'){
     70  if($wppm_hide_completed_status_proj == 0){
     71     $wppm_pl_filter = "status!='4'";
     72  }
    6173}
    6274if($filter_by=='4'){
     
    7587    $wppm_pl_filter = "(FIND_IN_SET('$current_user->ID',users)>0)";
    7688}
     89
     90if(!empty($wppm_hide_proj_statuses_from_frontend) && is_array($wppm_hide_proj_statuses_from_frontend) && ((isset($_POST['is_frontend'])) && (sanitize_text_field($_POST['is_frontend'])==1))){
     91  foreach($wppm_hide_proj_statuses_from_frontend as $status){
     92    $wppm_pl_filter .= " AND status != '$status'";
     93  }
     94}
     95
    7796$wppm_project_time = get_option('wppm_project_time');
    7897$wppm_default_project_date = get_option('wppm_default_project_date');
     
    297316                         $proj_end_date = '0000-00-00 00:00:00';
    298317                      }
    299                     }else{
    300                       if(!empty($wppm_date_setting)){
     318                    }
     319                    if($project->start_date!='0000-00-00 00:00:00'){
     320                         if(!empty($wppm_date_setting)){
    301321                        $proj_start_date = $psDate->format($wppm_date_setting);
    302                         $proj_end_date = $peDate->format($wppm_date_setting);
    303                       }else{
    304                         $proj_start_date = isset($project->start_date)? $project->start_date:"";
    305                         $proj_end_date = isset($project->end_date) ? $project->end_date: "" ;
     322                        }else{
     323                          $proj_start_date = isset($project->start_date)? $project->start_date:"";
     324                        }
    306325                      }
     326                    if($project->end_date!='0000-00-00 00:00:00'){
     327                        if(!empty($wppm_date_setting)){
     328                          $proj_end_date = $peDate->format($wppm_date_setting);
     329                        }else{
     330                          $proj_end_date = isset($project->end_date) ? $project->end_date: "" ;
     331                        }
    307332                    }
    308333                  } elseif($wppm_project_time == 0){
     
    332357                          $proj_end_date = '0000-00-00';
    333358                        }
    334                       }else{
     359
     360                      }if($project->start_date!='0000-00-00 00:00:00'){
     361                         if($wppm_date_setting=='Y-m-d H:i:s'){
     362                          $proj_start_date = $psDate->format('Y-m-d');
     363                        }elseif($wppm_date_setting=='d-m-Y H:i:s'){
     364                          $proj_start_date = $psDate->format('d-m-Y');
     365                        }elseif($wppm_date_setting=='m-d-Y H:i:s'){
     366                          $proj_start_date = $psDate->format('m-d-Y');
     367                        }else{
     368                          $proj_start_date = $psDate->format('Y-m-d');
     369                        }
     370                      }
     371                    if($project->end_date!='0000-00-00 00:00:00'){
    335372                        if($wppm_date_setting=='Y-m-d H:i:s'){
    336                           $proj_start_date = $psDate->format('Y-m-d');
    337373                          $proj_end_date = $peDate->format('Y-m-d');
    338374                        }elseif($wppm_date_setting=='d-m-Y H:i:s'){
    339                           $proj_start_date = $psDate->format('d-m-Y');
    340375                          $proj_end_date = $peDate->format('d-m-Y');
    341376                        }elseif($wppm_date_setting=='m-d-Y H:i:s'){
    342                           $proj_start_date = $psDate->format('m-d-Y');
    343377                          $proj_end_date = $peDate->format('m-d-Y');
    344                         }else{
    345                           $proj_start_date = $psDate->format('Y-m-d');
    346                           $proj_end_date = $peDate->format('Y-m-d');
    347                         }
     378                            }else{
     379                              $proj_end_date = $peDate->format('Y-m-d');
     380                            }
    348381                    }
    349382                  }
     
    387420                    </td>
    388421                    <td onmouseover="link=true;" class="wppm_table_td"><?php echo isset($category) ? esc_html_e($category,'taskbuilder'): "" ?></td>
    389                     <?php if($wppm_default_project_date==1){ ?>
     422                    <?php if($wppm_default_project_date==1){
     423                            ?>
    390424                            <td onmouseover="link=true;" class="wppm_table_td"><?php echo isset($proj_start_date) ? esc_html($proj_start_date): "" ?></td>
    391                             <?php $style = ($project->status!=4 && $proj_end_date < $current_date) ? "color:#FF0000":"color:#2C3E50"; ?>
    392                             <td onmouseover="link=true;" class="wppm_table_td"><span style="<?php echo esc_attr($style); ?>"><?php echo isset($proj_end_date) ? esc_html($proj_end_date):"" ?></td></span>
     425                            <?php
     426                            if(!empty($proj_end_date) && $project->status!=4 && $proj_end_date < $current_date && ($proj_end_date != '0000-00-00 00:00:00' && $proj_end_date != '00-00-0000 00:00:00' && $proj_end_date != '00-00-0000' && $proj_end_date != '0000-00-00')) {
     427                              $style = "color:#FF0000";
     428                            } else {
     429                              $style = "color:#2C3E50";
     430                            } ?>
     431                            <td onmouseover="link=true;" class="wppm_table_td"><span style="<?php echo esc_attr($style); ?>"><?php echo isset($proj_end_date) ? esc_html($proj_end_date):"" ?></span></td>
    393432                    <?php } ?>
    394433                    <td onmouseover="link=true;" class="wppm_table_td"><?php echo isset($no_of_tasks) ? esc_html($no_of_tasks):"" ?></td>
  • taskbuilder/tags/4.0.5/includes/admin/projects/wppm_open_project.php

    r3312666 r3329577  
    1313$wppm_toolbar_actions = get_option('wppm_toolbar_actions');
    1414$wppm_date_setting = get_option('wppm_date_setting');
     15$wppm_proj_hide_comment_section = get_option('wppm_proj_hide_comment_section');
    1516$wppm_current_user_capability = get_user_meta( $current_user->ID, 'wppm_capability', true );
    1617$current_date = date('Y-m-d');
     
    7172      $proj_end_date = '0000-00-00 00:00:00';
    7273    }
    73   }else{
    74     if(!empty($wppm_date_setting)){
     74  }if($project->start_date!='0000-00-00 00:00:00'){
     75     if(!empty($wppm_date_setting)){
    7576      $proj_start_date = $psDate->format($wppm_date_setting);
     77    }else{
     78      $proj_start_date = isset($project->start_date)? $project->start_date:"";
     79    }
     80  }
     81  if($project->end_date!='0000-00-00 00:00:00'){
     82     if(!empty($wppm_date_setting)){
    7683      $proj_end_date = $peDate->format($wppm_date_setting);
    7784    }else{
    78       $proj_start_date = isset($project->start_date)? $project->start_date:"";
    7985      $proj_end_date = isset($project->end_date) ? $project->end_date: "" ;
    8086    }
     
    122128  }
    123129}
     130
    124131$project_data = $wppmfunction->get_project($id);
    125132$project_users = explode(",",$project_data['users']);
     
    210217                      <?php
    211218                        $pstatus = isset($project->status) ? $project->status :"";
    212                         $style = ($pstatus!=4 && $proj_end_date < $current_date) ? "color:#FF0000":"color:#2C3E50"; ?>
     219                        $style = (!empty($proj_end_date) && $pstatus!=4 && $proj_end_date < $current_date && ($proj_end_date != '0000-00-00 00:00:00' && $proj_end_date != '00-00-0000 00:00:00' && $proj_end_date != '00-00-0000' && $proj_end_date != '0000-00-00')) ? "color:#FF0000":"color:#2C3E50"; ?>
    213220                        <span class="wppm_project_details" id="wppm_edit_pend_date" style="<?php echo esc_attr($style); ?>"><?php echo (isset($proj_end_date))? esc_html($proj_end_date):"" ?></span>
    214221                      </div>
     
    237244          </div>
    238245        </div>
    239         <div id="wppm_proj_discussion_container">
     246        <div id="wppm_proj_discussion_container" style="<?php echo ($wppm_proj_hide_comment_section==0) ? 'display:none;' : 'display:block;' ?>">
    240247            <div class="row">
    241248              <div class="col-sm-12" style="margin-top:5px;">
     
    266273              </div>
    267274            </div>
    268           </div>
    269           <div class="wppm_thread_container">
    270           <?php
    271             if(!empty($project_comment)){
    272               foreach($project_comment as $comment){
    273                 $proj_comment_meta = $wpdb->get_row( "SELECT * FROM {$wpdb->prefix}wppm_project_comment_meta where proj_id='".esc_sql($id)."' AND comment_id='".esc_sql($comment->id)."'");
    274                 $user = get_userdata( $comment->created_by );
    275                 $comment_body = stripslashes((htmlspecialchars_decode($comment->body, ENT_QUOTES)));
    276                 $comment_body = preg_replace('#<script(.*?)>(.*?)</script>#is', '', $comment_body);
    277                 $date = date("Y-m-d H:i:s" ,strtotime($comment->create_time));
    278                 $thread_date = date("d F Y, h:i:s A" ,strtotime($date));
    279                 $attachment_ids = isset($comment->attachment_ids)? $comment->attachment_ids : '';
    280                 if($attachment_ids!=""){
    281                   $attachments = explode(",",$attachment_ids);
    282                 } else {
    283                   $attachments = array();
    284                 }
    285                 ?>
    286                 <div class="wppm_proj_thread">
    287                   <div class="wppm_thread_avatar">
    288                     <?php echo (get_avatar($comment->created_by, 40));?>
     275        </div>
     276        <div class="wppm_thread_container"  style="<?php echo ($wppm_proj_hide_comment_section==0) ? 'display:none;' : 'display:block;' ?>">
     277        <?php
     278          if(!empty($project_comment)){
     279            foreach($project_comment as $comment){
     280              $proj_comment_meta = $wpdb->get_row( "SELECT * FROM {$wpdb->prefix}wppm_project_comment_meta where proj_id='".esc_sql($id)."' AND comment_id='".esc_sql($comment->id)."'");
     281              $user = get_userdata( $comment->created_by );
     282              $comment_body = stripslashes((htmlspecialchars_decode($comment->body, ENT_QUOTES)));
     283              $comment_body = preg_replace('#<script(.*?)>(.*?)</script>#is', '', $comment_body);
     284              $date = date("Y-m-d H:i:s" ,strtotime($comment->create_time));
     285              $thread_date = date("d F Y, h:i:s A" ,strtotime($date));
     286              $attachment_ids = isset($comment->attachment_ids)? $comment->attachment_ids : '';
     287              if($attachment_ids!=""){
     288                $attachments = explode(",",$attachment_ids);
     289              } else {
     290                $attachments = array();
     291              }
     292              ?>
     293              <div class="wppm_proj_thread">
     294                <div class="wppm_thread_avatar">
     295                  <?php echo (get_avatar($comment->created_by, 40));?>
     296                </div>
     297                <div class="wppm_thread_body">
     298                  <div class="wppm_thread_user_name">
     299                    <strong style="color:<?php echo esc_attr($appearance_settings['comment-primary-color']);?>"><?php echo esc_html($user->display_name) ?></strong>
     300                    <span><?php if(!empty($comment->body) && (isset($proj_comment_meta->comment_type) && $proj_comment_meta->comment_type=='change_proj_status')){
     301                      $comment_log_body = unserialize($comment->body);
     302                      $prev_status = $comment_log_body['prev_status'];
     303                      $new_status = $comment_log_body['new_status'];
     304                      if(isset($prev_status)){
     305                        $prev_status = esc_sql($prev_status);
     306                        $project_prev_status = $wpdb->get_row("SELECT * FROM {$wpdb->prefix}wppm_project_statuses where id = '$prev_status'");
     307                      }
     308                      if(isset($new_status)){
     309                        $new_status = esc_sql($new_status);
     310                        $project_new_status = $wpdb->get_row("SELECT * FROM {$wpdb->prefix}wppm_project_statuses where id= '$new_status'");
     311                      }
     312                      esc_html_e("changed status from $project_prev_status->name to $project_new_status->name","taskbuilder");
     313                    }
     314                    if(!empty($comment->body) && (isset($proj_comment_meta->comment_type) && $proj_comment_meta->comment_type=='change_proj_creator')){
     315                      $comment_log_body = unserialize($comment->body);
     316                      $prev_user = $comment_log_body['prev_user'];
     317                      $new_user = $comment_log_body['new_user'];
     318                      $prev_user_data = get_userdata($prev_user);
     319                      $new_user_data = get_userdata($new_user);
     320                      esc_html_e("changed creator from $prev_user_data->display_name to $new_user_data->display_name","taskbuilder");
     321                    }if(!empty($comment->body) && (isset($proj_comment_meta->comment_type) && $proj_comment_meta->comment_type=='change_assign_user')){
     322                      esc_html_e("changed the Assignee","taskbuilder");
     323                  }if(!empty($comment->body) && (isset($proj_comment_meta->comment_type) && $proj_comment_meta->comment_type=='change_proj_cat')){
     324                      $comment_log_body = unserialize($comment->body);
     325                      $prev_cat = $comment_log_body['prev_cat'];
     326                      $new_cat = $comment_log_body['new_cat'];
     327                      if(!empty($prev_cat)){
     328                        $prev_cat = esc_sql($prev_cat);
     329                        $project_prev_cat = $wpdb->get_row("SELECT * FROM {$wpdb->prefix}wppm_project_categories where id= '$prev_cat'");
     330                      }
     331                      if(!empty($new_cat)){
     332                        $new_cat = esc_sql($new_cat);
     333                        $project_new_cat = $wpdb->get_row("SELECT * FROM {$wpdb->prefix}wppm_project_categories where id='$new_cat'");
     334                      }
     335                      $proj_prev_cat_name = !empty($project_prev_cat) ? $project_prev_cat->name: "None";
     336                      $proj_new_cat_name = !empty($project_new_cat) ? $project_new_cat->name: "None";
     337                      esc_html_e("changed category from $proj_prev_cat_name to $proj_new_cat_name","taskbuilder");
     338                  }
     339                    ?></span>
     340                    <small class="wppm_comment_date" style="color:<?php echo esc_attr($appearance_settings['comment-date-color']);?>"><i><?php echo esc_html($thread_date) ?></i></small>
     341                    <div class="wppm_thread_action">
     342                      <?php if(( (($current_user->has_cap('manage_options')) || ($wppmfunction->has_proj_comment_permission('edit_proj_comment',$id,$comment->id))) && ((empty($proj_comment_meta->comment_type))|| (isset($proj_comment_meta->comment_type) && $proj_comment_meta->comment_type=='comment')))){ ?>
     343                        <span title="Edit this thread" onclick="wppm_edit_proj_thread(<?php echo esc_attr($comment->id)?>,<?php echo esc_attr($id) ?>)"><img src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/edit1.svg'); ?>" alt="edit"></span>
     344                        <span title="Delete this thread" onclick="wppm_delete_proj_thread(<?php echo esc_attr($comment->id) ?>,<?php echo esc_attr($id) ?>)"><img src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/trash.svg'); ?>" alt="delete"></span>
     345                      <?php } ?>
     346                    </div>
    289347                  </div>
    290                   <div class="wppm_thread_body">
    291                     <div class="wppm_thread_user_name">
    292                       <strong style="color:<?php echo esc_attr($appearance_settings['comment-primary-color']);?>"><?php echo esc_html($user->display_name) ?></strong>
    293                       <span><?php if(!empty($comment->body) && (isset($proj_comment_meta->comment_type) && $proj_comment_meta->comment_type=='change_proj_status')){
    294                         $comment_log_body = unserialize($comment->body);
    295                         $prev_status = $comment_log_body['prev_status'];
    296                         $new_status = $comment_log_body['new_status'];
    297                         if(isset($prev_status)){
    298                           $prev_status = esc_sql($prev_status);
    299                           $project_prev_status = $wpdb->get_row("SELECT * FROM {$wpdb->prefix}wppm_project_statuses where id = '$prev_status'");
     348                  <div class="wppm_thread_messege" style="color:<?php echo esc_attr($appearance_settings['comment-secondary-color']);?>">
     349                    <?php
     350                    $allowedtags = array( 'br' => array(), 'abbr' => array('title' => array(),), 'p' => array(), 'strong' => array(), 'a' => array('href' => array(), 'title' => array(), 'target'=> array(), 'rel'=>array()),'em' =>array(),'span' =>array(), 'blockquote'=>array('cite'  => array(),),'div' => array('class' => array(),'title' => array(),'style' => array(),),'ul'=>array(),'li'=>array(),'ol'=>array(),'img' => array( 'alt'=> array(),'class' => array(),'height' => array(),'src'=> array(),'width'=> array(),));
     351                    if(!empty($comment_body) && ((empty($proj_comment_meta->comment_type)) || (isset($proj_comment_meta->comment_type) && $proj_comment_meta->comment_type=='comment') || $proj_comment_meta->comment_type=='delete_proj_comment')){
     352                      echo wp_kses(wpautop($comment_body),$allowedtags) ;
     353                    } elseif(!empty($comment_body) && (isset($proj_comment_meta->comment_type) && $proj_comment_meta->comment_type=='change_proj_status')){ ?>
     354                      <span class="wppm_admin_label" style="margin-right: 10px; background-color:<?php echo isset($project_prev_status->bg_color) ? esc_attr($project_prev_status->bg_color):""; ?>;color:<?php echo isset($project_prev_status->color) ? esc_attr($project_prev_status->color): "" ?>;"><?php echo isset($project_prev_status->name) ? esc_attr($project_prev_status->name) : "" ?></span> <img src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/arrow-right.svg'); ?>" alt="arrow_right"> <span class="wppm_admin_label" style="margin-left:10px; background-color:<?php echo isset($project_new_status->bg_color) ? esc_attr($project_new_status->bg_color):""; ?>;color:<?php echo isset($project_new_status->color) ? esc_attr($project_new_status->color): "" ?>;"><?php echo isset($project_new_status->name) ? esc_attr($project_new_status->name) : "" ?></span><?php
     355                    } elseif(!empty($comment_body) && (isset($proj_comment_meta->comment_type) && $proj_comment_meta->comment_type=='change_proj_creator')) { ?>
     356                      <span style="margin-right: 10px;"><?php echo isset($prev_user_data->display_name) ? esc_attr($prev_user_data->display_name) : "" ?></span> <img src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/arrow-right.svg'); ?>" alt="arrow_right"> <span style="margin-left:10px;"><?php echo isset($new_user_data->display_name) ? esc_attr($new_user_data->display_name) : "" ?></span><?php
     357                    } elseif(!empty($comment_body) && (isset($proj_comment_meta->comment_type) && $proj_comment_meta->comment_type=='change_assign_user')) {
     358                      $comment_log_body = unserialize($comment->body);
     359                      $prev_assign_user = $comment_log_body['prev_assign_user'];
     360                      $new_assign_user = $comment_log_body['new_assign_user'];
     361                      $prev_assign_user_array = array();
     362                      $new_assign_user_array = array();
     363                      if(!empty($prev_assign_user)){
     364                        $prev_assign_user_array = explode(",",$prev_assign_user);
     365                      }
     366                      if(!empty($new_assign_user)){
     367                        $new_assign_user_array = explode(",",$new_assign_user);
     368                      }
     369                      $assign_user_name = array();
     370                      $assign_user_name_str = "";
     371                      if(!empty($prev_assign_user_array)){
     372                        foreach($prev_assign_user_array as $val){
     373                          $assign_user = get_userdata($val);
     374                          $assign_user_name[] = $assign_user->display_name;
    300375                        }
    301                         if(isset($new_status)){
    302                           $new_status = esc_sql($new_status);
    303                           $project_new_status = $wpdb->get_row("SELECT * FROM {$wpdb->prefix}wppm_project_statuses where id= '$new_status'");
     376                        $assign_user_name_str = implode(",",$assign_user_name);
     377                      }
     378                      $new_assign_user_name = array();
     379                      $new_assign_user_name_str = "";
     380                      if(!empty($new_assign_user_array)){
     381                        foreach($new_assign_user_array as $val){
     382                          $new_assign_user = get_userdata($val);
     383                          $new_assign_user_name[] = $new_assign_user->display_name;
    304384                        }
    305                         esc_html_e("changed status from $project_prev_status->name to $project_new_status->name","taskbuilder");
    306                       }
    307                       if(!empty($comment->body) && (isset($proj_comment_meta->comment_type) && $proj_comment_meta->comment_type=='change_proj_creator')){
    308                         $comment_log_body = unserialize($comment->body);
    309                         $prev_user = $comment_log_body['prev_user'];
    310                         $new_user = $comment_log_body['new_user'];
    311                         $prev_user_data = get_userdata($prev_user);
    312                         $new_user_data = get_userdata($new_user);
    313                         esc_html_e("changed creator from $prev_user_data->display_name to $new_user_data->display_name","taskbuilder");
    314                       }if(!empty($comment->body) && (isset($proj_comment_meta->comment_type) && $proj_comment_meta->comment_type=='change_assign_user')){
    315                         esc_html_e("changed the Assignee","taskbuilder");
    316                      }if(!empty($comment->body) && (isset($proj_comment_meta->comment_type) && $proj_comment_meta->comment_type=='change_proj_cat')){
    317                         $comment_log_body = unserialize($comment->body);
    318                         $prev_cat = $comment_log_body['prev_cat'];
    319                         $new_cat = $comment_log_body['new_cat'];
    320                         if(!empty($prev_cat)){
    321                           $prev_cat = esc_sql($prev_cat);
    322                           $project_prev_cat = $wpdb->get_row("SELECT * FROM {$wpdb->prefix}wppm_project_categories where id= '$prev_cat'");
    323                         }
    324                         if(!empty($new_cat)){
    325                           $new_cat = esc_sql($new_cat);
    326                           $project_new_cat = $wpdb->get_row("SELECT * FROM {$wpdb->prefix}wppm_project_categories where id='$new_cat'");
    327                         }
    328                         $proj_prev_cat_name = !empty($project_prev_cat) ? $project_prev_cat->name: "None";
    329                         $proj_new_cat_name = !empty($project_new_cat) ? $project_new_cat->name: "None";
    330                         esc_html_e("changed category from $proj_prev_cat_name to $proj_new_cat_name","taskbuilder");
    331                     }
    332                       ?></span>
    333                       <small class="wppm_comment_date" style="color:<?php echo esc_attr($appearance_settings['comment-date-color']);?>"><i><?php echo esc_html($thread_date) ?></i></small>
    334                       <div class="wppm_thread_action">
    335                         <?php if(( (($current_user->has_cap('manage_options')) || ($wppmfunction->has_proj_comment_permission('edit_proj_comment',$id,$comment->id))) && ((empty($proj_comment_meta->comment_type))|| (isset($proj_comment_meta->comment_type) && $proj_comment_meta->comment_type=='comment')))){ ?>
    336                           <span title="Edit this thread" onclick="wppm_edit_proj_thread(<?php echo esc_attr($comment->id)?>,<?php echo esc_attr($id) ?>)"><img src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/edit1.svg'); ?>" alt="edit"></span>
    337                           <span title="Delete this thread" onclick="wppm_delete_proj_thread(<?php echo esc_attr($comment->id) ?>,<?php echo esc_attr($id) ?>)"><img src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/trash.svg'); ?>" alt="delete"></span>
    338                         <?php } ?>
    339                       </div>
    340                     </div>
    341                     <div class="wppm_thread_messege" style="color:<?php echo esc_attr($appearance_settings['comment-secondary-color']);?>">
    342                       <?php
    343                       $allowedtags = array( 'br' => array(), 'abbr' => array('title' => array(),), 'p' => array(), 'strong' => array(), 'a' => array('href' => array(), 'title' => array(), 'target'=> array(), 'rel'=>array()),'em' =>array(),'span' =>array(), 'blockquote'=>array('cite'  => array(),),'div' => array('class' => array(),'title' => array(),'style' => array(),),'ul'=>array(),'li'=>array(),'ol'=>array(),'img' => array( 'alt'=> array(),'class' => array(),'height' => array(),'src'=> array(),'width'=> array(),));
    344                       if(!empty($comment_body) && ((empty($proj_comment_meta->comment_type)) || (isset($proj_comment_meta->comment_type) && $proj_comment_meta->comment_type=='comment') || $proj_comment_meta->comment_type=='delete_proj_comment')){
    345                         echo wp_kses(wpautop($comment_body),$allowedtags) ;
    346                       } elseif(!empty($comment_body) && (isset($proj_comment_meta->comment_type) && $proj_comment_meta->comment_type=='change_proj_status')){ ?>
    347                         <span class="wppm_admin_label" style="margin-right: 10px; background-color:<?php echo isset($project_prev_status->bg_color) ? esc_attr($project_prev_status->bg_color):""; ?>;color:<?php echo isset($project_prev_status->color) ? esc_attr($project_prev_status->color): "" ?>;"><?php echo isset($project_prev_status->name) ? esc_attr($project_prev_status->name) : "" ?></span> <img src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/arrow-right.svg'); ?>" alt="arrow_right"> <span class="wppm_admin_label" style="margin-left:10px; background-color:<?php echo isset($project_new_status->bg_color) ? esc_attr($project_new_status->bg_color):""; ?>;color:<?php echo isset($project_new_status->color) ? esc_attr($project_new_status->color): "" ?>;"><?php echo isset($project_new_status->name) ? esc_attr($project_new_status->name) : "" ?></span><?php
    348                       } elseif(!empty($comment_body) && (isset($proj_comment_meta->comment_type) && $proj_comment_meta->comment_type=='change_proj_creator')) { ?>
    349                         <span style="margin-right: 10px;"><?php echo isset($prev_user_data->display_name) ? esc_attr($prev_user_data->display_name) : "" ?></span> <img src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/arrow-right.svg'); ?>" alt="arrow_right"> <span style="margin-left:10px;"><?php echo isset($new_user_data->display_name) ? esc_attr($new_user_data->display_name) : "" ?></span><?php
    350                       } elseif(!empty($comment_body) && (isset($proj_comment_meta->comment_type) && $proj_comment_meta->comment_type=='change_assign_user')) {
    351                         $comment_log_body = unserialize($comment->body);
    352                         $prev_assign_user = $comment_log_body['prev_assign_user'];
    353                         $new_assign_user = $comment_log_body['new_assign_user'];
    354                         $prev_assign_user_array = array();
    355                         $new_assign_user_array = array();
    356                         if(!empty($prev_assign_user)){
    357                           $prev_assign_user_array = explode(",",$prev_assign_user);
    358                         }
    359                         if(!empty($new_assign_user)){
    360                           $new_assign_user_array = explode(",",$new_assign_user);
    361                         }
    362                         $assign_user_name = array();
    363                         $assign_user_name_str = "";
    364                         if(!empty($prev_assign_user_array)){
    365                           foreach($prev_assign_user_array as $val){
    366                             $assign_user = get_userdata($val);
    367                             $assign_user_name[] = $assign_user->display_name;
     385                        $new_assign_user_name_str = implode(",",$new_assign_user_name);
     386                      }
     387                      ?>
     388                      <span style="margin-right: 10px;"><?php echo !empty($assign_user_name) ? esc_attr( $assign_user_name_str) : " None" ?></span> <img src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/arrow-right.svg'); ?>" alt="arrow_right"> <span style="margin-left:10px;"><?php echo !empty($new_assign_user_name_str) ? esc_attr($new_assign_user_name_str) : "None" ?></span><?php
     389                    }elseif(isset($proj_comment_meta->comment_type) && $proj_comment_meta->comment_type=='change_proj_cat'){ ?>
     390                      <span style="margin-right: 10px;"><?php echo !empty($project_prev_cat->name) ? esc_attr($project_prev_cat->name) : " None" ?></span> <img src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/arrow-right.svg'); ?>" alt="arrow_right"> <span style="margin-left:10px;"><?php echo !empty($project_new_cat->name) ? esc_attr($project_new_cat->name) : "None" ?></span><?php
     391                    } ?>
     392
     393                  </div>
     394                  <?php
     395                  if(!empty($attachments) && !(isset($proj_comment_meta->comment_type) && $proj_comment_meta->comment_type=='delete_proj_comment')):?> <br>
     396                    <strong class="wppm_attachment_title"><?php echo esc_html_e('Attachments','taskbuilder');?>:</strong><br>
     397                    <table class="wppm_attachment_tbl">
     398                      <tbody>
     399                      <?php
     400                      if(!empty($attachments)){
     401                        foreach( $attachments as $attachment ):
     402                          $download_url = site_url('/').'?wppm_attachment='.$attachment.'&pid='.$id.'&pac='.$auth_id;
     403                          $attachment = esc_sql($attachment);
     404                          $attach = $wpdb->get_row( "SELECT * FROM {$wpdb->prefix}wppm_attachments where id='$attachment'");
     405                          $findStr = ".txt";
     406                          if(!empty( $attach)){
     407                            $attachment_name = preg_replace('/' . $findStr . '/', "", $attach->name, 1);
     408                            $attachment_name = sanitize_file_name($attachment_name);
    368409                          }
    369                           $assign_user_name_str = implode(",",$assign_user_name);
    370                         }
    371                         $new_assign_user_name = array();
    372                         $new_assign_user_name_str = "";
    373                         if(!empty($new_assign_user_array)){
    374                           foreach($new_assign_user_array as $val){
    375                             $new_assign_user = get_userdata($val);
    376                             $new_assign_user_name[] = $new_assign_user->display_name;
    377                           }
    378                           $new_assign_user_name_str = implode(",",$new_assign_user_name);
    379                         }
    380                         ?>
    381                         <span style="margin-right: 10px;"><?php echo !empty($assign_user_name) ? esc_attr( $assign_user_name_str) : " None" ?></span> <img src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/arrow-right.svg'); ?>" alt="arrow_right"> <span style="margin-left:10px;"><?php echo !empty($new_assign_user_name_str) ? esc_attr($new_assign_user_name_str) : "None" ?></span><?php
    382                       }elseif(isset($proj_comment_meta->comment_type) && $proj_comment_meta->comment_type=='change_proj_cat'){ ?>
    383                         <span style="margin-right: 10px;"><?php echo !empty($project_prev_cat->name) ? esc_attr($project_prev_cat->name) : " None" ?></span> <img src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/arrow-right.svg'); ?>" alt="arrow_right"> <span style="margin-left:10px;"><?php echo !empty($project_new_cat->name) ? esc_attr($project_new_cat->name) : "None" ?></span><?php
     410                          if((!empty($attachment_name))){
     411                            ?>
     412                            <tr class="wppm_attachment_tr">
     413                              <td>
     414                                <a class="wppm_attachment_link" href="<?php echo esc_url($download_url) ?>" target="_blank">
     415                                <span class="wppm_attachment_file_name" style="padding: 7px;"><?php echo isset($attach->file_name) ? esc_html($attach->file_name):"";?></span></a>
     416                                <?php if((($comment->created_by == $current_user->ID) || ($current_user->has_cap('manage_options')) || ($wppmfunction->has_proj_comment_permission('edit_proj_comment',$id,$comment->id)))){ ?>
     417                                  <span class="wppm_thread_action_btn" onclick="wppm_proj_thread_attachment_remove(this,<?php echo isset($attach->id)? esc_attr($attach->id):''; ?>,<?php echo isset($comment->id)? esc_attr($comment->id):''; ?>,<?php echo isset($comment->proj_id) ? esc_attr($comment->proj_id):'';?>)"><img src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/cancel.svg'); ?>" alt="cancel"></span>
     418                                <?php } ?>
     419                              </td>
     420                            </tr>
     421                          <?php }
     422                        endforeach;
    384423                      } ?>
    385 
    386                     </div>
    387                     <?php
    388                     if(!empty($attachments) && !(isset($proj_comment_meta->comment_type) && $proj_comment_meta->comment_type=='delete_proj_comment')):?> <br>
    389                       <strong class="wppm_attachment_title"><?php echo esc_html_e('Attachments','taskbuilder');?>:</strong><br>
    390                       <table class="wppm_attachment_tbl">
    391                         <tbody>
    392                         <?php
    393                         if(!empty($attachments)){
    394                           foreach( $attachments as $attachment ):
    395                             $download_url = site_url('/').'?wppm_attachment='.$attachment.'&pid='.$id.'&pac='.$auth_id;
    396                             $attachment = esc_sql($attachment);
    397                             $attach = $wpdb->get_row( "SELECT * FROM {$wpdb->prefix}wppm_attachments where id='$attachment'");
    398                             $findStr = ".txt";
    399                             if(!empty( $attach)){
    400                               $attachment_name = preg_replace('/' . $findStr . '/', "", $attach->name, 1);
    401                               $attachment_name = sanitize_file_name($attachment_name);
    402                             }
    403                             if((!empty($attachment_name))){
    404                               ?>
    405                               <tr class="wppm_attachment_tr">
    406                                 <td>
    407                                   <a class="wppm_attachment_link" href="<?php echo esc_url($download_url) ?>" target="_blank">
    408                                   <span class="wppm_attachment_file_name" style="padding: 7px;"><?php echo isset($attach->file_name) ? esc_html($attach->file_name):"";?></span></a>
    409                                   <?php if((($comment->created_by == $current_user->ID) || ($current_user->has_cap('manage_options')) || ($wppmfunction->has_proj_comment_permission('edit_proj_comment',$id,$comment->id)))){ ?>
    410                                     <span class="wppm_thread_action_btn" onclick="wppm_proj_thread_attachment_remove(this,<?php echo isset($attach->id)? esc_attr($attach->id):''; ?>,<?php echo isset($comment->id)? esc_attr($comment->id):''; ?>,<?php echo isset($comment->proj_id) ? esc_attr($comment->proj_id):'';?>)"><img src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/cancel.svg'); ?>" alt="cancel"></span>
    411                                   <?php } ?>
    412                                 </td>
    413                               </tr>
    414                             <?php }
    415                           endforeach;
    416                         } ?>
    417                         </tbody>
    418                       </table>
    419                       <input type="hidden" name="wppm_proj_thread_attachment_remove_ajax_nonce" id="wppm_proj_thread_attachment_remove" value="<?php echo esc_attr( wp_create_nonce( 'wppm_remove_proj_thread_attachment' ) ); ?>">
    420                     <?php do_action('wppm_after_project_comment_attachment',$id,$comment->id);?>
    421                     <?php endif;?>
    422                   </div>
     424                      </tbody>
     425                    </table>
     426                    <input type="hidden" name="wppm_proj_thread_attachment_remove_ajax_nonce" id="wppm_proj_thread_attachment_remove" value="<?php echo esc_attr( wp_create_nonce( 'wppm_remove_proj_thread_attachment' ) ); ?>">
     427                  <?php do_action('wppm_after_project_comment_attachment',$id,$comment->id);?>
     428                  <?php endif;?>
    423429                </div>
    424             <?php }
    425             } ?>
    426           </div>
     430              </div>
     431          <?php }
     432          } ?>
    427433        </div>
     434      </div>
    428435      <div class="wppm_individual_project_widget col-sm-4 wppm_sidebar col-md-3">
    429436        <div class="row wppm_widget" id="wppm_project_status_widget">
  • taskbuilder/tags/4.0.5/includes/admin/settings/wppm_get_advanced_settings.php

    r3079882 r3329577  
    77$wppm_public_projects_permission = get_option('wppm_public_projects_permission');
    88$wppm_ap_settings = get_option("wppm-ap-settings");
     9$project_statuses = $wpdb->get_results("SELECT * FROM {$wpdb->prefix}wppm_project_statuses");
     10$task_statuses = $wpdb->get_results("SELECT * FROM {$wpdb->prefix}wppm_task_statuses");
     11$wppm_hide_proj_statuses_from_frontend = get_option('wppm_hide_proj_statuses_from_frontend');
     12if(!empty($wppm_hide_proj_statuses_from_frontend)){
     13  $wppm_hide_proj_statuses_from_frontend = explode(',', $wppm_hide_proj_statuses_from_frontend);
     14} else {
     15  $wppm_hide_proj_statuses_from_frontend = array();
     16}
     17$wppm_hide_task_statuses_from_frontend = get_option('wppm_hide_task_statuses_from_frontend');
     18if(!empty($wppm_hide_task_statuses_from_frontend)){
     19  $wppm_hide_task_statuses_from_frontend = explode(',', $wppm_hide_task_statuses_from_frontend);
     20} else {
     21  $wppm_hide_task_statuses_from_frontend = array();
     22}
    923?>
    1024<form id="wppm_frm_advanced_settings" method="post" action="javascript:wppm_set_advanced_settings();">
     
    2539    </select>
    2640    <hr>
     41    <br>
     42    <span>
     43      <label><?php echo esc_html_e('Default hide selected statuses projects from frontend ','taskbuilder');?></label>
     44    </span><br>
     45    <div class="checkboxes-group">
     46        <?php
     47        foreach ( $project_statuses as $status ) :
     48            ?>
     49            <div class="inner-group">
     50                <?php
     51                  $checked = (in_array($status->id, $wppm_hide_proj_statuses_from_frontend)) ? 'checked' : '';
     52                ?>
     53                <input name="wppm_hide_proj_statuses_from_frontend[]" type="checkbox" <?php echo esc_attr( $checked ); ?> value="<?php echo esc_attr( $status->id ); ?>">
     54                <?php echo esc_attr( $status->name ); ?>
     55            </div>
     56            <?php
     57        endforeach;
     58        ?>
     59    </div>
     60    <hr>
     61    <br>
     62     <span>
     63      <label><?php echo esc_html_e(' Default hide selected statuses tasks from frontend ','taskbuilder');?></label>
     64    </span><br>
     65    <div class="checkboxes-group">
     66        <?php
     67        foreach ( $task_statuses as $status ) :
     68            ?>
     69            <div class="inner-group">
     70                <?php
     71                  $checked = (in_array($status->id, $wppm_hide_task_statuses_from_frontend)) ? 'checked' : '';
     72                ?>
     73                <input name="wppm_hide_task_statuses_from_frontend[]" type="checkbox" <?php echo esc_attr( $checked ); ?> value="<?php echo esc_attr( $status->id ); ?>">
     74                <?php echo esc_attr( $status->name ); ?>
     75            </div>
     76            <?php
     77        endforeach;
     78        ?>
     79    </div>
     80    <hr>
     81    <br>
    2782    <button type="submit" class="wppm-submit-btn" style="background-color:<?php echo esc_attr($wppm_ap_settings['save-changes-button-bg-color'])?>!important;color:<?php echo esc_attr($wppm_ap_settings['save-changes-button-text-color'])?>!important;"><?php echo esc_html_e('Save Changes','taskbuilder');?></button>
    2883    <span class="wppm_submit_wait" style="display:none;"><img src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/loading_buffer.svg'); ?>" alt="edit"></span> 
  • taskbuilder/tags/4.0.5/includes/admin/settings/wppm_get_general_settings.php

    r3312666 r3329577  
    1919$wppm_tinymce_visibility_open_task = get_option('wppm_tinymce_visibility_open_task');
    2020$wppm_tinymce_visibility_open_project = get_option('wppm_tinymce_visibility_open_project');
     21$wppm_hide_completed_status_proj = get_option('wppm_hide_completed_status_proj');
     22$wppm_hide_completed_status_task = get_option('wppm_hide_completed_status_task');
     23$wppm_proj_hide_comment_section = get_option('wppm_proj_hide_comment_section');
     24$wppm_task_hide_comment_section = get_option('wppm_task_hide_comment_section');
    2125?>
    2226<form id="wppm_frm_general_settings" method="post" action="javascript:wppm_set_general_settings();">
     
    154158    <br>
    155159    <hr>
     160    <span>
     161      <label><?php echo esc_html_e('Default Show/hide completed status\'s projects from project list ','taskbuilder');?></label>
     162    </span><br>
     163    <p class="help-block"><?php echo esc_html_e('Default show/hide completed status\'s projects from project list.','taskbuilder');?></p>
     164    <input type="radio" name="wppm_hide_completed_status_proj" style="margin-top: 0px;" value="1" <?php echo ((esc_attr($wppm_hide_completed_status_proj))==1) ?'checked="checked"':'';?>>
     165    <span style="padding-left: 10px;"><?php echo esc_html_e('Show','taskbuilder');?></span>
     166    <br>
     167    <input type="radio" name="wppm_hide_completed_status_proj" style="margin-top: 0px;" value="0" <?php echo ((esc_attr($wppm_hide_completed_status_proj))==0) ?'checked="checked"':'';?>>
     168    <span style="padding-left: 10px;"><?php echo esc_html_e('Hide','taskbuilder');?></span>
     169    <br>
     170    <hr>
     171    <span>
     172    <label><?php echo esc_html_e('Default Show/hide completed status\'s tasks from task list ','taskbuilder');?></label>
     173    </span><br>
     174    <p class="help-block"><?php echo esc_html_e('Default show/hide completed status\'s tasks from task list.','taskbuilder');?></p>
     175    <input type="radio" name="wppm_hide_completed_status_task" style="margin-top: 0px;" value="1" <?php echo ((esc_attr($wppm_hide_completed_status_task))==1) ?'checked="checked"':'';?>>
     176    <span style="padding-left: 10px;"><?php echo esc_html_e('Show','taskbuilder');?></span>
     177    <br>
     178    <input type="radio" name="wppm_hide_completed_status_task" style="margin-top: 0px;" value="0" <?php echo ((esc_attr($wppm_hide_completed_status_task))==0) ?'checked="checked"':'';?>>
     179    <span style="padding-left: 10px;"><?php echo esc_html_e('Hide','taskbuilder');?></span>
     180    <br>
     181    <hr>
     182    <span> 
     183      <label><?php echo esc_html_e('Default show comment section in open project ','taskbuilder');?></label>
     184    </span><br>
     185    <p class="help-block"><?php echo esc_html_e('Default show/hide comment section in open project.','taskbuilder');?></p>
     186    <input type="radio" name="wppm_proj_comment_section" style="margin-top: 0px;" value="1" <?php echo ((esc_attr($wppm_proj_hide_comment_section))==1) ?'checked="checked"':'';?>>
     187    <span style="padding-left: 10px;"><?php echo esc_html_e('Show','taskbuilder');?></span>
     188    <br>
     189    <input type="radio" name="wppm_proj_comment_section" style="margin-top: 0px;" value="0" <?php echo ((esc_attr($wppm_proj_hide_comment_section))==0) ?'checked="checked"':'';?>>
     190    <span style="padding-left: 10px;"><?php echo esc_html_e('Hide','taskbuilder');?></span>
     191    <br>
     192    <hr>
     193    <span>
     194      <label><?php echo esc_html_e('Default show comment section in open task ','taskbuilder');?></label>
     195    </span><br>
     196    <p class="help-block"><?php echo esc_html_e('Default show/hide comment section in open task.','taskbuilder');?></p>
     197    <input type="radio" name="wppm_task_comment_section" style="margin-top: 0px;" value="1" <?php echo ((esc_attr($wppm_task_hide_comment_section))==1) ?'checked="checked"':'';?>>
     198    <span style="padding-left: 10px;"><?php echo esc_html_e('Show','taskbuilder');?></span>
     199    <br>
     200    <input type="radio" name="wppm_task_comment_section" style="margin-top: 0px;" value="0" <?php echo ((esc_attr($wppm_task_hide_comment_section))==0) ?'checked="checked"':'';?>>
     201    <span style="padding-left: 10px;"><?php echo esc_html_e('Hide','taskbuilder');?></span>
     202    <br>
     203    <hr>
    156204    <button type="submit" class="wppm-submit-btn" style="background-color:<?php echo esc_attr($wppm_ap_settings['save-changes-button-bg-color'])?>!important;color:<?php echo esc_attr($wppm_ap_settings['save-changes-button-text-color'])?>!important;"><?php echo esc_html_e('Save Changes','taskbuilder');?></button>
    157205    <span class="wppm_submit_wait" style="display:none;"><img src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/loading_buffer.svg'); ?>" alt="edit"></span> 
  • taskbuilder/tags/4.0.5/includes/admin/settings/wppm_set_advanced_settings.php

    r3142140 r3329577  
    1515$wppm_public_projects_permission = isset($_POST) && isset(($_POST['wppm_public_projects_permission'])) ? sanitize_text_field($_POST['wppm_public_projects_permission']) : '0';
    1616update_option('wppm_public_projects_permission',$wppm_public_projects_permission);
     17$wppm_hide_proj_statuses_from_frontend = isset($_POST) && isset(($_POST['wppm_hide_proj_statuses_from_frontend'])) ? $wppmfunction->sanitize_array($_POST['wppm_hide_proj_statuses_from_frontend']) : array();
     18if (!empty($wppm_hide_proj_statuses_from_frontend)) {
     19    $wppm_hide_proj_statuses_from_frontend = implode(',', $wppm_hide_proj_statuses_from_frontend);
     20}
     21update_option('wppm_hide_proj_statuses_from_frontend',$wppm_hide_proj_statuses_from_frontend);
     22
     23$wppm_hide_task_statuses_from_frontend = isset($_POST) && isset(($_POST['wppm_hide_task_statuses_from_frontend'])) ? $wppmfunction->sanitize_array($_POST['wppm_hide_task_statuses_from_frontend']) : array();
     24if (!empty($wppm_hide_task_statuses_from_frontend)) {
     25    $wppm_hide_task_statuses_from_frontend = implode(',', $wppm_hide_task_statuses_from_frontend);
     26}
     27update_option('wppm_hide_task_statuses_from_frontend',$wppm_hide_task_statuses_from_frontend);
     28
    1729do_action('wppm_set_advanced_settings');
    1830
  • taskbuilder/tags/4.0.5/includes/admin/settings/wppm_set_general_settings.php

    r3312666 r3329577  
    3333$wppm_date_setting = isset($_POST) && isset(($_POST['wppm_date_setting'])) ? sanitize_text_field($_POST['wppm_date_setting']) : 'Y-m-d H:i:s';
    3434update_option('wppm_date_setting',$wppm_date_setting);
     35$wppm_hide_completed_status_proj = isset($_POST) && isset(($_POST['wppm_hide_completed_status_proj'])) ? sanitize_text_field($_POST['wppm_hide_completed_status_proj']) : '1';
     36update_option('wppm_hide_completed_status_proj',$wppm_hide_completed_status_proj);
     37$wppm_hide_completed_status_task = isset($_POST) && isset(($_POST['wppm_hide_completed_status_task'])) ? sanitize_text_field($_POST['wppm_hide_completed_status_task']) : '1';
     38update_option('wppm_hide_completed_status_task',$wppm_hide_completed_status_task);
     39$wppm_proj_hide_comment_section = isset($_POST) && isset(($_POST['wppm_proj_comment_section'])) ? sanitize_text_field($_POST['wppm_proj_comment_section']) : '1';
     40update_option('wppm_proj_hide_comment_section',$wppm_proj_hide_comment_section);
     41$wppm_task_hide_comment_section = isset($_POST) && isset(($_POST['wppm_task_comment_section'])) ? sanitize_text_field($_POST['wppm_task_comment_section']) : '1';
     42update_option('wppm_task_hide_comment_section',$wppm_task_hide_comment_section);
    3543do_action('wppm_set_general_settings');
    3644
  • taskbuilder/tags/4.0.5/includes/admin/tasks/open_task/wppm_open_task.php

    r3312666 r3329577  
    1515$wppm_toolbar_actions = get_option('wppm_toolbar_actions');
    1616$wppm_date_setting = get_option('wppm_date_setting');
     17$wppm_task_hide_comment_section = get_option('wppm_task_hide_comment_section');
    1718$url_auth = false;
    1819$auth_id = $wppmfunction->wppm_get_auth_code($id);
     
    8990      $task_end_date = '0000-00-00 00:00:00';
    9091    }
    91   }else{
     92  }if($task->start_date!='0000-00-00 00:00:00'){
    9293    if(!empty($wppm_date_setting)){
    9394      $task_start_date = $tsDate->format($wppm_date_setting);
     95    }else{
     96      $task_start_date = isset($task->start_date)? $task->start_date:"";
     97    }
     98  }
     99  if($task->end_date!='0000-00-00 00:00:00'){
     100    if(!empty($wppm_date_setting)){
    94101      $task_end_date = $teDate->format($wppm_date_setting);
    95102    }else{
    96       $task_start_date = isset($task->start_date)? $task->start_date:"";
    97103      $task_end_date = isset($task->end_date) ? $task->end_date: "" ;
    98104    }
     
    125131        $task_end_date = '0000-00-00';
    126132      }
    127     }else{
    128     if($wppm_date_setting=='Y-m-d H:i:s'){
    129       $task_start_date = $tsDate->format('Y-m-d');
    130       $task_end_date = $teDate->format('Y-m-d');
    131     }elseif($wppm_date_setting=='d-m-Y H:i:s'){
    132       $task_start_date = $tsDate->format('d-m-Y');
    133       $task_end_date = $teDate->format('d-m-Y');
    134     }elseif($wppm_date_setting=='m-d-Y H:i:s'){
    135       $task_start_date = $tsDate->format('m-d-Y');
    136       $task_end_date = $teDate->format('m-d-Y');
    137     }else{
    138       $task_start_date = $tsDate->format('Y-m-d');
    139       $task_end_date = $teDate->format('Y-m-d');
     133    }if($task->start_date!='0000-00-00 00:00:00'){
     134        if($wppm_date_setting=='Y-m-d H:i:s'){
     135          $task_start_date = $tsDate->format('Y-m-d');
     136        }elseif($wppm_date_setting=='d-m-Y H:i:s'){
     137          $task_start_date = $tsDate->format('d-m-Y');
     138        }elseif($wppm_date_setting=='m-d-Y H:i:s'){
     139          $task_start_date = $tsDate->format('m-d-Y');
     140        }else{
     141          $task_start_date = $tsDate->format('Y-m-d');
     142        }
     143    }if($task->end_date!='0000-00-00 00:00:00'){
     144      if($wppm_date_setting=='Y-m-d H:i:s'){
     145          $task_end_date = $teDate->format('Y-m-d');
     146        }elseif($wppm_date_setting=='d-m-Y H:i:s'){
     147          $task_end_date = $teDate->format('d-m-Y');
     148        }elseif($wppm_date_setting=='m-d-Y H:i:s'){
     149          $task_end_date = $teDate->format('m-d-Y');
     150        }else{
     151          $task_end_date = $teDate->format('Y-m-d');
     152        }
    140153    }
    141   }
    142154}
    143155$flag = false;
     
    262274                  </div>
    263275                  <div class="col-sm-9">
    264                     <?php $style = ($task->status!=4 && $task->end_date < $current_date) ? "color:#FF0000":"color:#2C3E50"; ?>
     276                    <?php $style = (!empty($task->end_date) && ($task->status!=4 && $task->end_date < $current_date && $task->end_date != '0000-00-00 00:00:00' && $task->end_date != '00-00-0000 00:00:00' && $task->end_date != '00-00-0000' && $task->end_date != '0000-00-00')) ? "color:#FF0000":"color:#2C3E50"; ?>
    265277                    <span class="wppm_task_details" id="wppm_edit_tend_date" style="<?php echo esc_attr($style); ?>"><?php echo (isset($task_end_date))? esc_html($task_end_date):"" ?></span>
    266278                  </div>
     
    384396        } ?>
    385397      </div>
    386       <div id="wppm_activity_container">
     398      <div id="wppm_activity_container"  style="<?php echo ($wppm_task_hide_comment_section==0) ? 'display:none;' : 'display:block;' ?>">
    387399        <div class="row">
    388400          <div class="col-sm-12" style="margin-top:5px;">
     
    414426        </div>
    415427      </div>
    416       <div class="wppm_thread_container">
     428      <div class="wppm_thread_container"  style="<?php echo ($wppm_task_hide_comment_section==0) ? 'display:none;' : 'display:block;' ?>">
    417429        <?php
    418430            if(!empty($task_comment)){
  • taskbuilder/tags/4.0.5/includes/admin/tasks/wppm_tasks_list.php

    r3312666 r3329577  
    1717$orderby_proj_sql = esc_sql(sanitize_sql_orderby( "project_name" ));
    1818$wppm_date_setting = get_option('wppm_date_setting');
     19$wppm_hide_completed_status_task = get_option('wppm_hide_completed_status_task');
     20$wppm_hide_task_statuses_from_frontend = get_option('wppm_hide_task_statuses_from_frontend');
     21if(!empty($wppm_hide_task_statuses_from_frontend)){
     22  $wppm_hide_task_statuses_from_frontend = explode(",",$wppm_hide_task_statuses_from_frontend);
     23} else {
     24  $wppm_hide_task_statuses_from_frontend = '';
     25}
    1926$proj_attr = esc_sql($proj_attr);
    2027$is_frontend = 0;
     
    101108  $sort_by='task_priorities.name';
    102109}
     110if($filter_by=='all'){
     111  if($wppm_hide_completed_status_task == 0){
     112     $wppm_tl_filter = "Task.status!='4'";
     113  }
     114}
    103115if($filter_by=='4'){
    104116  $wppm_tl_filter = "Task.status='4'";
     
    115127}elseif($filter_by == 'mine'){
    116128  $wppm_tl_filter = "(FIND_IN_SET('$current_user->ID',Task.users)>0)";
     129}
     130
     131if(!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))){
     132  foreach($wppm_hide_task_statuses_from_frontend as $status){
     133    $wppm_tl_filter .= " AND Task.status != '$status'";
     134  }
    117135}
    118136if($proj_filter!=0){
     
    433451                        $task_end_date = '0000-00-00 00:00:00';
    434452                      }
    435                     }else{
     453                    }if($task->start_date!='0000-00-00 00:00:00'){
    436454                      if(!empty($wppm_date_setting)){
    437455                        $task_start_date = $tsDate->format($wppm_date_setting);
    438                         $task_end_date = $teDate->format($wppm_date_setting);
    439456                      } else {
    440457                        $task_start_date = isset($task->start_date)? $task->start_date:"";
     458                      }
     459                    }if($task->end_date!='0000-00-00 00:00:00'){
     460                      if(!empty($wppm_date_setting)){
     461                        $task_end_date = $teDate->format($wppm_date_setting);
     462                      }else{
    441463                        $task_end_date = isset($task->end_date) ? $task->end_date: "" ;
    442464                      }
     465
    443466                    }
    444467                  } elseif($wppm_task_time == 0){
     
    468491                          $task_end_date = '0000-00-00';
    469492                        }
    470                       }else{
     493                      }
     494                      if($task->start_date!='0000-00-00 00:00:00'){
    471495                        if($wppm_date_setting=='Y-m-d H:i:s'){
    472496                          $task_start_date = $tsDate->format('Y-m-d');
     497                        }elseif($wppm_date_setting=='d-m-Y H:i:s'){
     498                          $task_start_date = $tsDate->format('d-m-Y');                       
     499                        }elseif($wppm_date_setting=='m-d-Y H:i:s'){
     500                          $task_start_date = $tsDate->format('m-d-Y');
     501                        }else{
     502                          $task_start_date = $tsDate->format('Y-m-d');
     503                        }
     504                      }
     505                      if($task->end_date!='0000-00-00 00:00:00'){
     506                        if($wppm_date_setting=='Y-m-d H:i:s'){
    473507                          $task_end_date = $teDate->format('Y-m-d');
    474508                        }elseif($wppm_date_setting=='d-m-Y H:i:s'){
    475                           $task_start_date = $tsDate->format('d-m-Y');
    476509                          $task_end_date = $teDate->format('d-m-Y');
    477510                        }elseif($wppm_date_setting=='m-d-Y H:i:s'){
    478                           $task_start_date = $tsDate->format('m-d-Y');
    479511                          $task_end_date = $teDate->format('m-d-Y');
    480512                        }else{
    481                           $task_start_date = $tsDate->format('Y-m-d');
    482513                          $task_end_date = $teDate->format('Y-m-d');
    483514                        }
     
    521552                            </td>
    522553                            <td onmouseover="link=true;">
    523                             <?php if(!empty($task_end_date)){
    524                                   $style = ($task->status!=4 && $task_end_date < $current_date) ? "color:#FF0000":"color:#2C3E50";
    525                                   ?>
    526                                   <span style="<?php echo esc_attr($style); ?>"><?php echo esc_html_e($task_end_date,'taskbuilder');?></span><?php
    527                                   } ?>
     554                            <?php if(!empty($task_end_date) && ($task->status!=4 && $task_end_date < $current_date && $task_end_date != '0000-00-00 00:00:00' && $task_end_date != '00-00-0000 00:00:00' && $task_end_date != '00-00-0000' && $task_end_date != '0000-00-00')){
     555                                  $style =  "color:#FF0000";
     556                                  } else{
     557                                  $style = "color:#2C3E50";
     558                                  }?>
     559                                  <span style="<?php echo esc_attr($style); ?>"><?php echo esc_html_e($task_end_date,'taskbuilder');?></span>
    528560                            </td>
    529561                    <?php } ?>
  • taskbuilder/tags/4.0.5/includes/frontend/shortcode.php

    r3254059 r3329577  
    117117        dataform.append("page_no", page_no);
    118118        dataform.append("action", 'wppm_get_project_list');
     119        dataform.append("is_frontend", '1');
    119120        jQuery.ajax( {
    120121          url: wppm_admin.ajax_url,
     
    137138        dataform.append("sort_by", 'project_name');
    138139        dataform.append("order", 'ASC');
     140        dataform.append("is_frontend", '1');
    139141        <?php echo do_action('wppm_reset_project_dataform');?>
    140142        jQuery.ajax( {
     
    175177        dataform.append("action", 'wppm_get_project_list');
    176178        dataform.append("wppm_project_filter", wppm_project_filter);
     179        dataform.append("is_frontend", '1');
    177180        jQuery.ajax( {
    178181          url: wppm_admin.ajax_url,
     
    195198        dataform.append("action", 'wppm_get_project_list');
    196199        dataform.append("project_search", project_search);
     200        dataform.append("is_frontend", '1');
    197201        jQuery.ajax( {
    198202          url: wppm_admin.ajax_url,
     
    215219      dataform.append("sort_by", sort_by);
    216220      dataform.append("order", order);
     221      dataform.append("is_frontend", '1');
    217222      jQuery.ajax( {
    218223        url: wppm_admin.ajax_url,
     
    233238      dataform.append("action", 'wppm_get_project_tasks');
    234239      dataform.append("id",id);
     240      dataform.append("is_frontend", '1');
    235241      jQuery.ajax( {
    236242        url: wppm_admin.ajax_url,
  • taskbuilder/tags/4.0.5/includes/frontend/wppm_tasks_shortcode.php

    r3254059 r3329577  
    124124          dataform.append("page_no", page_no);
    125125          dataform.append("action", 'wppm_get_task_list');
     126          dataform.append("is_frontend", '1');
    126127          <?php
    127128          if(!empty($this->shortcode_attr['project'])){
     
    166167          <?php echo do_action('wppm_apply_task_filter_dataform');?>
    167168            dataform.append("wppm_task_filter", wppm_task_filter);
     169            dataform.append("is_frontend", '1');
    168170            dataform.append("action", 'wppm_get_task_list');
    169171            <?php if(!empty($this->shortcode_attr['project'])){ ?>
     
    191193          dataform.append("order", 'ASC');
    192194          dataform.append("wppm_proj_filter",0);
     195          dataform.append("is_frontend", '1');
    193196          <?php if(!empty($this->shortcode_attr['project'])){ ?>
    194197                  dataform.append("wppm_project_attr","<?php echo esc_attr($this->shortcode_attr['project']); ?>");
     
    214217          <?php echo do_action('wppm_task_search_filter_dataform');?>
    215218          dataform.append("action", 'wppm_get_task_list');
     219          dataform.append("is_frontend", '1');
    216220          <?php if(!empty($this->shortcode_attr['project'])){ ?>
    217221                  dataform.append("wppm_project_attr","<?php echo esc_attr($this->shortcode_attr['project']); ?>");
     
    238242          dataform.append("action", 'wppm_get_task_list_card_view');
    239243          dataform.append("task_search", task_search);
     244          dataform.append("is_frontend", '1');
    240245          <?php if(!empty($this->shortcode_attr['project'])){ ?>
    241246                  dataform.append("wppm_project_attr","<?php echo esc_attr($this->shortcode_attr['project']); ?>");
     
    261266          dataform.append("sort_by", sort_by);
    262267          dataform.append("order", order);
     268          dataform.append("is_frontend", '1');
    263269          <?php if(!empty($this->shortcode_attr['project'])){ ?>
    264270                  dataform.append("wppm_project_attr","<?php echo esc_attr($this->shortcode_attr['project']); ?>");
     
    290296          dataform.append("task_search", task_search);
    291297          dataform.append("page_no",page_no);
     298          dataform.append("is_frontend", '1');
    292299          <?php if(!empty($this->shortcode_attr['project'])){ ?>
    293300                  dataform.append("wppm_project_attr","<?php echo esc_attr($this->shortcode_attr['project']); ?>");
     
    312319          dataform.append("action", 'wppm_view_project_tasks');
    313320          dataform.append("wppm_task_filter", wppm_task_filter);
     321          dataform.append("is_frontend", '1');
    314322          <?php if(!empty($this->shortcode_attr['project'])){ ?>
    315323                  dataform.append("wppm_project_attr","<?php echo esc_attr($this->shortcode_attr['project']); ?>");
     
    337345          dataform.append("order", "ASC");
    338346          dataform.append("wppm_proj_filter","0");
     347          dataform.append("is_frontend", '1');
    339348          <?php if(!empty($this->shortcode_attr['project'])){ ?>
    340349                  dataform.append("wppm_project_attr","<?php echo esc_attr($this->shortcode_attr['project']); ?>");
     
    358367          dataform.append("action", 'wppm_get_task_list');
    359368          dataform.append("wppm_proj_filter",wppm_proj_filter);
     369          dataform.append("is_frontend", '1');
    360370          jQuery.ajax( {
    361371            url: wppm_admin.ajax_url,
     
    377387          dataform.append("action", 'wppm_view_project_tasks');
    378388          dataform.append("wppm_proj_filter",wppm_proj_filter);
     389          dataform.append("is_frontend", '1');
    379390          jQuery.ajax( {
    380391            url: wppm_admin.ajax_url,
  • taskbuilder/tags/4.0.5/includes/wppm-install.php

    r3312666 r3329577  
    462462        }
    463463
     464        if($installed_version < '4.0.5'){
     465            update_option('wppm_hide_completed_status_proj','1');
     466            update_option('wppm_hide_completed_status_task','1');
     467            update_option('wppm_hide_proj_statuses_from_frontend','0');
     468            update_option('wppm_hide_task_statuses_from_frontend','0');
     469            update_option('wppm_proj_hide_comment_section','1');
     470            update_option('wppm_task_hide_comment_section','1');
     471        }
     472
    464473        // update wppm_version option to plugin version
    465474        update_option( 'wppm_version', WPPM_VERSION );
  • taskbuilder/tags/4.0.5/readme.txt

    r3312666 r3329577  
    44Tags: project,project management,task management,task manager,Kanban
    55Requires at least: 4.4
    6 Tested up to: 6.8.1
    7 Stable tag: 4.0.4
     6Tested up to: 6.8.2
     7Stable tag: 4.0.5
    88License: GPL v3
    99
     
    5858* [Due Date Reminder](https://taskbuilder.net/due-date-reminder/) - Due date reminder are super helpful for keeping your team on track to hit deadlines. Email notification will send to customer before due date of task.
    5959* [Usergroup](https://taskbuilder.net/usergroup/) - Using usergroup add-on you can assign group of users to project and those group assign to project can be assign to tasks of project.
    60 * [Recurrent Task] (https://taskbuilder.net/recurrent-task/) - Recurrent Tasks add-on allow administrators to effortlessly schedule recurring tasks for routine tasks The system automatically generates these tasks at the defined times, providing a streamlined approach to essential and repetitive processes. With versatile recurrence periods, customizable scheduling options, and the ability to set start and end dates.
     60* [Recurrent Task](https://taskbuilder.net/recurrent-task/) - Recurrent Tasks add-on allow administrators to effortlessly schedule recurring tasks for routine tasks The system automatically generates these tasks at the defined times, providing a streamlined approach to essential and repetitive processes. With versatile recurrence periods, customizable scheduling options, and the ability to set start and end dates.
    6161
    6262## 👨‍💻 DOCUMENTATION AND SUPPORT ##
     
    7171* German (Germany)
    7272* German(formal)
     73* Turkey
    7374If you are a translator, you can get free access to all premium add-ons for a year in exchange for translating them into your language if it is not available already. We will renew the Premium subscription next year if you continue contributing to the translation. If interested, don't hesitate to contact us via our [support page](https://taskbuilder.net/support/).
    7475
     
    115116
    116117== Changelog ==
     118= V 4.0.5(July 17,2025) =
     119* New: Turkey Translation.
     120* New: Hide completed status from project list. Setting is added in (Dashboard > Projects > Settings > General > Default Show/hide completed status's projects from projects list).
     121* New: Hide completed status from task list. Setting is added in (Dashboard > Projects > Settings > General > Default Show/hide completed status's tasks from task list).
     122* New: Hide selected statuses projects from frontend. Setting is added in (Dashboard > Projects > Settings > Miscellaneous > Default hide selected statuses projects from frontend).
     123* New: Hide selected statuses tasks from frontend. Setting is added in (Dashboard > Projects > Settings > Miscellaneous > Default hide selected statuses tasks from frontend).
     124* New: Default show/hide comment section in open project. Setting is added in (Dashboard > Projects > Settings > General > Default show/hide comment section in open project).
     125* New: Default show/hide comment section in open task. Setting is added in (Dashboard > Projects > Settings > General > Default show/hide comment section in open task).
     126* Fix: When any value from start date/ end date not inserted on (project/task) list, other value shows empty.
     127* Fix: When end date is not added still it shows end date in red colour.
     128* Fix: In report add-on date is no showing in csv format report.
     129* New: Custom fields added in csv report.
     130
    117131= V 4.0.4(June 16, 2025) =
    118132* New: Date Format Setting added (Dashboard > Projects > Settings > General > Default date format).
  • taskbuilder/tags/4.0.5/taskbuilder.php

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

    r3312666 r3329577  
    15031503}
    15041504
    1505 #wppm_task_description, #wppm_proj_description{
     1505#wppm_task_description, #wppm_add_new_project #wppm_proj_description{
    15061506    height: 160px !important;
    15071507    width: 100% !important;
  • taskbuilder/trunk/includes/admin/projects/open_project/wppm_view_project_tasks.php

    r3312666 r3329577  
    1919$public_projects = isset($_POST['public_projects']) ? sanitize_text_field($_POST['public_projects']):"0";
    2020$wppm_current_user_capability = get_user_meta( $current_user->ID, 'wppm_capability', true );
     21$wppm_hide_completed_status_task = get_option('wppm_hide_completed_status_task');
     22$wppm_hide_task_statuses_from_frontend = get_option('wppm_hide_task_statuses_from_frontend');
     23if(!empty($wppm_hide_task_statuses_from_frontend)){
     24  $wppm_hide_task_statuses_from_frontend = explode(",",$wppm_hide_task_statuses_from_frontend);
     25} else {
     26  $wppm_hide_task_statuses_from_frontend = '';
     27}
    2128$filters = array(
    2229    'search' => $search_tag,
     
    7582);
    7683setcookie('wppm_grid_view_filters',wp_json_encode( $filters ),time() + 3600);
    77 
     84if($filter_by=='all'){
     85  if($wppm_hide_completed_status_task == 0){
     86     $wppm_tl_filter = "Task.status!='4'";
     87  }
     88}
    7889if($filter_by=='4'){
    7990    $wppm_tl_filter = "Task.status='4'";
     
    91102    $wppm_tl_filter = "(FIND_IN_SET('$current_user->ID',Task.users)>0)";
    92103}
     104
     105if(!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)){
     106  foreach($wppm_hide_task_statuses_from_frontend as $status){
     107    $wppm_tl_filter .= " AND Task.status != '$status'";
     108  }
     109}
     110
    93111if($proj_filter!=0){
    94112    $wppm_task_by_proj_filter = "Task.project = ".esc_sql($proj_filter)."";
  • taskbuilder/trunk/includes/admin/projects/projects_list.php

    r3312666 r3329577  
    1717$current_date = date('Y-m-d');
    1818$wppm_pl_filter = "1=1";
     19$wppm_hide_completed_status_proj = get_option('wppm_hide_completed_status_proj');
    1920$cu_id = esc_sql($current_user->ID);
     21$wppm_hide_proj_statuses_from_frontend = get_option('wppm_hide_proj_statuses_from_frontend');
     22if(!empty($wppm_hide_proj_statuses_from_frontend)){
     23  $wppm_hide_proj_statuses_from_frontend = explode(",",$wppm_hide_proj_statuses_from_frontend);
     24} else {
     25  $wppm_hide_proj_statuses_from_frontend = '';
     26}
    2027$filters = array(
    2128  'sort_by' => $sort_by,
     
    5966if($sort_by=='category'){
    6067  $sort_by = 'proj_categories.name';
     68}
     69if($filter_by=='all'){
     70  if($wppm_hide_completed_status_proj == 0){
     71     $wppm_pl_filter = "status!='4'";
     72  }
    6173}
    6274if($filter_by=='4'){
     
    7587    $wppm_pl_filter = "(FIND_IN_SET('$current_user->ID',users)>0)";
    7688}
     89
     90if(!empty($wppm_hide_proj_statuses_from_frontend) && is_array($wppm_hide_proj_statuses_from_frontend) && ((isset($_POST['is_frontend'])) && (sanitize_text_field($_POST['is_frontend'])==1))){
     91  foreach($wppm_hide_proj_statuses_from_frontend as $status){
     92    $wppm_pl_filter .= " AND status != '$status'";
     93  }
     94}
     95
    7796$wppm_project_time = get_option('wppm_project_time');
    7897$wppm_default_project_date = get_option('wppm_default_project_date');
     
    297316                         $proj_end_date = '0000-00-00 00:00:00';
    298317                      }
    299                     }else{
    300                       if(!empty($wppm_date_setting)){
     318                    }
     319                    if($project->start_date!='0000-00-00 00:00:00'){
     320                         if(!empty($wppm_date_setting)){
    301321                        $proj_start_date = $psDate->format($wppm_date_setting);
    302                         $proj_end_date = $peDate->format($wppm_date_setting);
    303                       }else{
    304                         $proj_start_date = isset($project->start_date)? $project->start_date:"";
    305                         $proj_end_date = isset($project->end_date) ? $project->end_date: "" ;
     322                        }else{
     323                          $proj_start_date = isset($project->start_date)? $project->start_date:"";
     324                        }
    306325                      }
     326                    if($project->end_date!='0000-00-00 00:00:00'){
     327                        if(!empty($wppm_date_setting)){
     328                          $proj_end_date = $peDate->format($wppm_date_setting);
     329                        }else{
     330                          $proj_end_date = isset($project->end_date) ? $project->end_date: "" ;
     331                        }
    307332                    }
    308333                  } elseif($wppm_project_time == 0){
     
    332357                          $proj_end_date = '0000-00-00';
    333358                        }
    334                       }else{
     359
     360                      }if($project->start_date!='0000-00-00 00:00:00'){
     361                         if($wppm_date_setting=='Y-m-d H:i:s'){
     362                          $proj_start_date = $psDate->format('Y-m-d');
     363                        }elseif($wppm_date_setting=='d-m-Y H:i:s'){
     364                          $proj_start_date = $psDate->format('d-m-Y');
     365                        }elseif($wppm_date_setting=='m-d-Y H:i:s'){
     366                          $proj_start_date = $psDate->format('m-d-Y');
     367                        }else{
     368                          $proj_start_date = $psDate->format('Y-m-d');
     369                        }
     370                      }
     371                    if($project->end_date!='0000-00-00 00:00:00'){
    335372                        if($wppm_date_setting=='Y-m-d H:i:s'){
    336                           $proj_start_date = $psDate->format('Y-m-d');
    337373                          $proj_end_date = $peDate->format('Y-m-d');
    338374                        }elseif($wppm_date_setting=='d-m-Y H:i:s'){
    339                           $proj_start_date = $psDate->format('d-m-Y');
    340375                          $proj_end_date = $peDate->format('d-m-Y');
    341376                        }elseif($wppm_date_setting=='m-d-Y H:i:s'){
    342                           $proj_start_date = $psDate->format('m-d-Y');
    343377                          $proj_end_date = $peDate->format('m-d-Y');
    344                         }else{
    345                           $proj_start_date = $psDate->format('Y-m-d');
    346                           $proj_end_date = $peDate->format('Y-m-d');
    347                         }
     378                            }else{
     379                              $proj_end_date = $peDate->format('Y-m-d');
     380                            }
    348381                    }
    349382                  }
     
    387420                    </td>
    388421                    <td onmouseover="link=true;" class="wppm_table_td"><?php echo isset($category) ? esc_html_e($category,'taskbuilder'): "" ?></td>
    389                     <?php if($wppm_default_project_date==1){ ?>
     422                    <?php if($wppm_default_project_date==1){
     423                            ?>
    390424                            <td onmouseover="link=true;" class="wppm_table_td"><?php echo isset($proj_start_date) ? esc_html($proj_start_date): "" ?></td>
    391                             <?php $style = ($project->status!=4 && $proj_end_date < $current_date) ? "color:#FF0000":"color:#2C3E50"; ?>
    392                             <td onmouseover="link=true;" class="wppm_table_td"><span style="<?php echo esc_attr($style); ?>"><?php echo isset($proj_end_date) ? esc_html($proj_end_date):"" ?></td></span>
     425                            <?php
     426                            if(!empty($proj_end_date) && $project->status!=4 && $proj_end_date < $current_date && ($proj_end_date != '0000-00-00 00:00:00' && $proj_end_date != '00-00-0000 00:00:00' && $proj_end_date != '00-00-0000' && $proj_end_date != '0000-00-00')) {
     427                              $style = "color:#FF0000";
     428                            } else {
     429                              $style = "color:#2C3E50";
     430                            } ?>
     431                            <td onmouseover="link=true;" class="wppm_table_td"><span style="<?php echo esc_attr($style); ?>"><?php echo isset($proj_end_date) ? esc_html($proj_end_date):"" ?></span></td>
    393432                    <?php } ?>
    394433                    <td onmouseover="link=true;" 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

    r3312666 r3329577  
    1313$wppm_toolbar_actions = get_option('wppm_toolbar_actions');
    1414$wppm_date_setting = get_option('wppm_date_setting');
     15$wppm_proj_hide_comment_section = get_option('wppm_proj_hide_comment_section');
    1516$wppm_current_user_capability = get_user_meta( $current_user->ID, 'wppm_capability', true );
    1617$current_date = date('Y-m-d');
     
    7172      $proj_end_date = '0000-00-00 00:00:00';
    7273    }
    73   }else{
    74     if(!empty($wppm_date_setting)){
     74  }if($project->start_date!='0000-00-00 00:00:00'){
     75     if(!empty($wppm_date_setting)){
    7576      $proj_start_date = $psDate->format($wppm_date_setting);
     77    }else{
     78      $proj_start_date = isset($project->start_date)? $project->start_date:"";
     79    }
     80  }
     81  if($project->end_date!='0000-00-00 00:00:00'){
     82     if(!empty($wppm_date_setting)){
    7683      $proj_end_date = $peDate->format($wppm_date_setting);
    7784    }else{
    78       $proj_start_date = isset($project->start_date)? $project->start_date:"";
    7985      $proj_end_date = isset($project->end_date) ? $project->end_date: "" ;
    8086    }
     
    122128  }
    123129}
     130
    124131$project_data = $wppmfunction->get_project($id);
    125132$project_users = explode(",",$project_data['users']);
     
    210217                      <?php
    211218                        $pstatus = isset($project->status) ? $project->status :"";
    212                         $style = ($pstatus!=4 && $proj_end_date < $current_date) ? "color:#FF0000":"color:#2C3E50"; ?>
     219                        $style = (!empty($proj_end_date) && $pstatus!=4 && $proj_end_date < $current_date && ($proj_end_date != '0000-00-00 00:00:00' && $proj_end_date != '00-00-0000 00:00:00' && $proj_end_date != '00-00-0000' && $proj_end_date != '0000-00-00')) ? "color:#FF0000":"color:#2C3E50"; ?>
    213220                        <span class="wppm_project_details" id="wppm_edit_pend_date" style="<?php echo esc_attr($style); ?>"><?php echo (isset($proj_end_date))? esc_html($proj_end_date):"" ?></span>
    214221                      </div>
     
    237244          </div>
    238245        </div>
    239         <div id="wppm_proj_discussion_container">
     246        <div id="wppm_proj_discussion_container" style="<?php echo ($wppm_proj_hide_comment_section==0) ? 'display:none;' : 'display:block;' ?>">
    240247            <div class="row">
    241248              <div class="col-sm-12" style="margin-top:5px;">
     
    266273              </div>
    267274            </div>
    268           </div>
    269           <div class="wppm_thread_container">
    270           <?php
    271             if(!empty($project_comment)){
    272               foreach($project_comment as $comment){
    273                 $proj_comment_meta = $wpdb->get_row( "SELECT * FROM {$wpdb->prefix}wppm_project_comment_meta where proj_id='".esc_sql($id)."' AND comment_id='".esc_sql($comment->id)."'");
    274                 $user = get_userdata( $comment->created_by );
    275                 $comment_body = stripslashes((htmlspecialchars_decode($comment->body, ENT_QUOTES)));
    276                 $comment_body = preg_replace('#<script(.*?)>(.*?)</script>#is', '', $comment_body);
    277                 $date = date("Y-m-d H:i:s" ,strtotime($comment->create_time));
    278                 $thread_date = date("d F Y, h:i:s A" ,strtotime($date));
    279                 $attachment_ids = isset($comment->attachment_ids)? $comment->attachment_ids : '';
    280                 if($attachment_ids!=""){
    281                   $attachments = explode(",",$attachment_ids);
    282                 } else {
    283                   $attachments = array();
    284                 }
    285                 ?>
    286                 <div class="wppm_proj_thread">
    287                   <div class="wppm_thread_avatar">
    288                     <?php echo (get_avatar($comment->created_by, 40));?>
     275        </div>
     276        <div class="wppm_thread_container"  style="<?php echo ($wppm_proj_hide_comment_section==0) ? 'display:none;' : 'display:block;' ?>">
     277        <?php
     278          if(!empty($project_comment)){
     279            foreach($project_comment as $comment){
     280              $proj_comment_meta = $wpdb->get_row( "SELECT * FROM {$wpdb->prefix}wppm_project_comment_meta where proj_id='".esc_sql($id)."' AND comment_id='".esc_sql($comment->id)."'");
     281              $user = get_userdata( $comment->created_by );
     282              $comment_body = stripslashes((htmlspecialchars_decode($comment->body, ENT_QUOTES)));
     283              $comment_body = preg_replace('#<script(.*?)>(.*?)</script>#is', '', $comment_body);
     284              $date = date("Y-m-d H:i:s" ,strtotime($comment->create_time));
     285              $thread_date = date("d F Y, h:i:s A" ,strtotime($date));
     286              $attachment_ids = isset($comment->attachment_ids)? $comment->attachment_ids : '';
     287              if($attachment_ids!=""){
     288                $attachments = explode(",",$attachment_ids);
     289              } else {
     290                $attachments = array();
     291              }
     292              ?>
     293              <div class="wppm_proj_thread">
     294                <div class="wppm_thread_avatar">
     295                  <?php echo (get_avatar($comment->created_by, 40));?>
     296                </div>
     297                <div class="wppm_thread_body">
     298                  <div class="wppm_thread_user_name">
     299                    <strong style="color:<?php echo esc_attr($appearance_settings['comment-primary-color']);?>"><?php echo esc_html($user->display_name) ?></strong>
     300                    <span><?php if(!empty($comment->body) && (isset($proj_comment_meta->comment_type) && $proj_comment_meta->comment_type=='change_proj_status')){
     301                      $comment_log_body = unserialize($comment->body);
     302                      $prev_status = $comment_log_body['prev_status'];
     303                      $new_status = $comment_log_body['new_status'];
     304                      if(isset($prev_status)){
     305                        $prev_status = esc_sql($prev_status);
     306                        $project_prev_status = $wpdb->get_row("SELECT * FROM {$wpdb->prefix}wppm_project_statuses where id = '$prev_status'");
     307                      }
     308                      if(isset($new_status)){
     309                        $new_status = esc_sql($new_status);
     310                        $project_new_status = $wpdb->get_row("SELECT * FROM {$wpdb->prefix}wppm_project_statuses where id= '$new_status'");
     311                      }
     312                      esc_html_e("changed status from $project_prev_status->name to $project_new_status->name","taskbuilder");
     313                    }
     314                    if(!empty($comment->body) && (isset($proj_comment_meta->comment_type) && $proj_comment_meta->comment_type=='change_proj_creator')){
     315                      $comment_log_body = unserialize($comment->body);
     316                      $prev_user = $comment_log_body['prev_user'];
     317                      $new_user = $comment_log_body['new_user'];
     318                      $prev_user_data = get_userdata($prev_user);
     319                      $new_user_data = get_userdata($new_user);
     320                      esc_html_e("changed creator from $prev_user_data->display_name to $new_user_data->display_name","taskbuilder");
     321                    }if(!empty($comment->body) && (isset($proj_comment_meta->comment_type) && $proj_comment_meta->comment_type=='change_assign_user')){
     322                      esc_html_e("changed the Assignee","taskbuilder");
     323                  }if(!empty($comment->body) && (isset($proj_comment_meta->comment_type) && $proj_comment_meta->comment_type=='change_proj_cat')){
     324                      $comment_log_body = unserialize($comment->body);
     325                      $prev_cat = $comment_log_body['prev_cat'];
     326                      $new_cat = $comment_log_body['new_cat'];
     327                      if(!empty($prev_cat)){
     328                        $prev_cat = esc_sql($prev_cat);
     329                        $project_prev_cat = $wpdb->get_row("SELECT * FROM {$wpdb->prefix}wppm_project_categories where id= '$prev_cat'");
     330                      }
     331                      if(!empty($new_cat)){
     332                        $new_cat = esc_sql($new_cat);
     333                        $project_new_cat = $wpdb->get_row("SELECT * FROM {$wpdb->prefix}wppm_project_categories where id='$new_cat'");
     334                      }
     335                      $proj_prev_cat_name = !empty($project_prev_cat) ? $project_prev_cat->name: "None";
     336                      $proj_new_cat_name = !empty($project_new_cat) ? $project_new_cat->name: "None";
     337                      esc_html_e("changed category from $proj_prev_cat_name to $proj_new_cat_name","taskbuilder");
     338                  }
     339                    ?></span>
     340                    <small class="wppm_comment_date" style="color:<?php echo esc_attr($appearance_settings['comment-date-color']);?>"><i><?php echo esc_html($thread_date) ?></i></small>
     341                    <div class="wppm_thread_action">
     342                      <?php if(( (($current_user->has_cap('manage_options')) || ($wppmfunction->has_proj_comment_permission('edit_proj_comment',$id,$comment->id))) && ((empty($proj_comment_meta->comment_type))|| (isset($proj_comment_meta->comment_type) && $proj_comment_meta->comment_type=='comment')))){ ?>
     343                        <span title="Edit this thread" onclick="wppm_edit_proj_thread(<?php echo esc_attr($comment->id)?>,<?php echo esc_attr($id) ?>)"><img src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/edit1.svg'); ?>" alt="edit"></span>
     344                        <span title="Delete this thread" onclick="wppm_delete_proj_thread(<?php echo esc_attr($comment->id) ?>,<?php echo esc_attr($id) ?>)"><img src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/trash.svg'); ?>" alt="delete"></span>
     345                      <?php } ?>
     346                    </div>
    289347                  </div>
    290                   <div class="wppm_thread_body">
    291                     <div class="wppm_thread_user_name">
    292                       <strong style="color:<?php echo esc_attr($appearance_settings['comment-primary-color']);?>"><?php echo esc_html($user->display_name) ?></strong>
    293                       <span><?php if(!empty($comment->body) && (isset($proj_comment_meta->comment_type) && $proj_comment_meta->comment_type=='change_proj_status')){
    294                         $comment_log_body = unserialize($comment->body);
    295                         $prev_status = $comment_log_body['prev_status'];
    296                         $new_status = $comment_log_body['new_status'];
    297                         if(isset($prev_status)){
    298                           $prev_status = esc_sql($prev_status);
    299                           $project_prev_status = $wpdb->get_row("SELECT * FROM {$wpdb->prefix}wppm_project_statuses where id = '$prev_status'");
     348                  <div class="wppm_thread_messege" style="color:<?php echo esc_attr($appearance_settings['comment-secondary-color']);?>">
     349                    <?php
     350                    $allowedtags = array( 'br' => array(), 'abbr' => array('title' => array(),), 'p' => array(), 'strong' => array(), 'a' => array('href' => array(), 'title' => array(), 'target'=> array(), 'rel'=>array()),'em' =>array(),'span' =>array(), 'blockquote'=>array('cite'  => array(),),'div' => array('class' => array(),'title' => array(),'style' => array(),),'ul'=>array(),'li'=>array(),'ol'=>array(),'img' => array( 'alt'=> array(),'class' => array(),'height' => array(),'src'=> array(),'width'=> array(),));
     351                    if(!empty($comment_body) && ((empty($proj_comment_meta->comment_type)) || (isset($proj_comment_meta->comment_type) && $proj_comment_meta->comment_type=='comment') || $proj_comment_meta->comment_type=='delete_proj_comment')){
     352                      echo wp_kses(wpautop($comment_body),$allowedtags) ;
     353                    } elseif(!empty($comment_body) && (isset($proj_comment_meta->comment_type) && $proj_comment_meta->comment_type=='change_proj_status')){ ?>
     354                      <span class="wppm_admin_label" style="margin-right: 10px; background-color:<?php echo isset($project_prev_status->bg_color) ? esc_attr($project_prev_status->bg_color):""; ?>;color:<?php echo isset($project_prev_status->color) ? esc_attr($project_prev_status->color): "" ?>;"><?php echo isset($project_prev_status->name) ? esc_attr($project_prev_status->name) : "" ?></span> <img src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/arrow-right.svg'); ?>" alt="arrow_right"> <span class="wppm_admin_label" style="margin-left:10px; background-color:<?php echo isset($project_new_status->bg_color) ? esc_attr($project_new_status->bg_color):""; ?>;color:<?php echo isset($project_new_status->color) ? esc_attr($project_new_status->color): "" ?>;"><?php echo isset($project_new_status->name) ? esc_attr($project_new_status->name) : "" ?></span><?php
     355                    } elseif(!empty($comment_body) && (isset($proj_comment_meta->comment_type) && $proj_comment_meta->comment_type=='change_proj_creator')) { ?>
     356                      <span style="margin-right: 10px;"><?php echo isset($prev_user_data->display_name) ? esc_attr($prev_user_data->display_name) : "" ?></span> <img src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/arrow-right.svg'); ?>" alt="arrow_right"> <span style="margin-left:10px;"><?php echo isset($new_user_data->display_name) ? esc_attr($new_user_data->display_name) : "" ?></span><?php
     357                    } elseif(!empty($comment_body) && (isset($proj_comment_meta->comment_type) && $proj_comment_meta->comment_type=='change_assign_user')) {
     358                      $comment_log_body = unserialize($comment->body);
     359                      $prev_assign_user = $comment_log_body['prev_assign_user'];
     360                      $new_assign_user = $comment_log_body['new_assign_user'];
     361                      $prev_assign_user_array = array();
     362                      $new_assign_user_array = array();
     363                      if(!empty($prev_assign_user)){
     364                        $prev_assign_user_array = explode(",",$prev_assign_user);
     365                      }
     366                      if(!empty($new_assign_user)){
     367                        $new_assign_user_array = explode(",",$new_assign_user);
     368                      }
     369                      $assign_user_name = array();
     370                      $assign_user_name_str = "";
     371                      if(!empty($prev_assign_user_array)){
     372                        foreach($prev_assign_user_array as $val){
     373                          $assign_user = get_userdata($val);
     374                          $assign_user_name[] = $assign_user->display_name;
    300375                        }
    301                         if(isset($new_status)){
    302                           $new_status = esc_sql($new_status);
    303                           $project_new_status = $wpdb->get_row("SELECT * FROM {$wpdb->prefix}wppm_project_statuses where id= '$new_status'");
     376                        $assign_user_name_str = implode(",",$assign_user_name);
     377                      }
     378                      $new_assign_user_name = array();
     379                      $new_assign_user_name_str = "";
     380                      if(!empty($new_assign_user_array)){
     381                        foreach($new_assign_user_array as $val){
     382                          $new_assign_user = get_userdata($val);
     383                          $new_assign_user_name[] = $new_assign_user->display_name;
    304384                        }
    305                         esc_html_e("changed status from $project_prev_status->name to $project_new_status->name","taskbuilder");
    306                       }
    307                       if(!empty($comment->body) && (isset($proj_comment_meta->comment_type) && $proj_comment_meta->comment_type=='change_proj_creator')){
    308                         $comment_log_body = unserialize($comment->body);
    309                         $prev_user = $comment_log_body['prev_user'];
    310                         $new_user = $comment_log_body['new_user'];
    311                         $prev_user_data = get_userdata($prev_user);
    312                         $new_user_data = get_userdata($new_user);
    313                         esc_html_e("changed creator from $prev_user_data->display_name to $new_user_data->display_name","taskbuilder");
    314                       }if(!empty($comment->body) && (isset($proj_comment_meta->comment_type) && $proj_comment_meta->comment_type=='change_assign_user')){
    315                         esc_html_e("changed the Assignee","taskbuilder");
    316                      }if(!empty($comment->body) && (isset($proj_comment_meta->comment_type) && $proj_comment_meta->comment_type=='change_proj_cat')){
    317                         $comment_log_body = unserialize($comment->body);
    318                         $prev_cat = $comment_log_body['prev_cat'];
    319                         $new_cat = $comment_log_body['new_cat'];
    320                         if(!empty($prev_cat)){
    321                           $prev_cat = esc_sql($prev_cat);
    322                           $project_prev_cat = $wpdb->get_row("SELECT * FROM {$wpdb->prefix}wppm_project_categories where id= '$prev_cat'");
    323                         }
    324                         if(!empty($new_cat)){
    325                           $new_cat = esc_sql($new_cat);
    326                           $project_new_cat = $wpdb->get_row("SELECT * FROM {$wpdb->prefix}wppm_project_categories where id='$new_cat'");
    327                         }
    328                         $proj_prev_cat_name = !empty($project_prev_cat) ? $project_prev_cat->name: "None";
    329                         $proj_new_cat_name = !empty($project_new_cat) ? $project_new_cat->name: "None";
    330                         esc_html_e("changed category from $proj_prev_cat_name to $proj_new_cat_name","taskbuilder");
    331                     }
    332                       ?></span>
    333                       <small class="wppm_comment_date" style="color:<?php echo esc_attr($appearance_settings['comment-date-color']);?>"><i><?php echo esc_html($thread_date) ?></i></small>
    334                       <div class="wppm_thread_action">
    335                         <?php if(( (($current_user->has_cap('manage_options')) || ($wppmfunction->has_proj_comment_permission('edit_proj_comment',$id,$comment->id))) && ((empty($proj_comment_meta->comment_type))|| (isset($proj_comment_meta->comment_type) && $proj_comment_meta->comment_type=='comment')))){ ?>
    336                           <span title="Edit this thread" onclick="wppm_edit_proj_thread(<?php echo esc_attr($comment->id)?>,<?php echo esc_attr($id) ?>)"><img src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/edit1.svg'); ?>" alt="edit"></span>
    337                           <span title="Delete this thread" onclick="wppm_delete_proj_thread(<?php echo esc_attr($comment->id) ?>,<?php echo esc_attr($id) ?>)"><img src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/trash.svg'); ?>" alt="delete"></span>
    338                         <?php } ?>
    339                       </div>
    340                     </div>
    341                     <div class="wppm_thread_messege" style="color:<?php echo esc_attr($appearance_settings['comment-secondary-color']);?>">
    342                       <?php
    343                       $allowedtags = array( 'br' => array(), 'abbr' => array('title' => array(),), 'p' => array(), 'strong' => array(), 'a' => array('href' => array(), 'title' => array(), 'target'=> array(), 'rel'=>array()),'em' =>array(),'span' =>array(), 'blockquote'=>array('cite'  => array(),),'div' => array('class' => array(),'title' => array(),'style' => array(),),'ul'=>array(),'li'=>array(),'ol'=>array(),'img' => array( 'alt'=> array(),'class' => array(),'height' => array(),'src'=> array(),'width'=> array(),));
    344                       if(!empty($comment_body) && ((empty($proj_comment_meta->comment_type)) || (isset($proj_comment_meta->comment_type) && $proj_comment_meta->comment_type=='comment') || $proj_comment_meta->comment_type=='delete_proj_comment')){
    345                         echo wp_kses(wpautop($comment_body),$allowedtags) ;
    346                       } elseif(!empty($comment_body) && (isset($proj_comment_meta->comment_type) && $proj_comment_meta->comment_type=='change_proj_status')){ ?>
    347                         <span class="wppm_admin_label" style="margin-right: 10px; background-color:<?php echo isset($project_prev_status->bg_color) ? esc_attr($project_prev_status->bg_color):""; ?>;color:<?php echo isset($project_prev_status->color) ? esc_attr($project_prev_status->color): "" ?>;"><?php echo isset($project_prev_status->name) ? esc_attr($project_prev_status->name) : "" ?></span> <img src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/arrow-right.svg'); ?>" alt="arrow_right"> <span class="wppm_admin_label" style="margin-left:10px; background-color:<?php echo isset($project_new_status->bg_color) ? esc_attr($project_new_status->bg_color):""; ?>;color:<?php echo isset($project_new_status->color) ? esc_attr($project_new_status->color): "" ?>;"><?php echo isset($project_new_status->name) ? esc_attr($project_new_status->name) : "" ?></span><?php
    348                       } elseif(!empty($comment_body) && (isset($proj_comment_meta->comment_type) && $proj_comment_meta->comment_type=='change_proj_creator')) { ?>
    349                         <span style="margin-right: 10px;"><?php echo isset($prev_user_data->display_name) ? esc_attr($prev_user_data->display_name) : "" ?></span> <img src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/arrow-right.svg'); ?>" alt="arrow_right"> <span style="margin-left:10px;"><?php echo isset($new_user_data->display_name) ? esc_attr($new_user_data->display_name) : "" ?></span><?php
    350                       } elseif(!empty($comment_body) && (isset($proj_comment_meta->comment_type) && $proj_comment_meta->comment_type=='change_assign_user')) {
    351                         $comment_log_body = unserialize($comment->body);
    352                         $prev_assign_user = $comment_log_body['prev_assign_user'];
    353                         $new_assign_user = $comment_log_body['new_assign_user'];
    354                         $prev_assign_user_array = array();
    355                         $new_assign_user_array = array();
    356                         if(!empty($prev_assign_user)){
    357                           $prev_assign_user_array = explode(",",$prev_assign_user);
    358                         }
    359                         if(!empty($new_assign_user)){
    360                           $new_assign_user_array = explode(",",$new_assign_user);
    361                         }
    362                         $assign_user_name = array();
    363                         $assign_user_name_str = "";
    364                         if(!empty($prev_assign_user_array)){
    365                           foreach($prev_assign_user_array as $val){
    366                             $assign_user = get_userdata($val);
    367                             $assign_user_name[] = $assign_user->display_name;
     385                        $new_assign_user_name_str = implode(",",$new_assign_user_name);
     386                      }
     387                      ?>
     388                      <span style="margin-right: 10px;"><?php echo !empty($assign_user_name) ? esc_attr( $assign_user_name_str) : " None" ?></span> <img src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/arrow-right.svg'); ?>" alt="arrow_right"> <span style="margin-left:10px;"><?php echo !empty($new_assign_user_name_str) ? esc_attr($new_assign_user_name_str) : "None" ?></span><?php
     389                    }elseif(isset($proj_comment_meta->comment_type) && $proj_comment_meta->comment_type=='change_proj_cat'){ ?>
     390                      <span style="margin-right: 10px;"><?php echo !empty($project_prev_cat->name) ? esc_attr($project_prev_cat->name) : " None" ?></span> <img src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/arrow-right.svg'); ?>" alt="arrow_right"> <span style="margin-left:10px;"><?php echo !empty($project_new_cat->name) ? esc_attr($project_new_cat->name) : "None" ?></span><?php
     391                    } ?>
     392
     393                  </div>
     394                  <?php
     395                  if(!empty($attachments) && !(isset($proj_comment_meta->comment_type) && $proj_comment_meta->comment_type=='delete_proj_comment')):?> <br>
     396                    <strong class="wppm_attachment_title"><?php echo esc_html_e('Attachments','taskbuilder');?>:</strong><br>
     397                    <table class="wppm_attachment_tbl">
     398                      <tbody>
     399                      <?php
     400                      if(!empty($attachments)){
     401                        foreach( $attachments as $attachment ):
     402                          $download_url = site_url('/').'?wppm_attachment='.$attachment.'&pid='.$id.'&pac='.$auth_id;
     403                          $attachment = esc_sql($attachment);
     404                          $attach = $wpdb->get_row( "SELECT * FROM {$wpdb->prefix}wppm_attachments where id='$attachment'");
     405                          $findStr = ".txt";
     406                          if(!empty( $attach)){
     407                            $attachment_name = preg_replace('/' . $findStr . '/', "", $attach->name, 1);
     408                            $attachment_name = sanitize_file_name($attachment_name);
    368409                          }
    369                           $assign_user_name_str = implode(",",$assign_user_name);
    370                         }
    371                         $new_assign_user_name = array();
    372                         $new_assign_user_name_str = "";
    373                         if(!empty($new_assign_user_array)){
    374                           foreach($new_assign_user_array as $val){
    375                             $new_assign_user = get_userdata($val);
    376                             $new_assign_user_name[] = $new_assign_user->display_name;
    377                           }
    378                           $new_assign_user_name_str = implode(",",$new_assign_user_name);
    379                         }
    380                         ?>
    381                         <span style="margin-right: 10px;"><?php echo !empty($assign_user_name) ? esc_attr( $assign_user_name_str) : " None" ?></span> <img src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/arrow-right.svg'); ?>" alt="arrow_right"> <span style="margin-left:10px;"><?php echo !empty($new_assign_user_name_str) ? esc_attr($new_assign_user_name_str) : "None" ?></span><?php
    382                       }elseif(isset($proj_comment_meta->comment_type) && $proj_comment_meta->comment_type=='change_proj_cat'){ ?>
    383                         <span style="margin-right: 10px;"><?php echo !empty($project_prev_cat->name) ? esc_attr($project_prev_cat->name) : " None" ?></span> <img src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/arrow-right.svg'); ?>" alt="arrow_right"> <span style="margin-left:10px;"><?php echo !empty($project_new_cat->name) ? esc_attr($project_new_cat->name) : "None" ?></span><?php
     410                          if((!empty($attachment_name))){
     411                            ?>
     412                            <tr class="wppm_attachment_tr">
     413                              <td>
     414                                <a class="wppm_attachment_link" href="<?php echo esc_url($download_url) ?>" target="_blank">
     415                                <span class="wppm_attachment_file_name" style="padding: 7px;"><?php echo isset($attach->file_name) ? esc_html($attach->file_name):"";?></span></a>
     416                                <?php if((($comment->created_by == $current_user->ID) || ($current_user->has_cap('manage_options')) || ($wppmfunction->has_proj_comment_permission('edit_proj_comment',$id,$comment->id)))){ ?>
     417                                  <span class="wppm_thread_action_btn" onclick="wppm_proj_thread_attachment_remove(this,<?php echo isset($attach->id)? esc_attr($attach->id):''; ?>,<?php echo isset($comment->id)? esc_attr($comment->id):''; ?>,<?php echo isset($comment->proj_id) ? esc_attr($comment->proj_id):'';?>)"><img src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/cancel.svg'); ?>" alt="cancel"></span>
     418                                <?php } ?>
     419                              </td>
     420                            </tr>
     421                          <?php }
     422                        endforeach;
    384423                      } ?>
    385 
    386                     </div>
    387                     <?php
    388                     if(!empty($attachments) && !(isset($proj_comment_meta->comment_type) && $proj_comment_meta->comment_type=='delete_proj_comment')):?> <br>
    389                       <strong class="wppm_attachment_title"><?php echo esc_html_e('Attachments','taskbuilder');?>:</strong><br>
    390                       <table class="wppm_attachment_tbl">
    391                         <tbody>
    392                         <?php
    393                         if(!empty($attachments)){
    394                           foreach( $attachments as $attachment ):
    395                             $download_url = site_url('/').'?wppm_attachment='.$attachment.'&pid='.$id.'&pac='.$auth_id;
    396                             $attachment = esc_sql($attachment);
    397                             $attach = $wpdb->get_row( "SELECT * FROM {$wpdb->prefix}wppm_attachments where id='$attachment'");
    398                             $findStr = ".txt";
    399                             if(!empty( $attach)){
    400                               $attachment_name = preg_replace('/' . $findStr . '/', "", $attach->name, 1);
    401                               $attachment_name = sanitize_file_name($attachment_name);
    402                             }
    403                             if((!empty($attachment_name))){
    404                               ?>
    405                               <tr class="wppm_attachment_tr">
    406                                 <td>
    407                                   <a class="wppm_attachment_link" href="<?php echo esc_url($download_url) ?>" target="_blank">
    408                                   <span class="wppm_attachment_file_name" style="padding: 7px;"><?php echo isset($attach->file_name) ? esc_html($attach->file_name):"";?></span></a>
    409                                   <?php if((($comment->created_by == $current_user->ID) || ($current_user->has_cap('manage_options')) || ($wppmfunction->has_proj_comment_permission('edit_proj_comment',$id,$comment->id)))){ ?>
    410                                     <span class="wppm_thread_action_btn" onclick="wppm_proj_thread_attachment_remove(this,<?php echo isset($attach->id)? esc_attr($attach->id):''; ?>,<?php echo isset($comment->id)? esc_attr($comment->id):''; ?>,<?php echo isset($comment->proj_id) ? esc_attr($comment->proj_id):'';?>)"><img src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/cancel.svg'); ?>" alt="cancel"></span>
    411                                   <?php } ?>
    412                                 </td>
    413                               </tr>
    414                             <?php }
    415                           endforeach;
    416                         } ?>
    417                         </tbody>
    418                       </table>
    419                       <input type="hidden" name="wppm_proj_thread_attachment_remove_ajax_nonce" id="wppm_proj_thread_attachment_remove" value="<?php echo esc_attr( wp_create_nonce( 'wppm_remove_proj_thread_attachment' ) ); ?>">
    420                     <?php do_action('wppm_after_project_comment_attachment',$id,$comment->id);?>
    421                     <?php endif;?>
    422                   </div>
     424                      </tbody>
     425                    </table>
     426                    <input type="hidden" name="wppm_proj_thread_attachment_remove_ajax_nonce" id="wppm_proj_thread_attachment_remove" value="<?php echo esc_attr( wp_create_nonce( 'wppm_remove_proj_thread_attachment' ) ); ?>">
     427                  <?php do_action('wppm_after_project_comment_attachment',$id,$comment->id);?>
     428                  <?php endif;?>
    423429                </div>
    424             <?php }
    425             } ?>
    426           </div>
     430              </div>
     431          <?php }
     432          } ?>
    427433        </div>
     434      </div>
    428435      <div class="wppm_individual_project_widget col-sm-4 wppm_sidebar col-md-3">
    429436        <div class="row wppm_widget" id="wppm_project_status_widget">
  • taskbuilder/trunk/includes/admin/settings/wppm_get_advanced_settings.php

    r3079882 r3329577  
    77$wppm_public_projects_permission = get_option('wppm_public_projects_permission');
    88$wppm_ap_settings = get_option("wppm-ap-settings");
     9$project_statuses = $wpdb->get_results("SELECT * FROM {$wpdb->prefix}wppm_project_statuses");
     10$task_statuses = $wpdb->get_results("SELECT * FROM {$wpdb->prefix}wppm_task_statuses");
     11$wppm_hide_proj_statuses_from_frontend = get_option('wppm_hide_proj_statuses_from_frontend');
     12if(!empty($wppm_hide_proj_statuses_from_frontend)){
     13  $wppm_hide_proj_statuses_from_frontend = explode(',', $wppm_hide_proj_statuses_from_frontend);
     14} else {
     15  $wppm_hide_proj_statuses_from_frontend = array();
     16}
     17$wppm_hide_task_statuses_from_frontend = get_option('wppm_hide_task_statuses_from_frontend');
     18if(!empty($wppm_hide_task_statuses_from_frontend)){
     19  $wppm_hide_task_statuses_from_frontend = explode(',', $wppm_hide_task_statuses_from_frontend);
     20} else {
     21  $wppm_hide_task_statuses_from_frontend = array();
     22}
    923?>
    1024<form id="wppm_frm_advanced_settings" method="post" action="javascript:wppm_set_advanced_settings();">
     
    2539    </select>
    2640    <hr>
     41    <br>
     42    <span>
     43      <label><?php echo esc_html_e('Default hide selected statuses projects from frontend ','taskbuilder');?></label>
     44    </span><br>
     45    <div class="checkboxes-group">
     46        <?php
     47        foreach ( $project_statuses as $status ) :
     48            ?>
     49            <div class="inner-group">
     50                <?php
     51                  $checked = (in_array($status->id, $wppm_hide_proj_statuses_from_frontend)) ? 'checked' : '';
     52                ?>
     53                <input name="wppm_hide_proj_statuses_from_frontend[]" type="checkbox" <?php echo esc_attr( $checked ); ?> value="<?php echo esc_attr( $status->id ); ?>">
     54                <?php echo esc_attr( $status->name ); ?>
     55            </div>
     56            <?php
     57        endforeach;
     58        ?>
     59    </div>
     60    <hr>
     61    <br>
     62     <span>
     63      <label><?php echo esc_html_e(' Default hide selected statuses tasks from frontend ','taskbuilder');?></label>
     64    </span><br>
     65    <div class="checkboxes-group">
     66        <?php
     67        foreach ( $task_statuses as $status ) :
     68            ?>
     69            <div class="inner-group">
     70                <?php
     71                  $checked = (in_array($status->id, $wppm_hide_task_statuses_from_frontend)) ? 'checked' : '';
     72                ?>
     73                <input name="wppm_hide_task_statuses_from_frontend[]" type="checkbox" <?php echo esc_attr( $checked ); ?> value="<?php echo esc_attr( $status->id ); ?>">
     74                <?php echo esc_attr( $status->name ); ?>
     75            </div>
     76            <?php
     77        endforeach;
     78        ?>
     79    </div>
     80    <hr>
     81    <br>
    2782    <button type="submit" class="wppm-submit-btn" style="background-color:<?php echo esc_attr($wppm_ap_settings['save-changes-button-bg-color'])?>!important;color:<?php echo esc_attr($wppm_ap_settings['save-changes-button-text-color'])?>!important;"><?php echo esc_html_e('Save Changes','taskbuilder');?></button>
    2883    <span class="wppm_submit_wait" style="display:none;"><img src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/loading_buffer.svg'); ?>" alt="edit"></span> 
  • taskbuilder/trunk/includes/admin/settings/wppm_get_general_settings.php

    r3312666 r3329577  
    1919$wppm_tinymce_visibility_open_task = get_option('wppm_tinymce_visibility_open_task');
    2020$wppm_tinymce_visibility_open_project = get_option('wppm_tinymce_visibility_open_project');
     21$wppm_hide_completed_status_proj = get_option('wppm_hide_completed_status_proj');
     22$wppm_hide_completed_status_task = get_option('wppm_hide_completed_status_task');
     23$wppm_proj_hide_comment_section = get_option('wppm_proj_hide_comment_section');
     24$wppm_task_hide_comment_section = get_option('wppm_task_hide_comment_section');
    2125?>
    2226<form id="wppm_frm_general_settings" method="post" action="javascript:wppm_set_general_settings();">
     
    154158    <br>
    155159    <hr>
     160    <span>
     161      <label><?php echo esc_html_e('Default Show/hide completed status\'s projects from project list ','taskbuilder');?></label>
     162    </span><br>
     163    <p class="help-block"><?php echo esc_html_e('Default show/hide completed status\'s projects from project list.','taskbuilder');?></p>
     164    <input type="radio" name="wppm_hide_completed_status_proj" style="margin-top: 0px;" value="1" <?php echo ((esc_attr($wppm_hide_completed_status_proj))==1) ?'checked="checked"':'';?>>
     165    <span style="padding-left: 10px;"><?php echo esc_html_e('Show','taskbuilder');?></span>
     166    <br>
     167    <input type="radio" name="wppm_hide_completed_status_proj" style="margin-top: 0px;" value="0" <?php echo ((esc_attr($wppm_hide_completed_status_proj))==0) ?'checked="checked"':'';?>>
     168    <span style="padding-left: 10px;"><?php echo esc_html_e('Hide','taskbuilder');?></span>
     169    <br>
     170    <hr>
     171    <span>
     172    <label><?php echo esc_html_e('Default Show/hide completed status\'s tasks from task list ','taskbuilder');?></label>
     173    </span><br>
     174    <p class="help-block"><?php echo esc_html_e('Default show/hide completed status\'s tasks from task list.','taskbuilder');?></p>
     175    <input type="radio" name="wppm_hide_completed_status_task" style="margin-top: 0px;" value="1" <?php echo ((esc_attr($wppm_hide_completed_status_task))==1) ?'checked="checked"':'';?>>
     176    <span style="padding-left: 10px;"><?php echo esc_html_e('Show','taskbuilder');?></span>
     177    <br>
     178    <input type="radio" name="wppm_hide_completed_status_task" style="margin-top: 0px;" value="0" <?php echo ((esc_attr($wppm_hide_completed_status_task))==0) ?'checked="checked"':'';?>>
     179    <span style="padding-left: 10px;"><?php echo esc_html_e('Hide','taskbuilder');?></span>
     180    <br>
     181    <hr>
     182    <span> 
     183      <label><?php echo esc_html_e('Default show comment section in open project ','taskbuilder');?></label>
     184    </span><br>
     185    <p class="help-block"><?php echo esc_html_e('Default show/hide comment section in open project.','taskbuilder');?></p>
     186    <input type="radio" name="wppm_proj_comment_section" style="margin-top: 0px;" value="1" <?php echo ((esc_attr($wppm_proj_hide_comment_section))==1) ?'checked="checked"':'';?>>
     187    <span style="padding-left: 10px;"><?php echo esc_html_e('Show','taskbuilder');?></span>
     188    <br>
     189    <input type="radio" name="wppm_proj_comment_section" style="margin-top: 0px;" value="0" <?php echo ((esc_attr($wppm_proj_hide_comment_section))==0) ?'checked="checked"':'';?>>
     190    <span style="padding-left: 10px;"><?php echo esc_html_e('Hide','taskbuilder');?></span>
     191    <br>
     192    <hr>
     193    <span>
     194      <label><?php echo esc_html_e('Default show comment section in open task ','taskbuilder');?></label>
     195    </span><br>
     196    <p class="help-block"><?php echo esc_html_e('Default show/hide comment section in open task.','taskbuilder');?></p>
     197    <input type="radio" name="wppm_task_comment_section" style="margin-top: 0px;" value="1" <?php echo ((esc_attr($wppm_task_hide_comment_section))==1) ?'checked="checked"':'';?>>
     198    <span style="padding-left: 10px;"><?php echo esc_html_e('Show','taskbuilder');?></span>
     199    <br>
     200    <input type="radio" name="wppm_task_comment_section" style="margin-top: 0px;" value="0" <?php echo ((esc_attr($wppm_task_hide_comment_section))==0) ?'checked="checked"':'';?>>
     201    <span style="padding-left: 10px;"><?php echo esc_html_e('Hide','taskbuilder');?></span>
     202    <br>
     203    <hr>
    156204    <button type="submit" class="wppm-submit-btn" style="background-color:<?php echo esc_attr($wppm_ap_settings['save-changes-button-bg-color'])?>!important;color:<?php echo esc_attr($wppm_ap_settings['save-changes-button-text-color'])?>!important;"><?php echo esc_html_e('Save Changes','taskbuilder');?></button>
    157205    <span class="wppm_submit_wait" style="display:none;"><img src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/loading_buffer.svg'); ?>" alt="edit"></span> 
  • taskbuilder/trunk/includes/admin/settings/wppm_set_advanced_settings.php

    r3142140 r3329577  
    1515$wppm_public_projects_permission = isset($_POST) && isset(($_POST['wppm_public_projects_permission'])) ? sanitize_text_field($_POST['wppm_public_projects_permission']) : '0';
    1616update_option('wppm_public_projects_permission',$wppm_public_projects_permission);
     17$wppm_hide_proj_statuses_from_frontend = isset($_POST) && isset(($_POST['wppm_hide_proj_statuses_from_frontend'])) ? $wppmfunction->sanitize_array($_POST['wppm_hide_proj_statuses_from_frontend']) : array();
     18if (!empty($wppm_hide_proj_statuses_from_frontend)) {
     19    $wppm_hide_proj_statuses_from_frontend = implode(',', $wppm_hide_proj_statuses_from_frontend);
     20}
     21update_option('wppm_hide_proj_statuses_from_frontend',$wppm_hide_proj_statuses_from_frontend);
     22
     23$wppm_hide_task_statuses_from_frontend = isset($_POST) && isset(($_POST['wppm_hide_task_statuses_from_frontend'])) ? $wppmfunction->sanitize_array($_POST['wppm_hide_task_statuses_from_frontend']) : array();
     24if (!empty($wppm_hide_task_statuses_from_frontend)) {
     25    $wppm_hide_task_statuses_from_frontend = implode(',', $wppm_hide_task_statuses_from_frontend);
     26}
     27update_option('wppm_hide_task_statuses_from_frontend',$wppm_hide_task_statuses_from_frontend);
     28
    1729do_action('wppm_set_advanced_settings');
    1830
  • taskbuilder/trunk/includes/admin/settings/wppm_set_general_settings.php

    r3312666 r3329577  
    3333$wppm_date_setting = isset($_POST) && isset(($_POST['wppm_date_setting'])) ? sanitize_text_field($_POST['wppm_date_setting']) : 'Y-m-d H:i:s';
    3434update_option('wppm_date_setting',$wppm_date_setting);
     35$wppm_hide_completed_status_proj = isset($_POST) && isset(($_POST['wppm_hide_completed_status_proj'])) ? sanitize_text_field($_POST['wppm_hide_completed_status_proj']) : '1';
     36update_option('wppm_hide_completed_status_proj',$wppm_hide_completed_status_proj);
     37$wppm_hide_completed_status_task = isset($_POST) && isset(($_POST['wppm_hide_completed_status_task'])) ? sanitize_text_field($_POST['wppm_hide_completed_status_task']) : '1';
     38update_option('wppm_hide_completed_status_task',$wppm_hide_completed_status_task);
     39$wppm_proj_hide_comment_section = isset($_POST) && isset(($_POST['wppm_proj_comment_section'])) ? sanitize_text_field($_POST['wppm_proj_comment_section']) : '1';
     40update_option('wppm_proj_hide_comment_section',$wppm_proj_hide_comment_section);
     41$wppm_task_hide_comment_section = isset($_POST) && isset(($_POST['wppm_task_comment_section'])) ? sanitize_text_field($_POST['wppm_task_comment_section']) : '1';
     42update_option('wppm_task_hide_comment_section',$wppm_task_hide_comment_section);
    3543do_action('wppm_set_general_settings');
    3644
  • taskbuilder/trunk/includes/admin/tasks/open_task/wppm_open_task.php

    r3312666 r3329577  
    1515$wppm_toolbar_actions = get_option('wppm_toolbar_actions');
    1616$wppm_date_setting = get_option('wppm_date_setting');
     17$wppm_task_hide_comment_section = get_option('wppm_task_hide_comment_section');
    1718$url_auth = false;
    1819$auth_id = $wppmfunction->wppm_get_auth_code($id);
     
    8990      $task_end_date = '0000-00-00 00:00:00';
    9091    }
    91   }else{
     92  }if($task->start_date!='0000-00-00 00:00:00'){
    9293    if(!empty($wppm_date_setting)){
    9394      $task_start_date = $tsDate->format($wppm_date_setting);
     95    }else{
     96      $task_start_date = isset($task->start_date)? $task->start_date:"";
     97    }
     98  }
     99  if($task->end_date!='0000-00-00 00:00:00'){
     100    if(!empty($wppm_date_setting)){
    94101      $task_end_date = $teDate->format($wppm_date_setting);
    95102    }else{
    96       $task_start_date = isset($task->start_date)? $task->start_date:"";
    97103      $task_end_date = isset($task->end_date) ? $task->end_date: "" ;
    98104    }
     
    125131        $task_end_date = '0000-00-00';
    126132      }
    127     }else{
    128     if($wppm_date_setting=='Y-m-d H:i:s'){
    129       $task_start_date = $tsDate->format('Y-m-d');
    130       $task_end_date = $teDate->format('Y-m-d');
    131     }elseif($wppm_date_setting=='d-m-Y H:i:s'){
    132       $task_start_date = $tsDate->format('d-m-Y');
    133       $task_end_date = $teDate->format('d-m-Y');
    134     }elseif($wppm_date_setting=='m-d-Y H:i:s'){
    135       $task_start_date = $tsDate->format('m-d-Y');
    136       $task_end_date = $teDate->format('m-d-Y');
    137     }else{
    138       $task_start_date = $tsDate->format('Y-m-d');
    139       $task_end_date = $teDate->format('Y-m-d');
     133    }if($task->start_date!='0000-00-00 00:00:00'){
     134        if($wppm_date_setting=='Y-m-d H:i:s'){
     135          $task_start_date = $tsDate->format('Y-m-d');
     136        }elseif($wppm_date_setting=='d-m-Y H:i:s'){
     137          $task_start_date = $tsDate->format('d-m-Y');
     138        }elseif($wppm_date_setting=='m-d-Y H:i:s'){
     139          $task_start_date = $tsDate->format('m-d-Y');
     140        }else{
     141          $task_start_date = $tsDate->format('Y-m-d');
     142        }
     143    }if($task->end_date!='0000-00-00 00:00:00'){
     144      if($wppm_date_setting=='Y-m-d H:i:s'){
     145          $task_end_date = $teDate->format('Y-m-d');
     146        }elseif($wppm_date_setting=='d-m-Y H:i:s'){
     147          $task_end_date = $teDate->format('d-m-Y');
     148        }elseif($wppm_date_setting=='m-d-Y H:i:s'){
     149          $task_end_date = $teDate->format('m-d-Y');
     150        }else{
     151          $task_end_date = $teDate->format('Y-m-d');
     152        }
    140153    }
    141   }
    142154}
    143155$flag = false;
     
    262274                  </div>
    263275                  <div class="col-sm-9">
    264                     <?php $style = ($task->status!=4 && $task->end_date < $current_date) ? "color:#FF0000":"color:#2C3E50"; ?>
     276                    <?php $style = (!empty($task->end_date) && ($task->status!=4 && $task->end_date < $current_date && $task->end_date != '0000-00-00 00:00:00' && $task->end_date != '00-00-0000 00:00:00' && $task->end_date != '00-00-0000' && $task->end_date != '0000-00-00')) ? "color:#FF0000":"color:#2C3E50"; ?>
    265277                    <span class="wppm_task_details" id="wppm_edit_tend_date" style="<?php echo esc_attr($style); ?>"><?php echo (isset($task_end_date))? esc_html($task_end_date):"" ?></span>
    266278                  </div>
     
    384396        } ?>
    385397      </div>
    386       <div id="wppm_activity_container">
     398      <div id="wppm_activity_container"  style="<?php echo ($wppm_task_hide_comment_section==0) ? 'display:none;' : 'display:block;' ?>">
    387399        <div class="row">
    388400          <div class="col-sm-12" style="margin-top:5px;">
     
    414426        </div>
    415427      </div>
    416       <div class="wppm_thread_container">
     428      <div class="wppm_thread_container"  style="<?php echo ($wppm_task_hide_comment_section==0) ? 'display:none;' : 'display:block;' ?>">
    417429        <?php
    418430            if(!empty($task_comment)){
  • taskbuilder/trunk/includes/admin/tasks/wppm_tasks_list.php

    r3312666 r3329577  
    1717$orderby_proj_sql = esc_sql(sanitize_sql_orderby( "project_name" ));
    1818$wppm_date_setting = get_option('wppm_date_setting');
     19$wppm_hide_completed_status_task = get_option('wppm_hide_completed_status_task');
     20$wppm_hide_task_statuses_from_frontend = get_option('wppm_hide_task_statuses_from_frontend');
     21if(!empty($wppm_hide_task_statuses_from_frontend)){
     22  $wppm_hide_task_statuses_from_frontend = explode(",",$wppm_hide_task_statuses_from_frontend);
     23} else {
     24  $wppm_hide_task_statuses_from_frontend = '';
     25}
    1926$proj_attr = esc_sql($proj_attr);
    2027$is_frontend = 0;
     
    101108  $sort_by='task_priorities.name';
    102109}
     110if($filter_by=='all'){
     111  if($wppm_hide_completed_status_task == 0){
     112     $wppm_tl_filter = "Task.status!='4'";
     113  }
     114}
    103115if($filter_by=='4'){
    104116  $wppm_tl_filter = "Task.status='4'";
     
    115127}elseif($filter_by == 'mine'){
    116128  $wppm_tl_filter = "(FIND_IN_SET('$current_user->ID',Task.users)>0)";
     129}
     130
     131if(!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))){
     132  foreach($wppm_hide_task_statuses_from_frontend as $status){
     133    $wppm_tl_filter .= " AND Task.status != '$status'";
     134  }
    117135}
    118136if($proj_filter!=0){
     
    433451                        $task_end_date = '0000-00-00 00:00:00';
    434452                      }
    435                     }else{
     453                    }if($task->start_date!='0000-00-00 00:00:00'){
    436454                      if(!empty($wppm_date_setting)){
    437455                        $task_start_date = $tsDate->format($wppm_date_setting);
    438                         $task_end_date = $teDate->format($wppm_date_setting);
    439456                      } else {
    440457                        $task_start_date = isset($task->start_date)? $task->start_date:"";
     458                      }
     459                    }if($task->end_date!='0000-00-00 00:00:00'){
     460                      if(!empty($wppm_date_setting)){
     461                        $task_end_date = $teDate->format($wppm_date_setting);
     462                      }else{
    441463                        $task_end_date = isset($task->end_date) ? $task->end_date: "" ;
    442464                      }
     465
    443466                    }
    444467                  } elseif($wppm_task_time == 0){
     
    468491                          $task_end_date = '0000-00-00';
    469492                        }
    470                       }else{
     493                      }
     494                      if($task->start_date!='0000-00-00 00:00:00'){
    471495                        if($wppm_date_setting=='Y-m-d H:i:s'){
    472496                          $task_start_date = $tsDate->format('Y-m-d');
     497                        }elseif($wppm_date_setting=='d-m-Y H:i:s'){
     498                          $task_start_date = $tsDate->format('d-m-Y');                       
     499                        }elseif($wppm_date_setting=='m-d-Y H:i:s'){
     500                          $task_start_date = $tsDate->format('m-d-Y');
     501                        }else{
     502                          $task_start_date = $tsDate->format('Y-m-d');
     503                        }
     504                      }
     505                      if($task->end_date!='0000-00-00 00:00:00'){
     506                        if($wppm_date_setting=='Y-m-d H:i:s'){
    473507                          $task_end_date = $teDate->format('Y-m-d');
    474508                        }elseif($wppm_date_setting=='d-m-Y H:i:s'){
    475                           $task_start_date = $tsDate->format('d-m-Y');
    476509                          $task_end_date = $teDate->format('d-m-Y');
    477510                        }elseif($wppm_date_setting=='m-d-Y H:i:s'){
    478                           $task_start_date = $tsDate->format('m-d-Y');
    479511                          $task_end_date = $teDate->format('m-d-Y');
    480512                        }else{
    481                           $task_start_date = $tsDate->format('Y-m-d');
    482513                          $task_end_date = $teDate->format('Y-m-d');
    483514                        }
     
    521552                            </td>
    522553                            <td onmouseover="link=true;">
    523                             <?php if(!empty($task_end_date)){
    524                                   $style = ($task->status!=4 && $task_end_date < $current_date) ? "color:#FF0000":"color:#2C3E50";
    525                                   ?>
    526                                   <span style="<?php echo esc_attr($style); ?>"><?php echo esc_html_e($task_end_date,'taskbuilder');?></span><?php
    527                                   } ?>
     554                            <?php if(!empty($task_end_date) && ($task->status!=4 && $task_end_date < $current_date && $task_end_date != '0000-00-00 00:00:00' && $task_end_date != '00-00-0000 00:00:00' && $task_end_date != '00-00-0000' && $task_end_date != '0000-00-00')){
     555                                  $style =  "color:#FF0000";
     556                                  } else{
     557                                  $style = "color:#2C3E50";
     558                                  }?>
     559                                  <span style="<?php echo esc_attr($style); ?>"><?php echo esc_html_e($task_end_date,'taskbuilder');?></span>
    528560                            </td>
    529561                    <?php } ?>
  • taskbuilder/trunk/includes/frontend/shortcode.php

    r3254059 r3329577  
    117117        dataform.append("page_no", page_no);
    118118        dataform.append("action", 'wppm_get_project_list');
     119        dataform.append("is_frontend", '1');
    119120        jQuery.ajax( {
    120121          url: wppm_admin.ajax_url,
     
    137138        dataform.append("sort_by", 'project_name');
    138139        dataform.append("order", 'ASC');
     140        dataform.append("is_frontend", '1');
    139141        <?php echo do_action('wppm_reset_project_dataform');?>
    140142        jQuery.ajax( {
     
    175177        dataform.append("action", 'wppm_get_project_list');
    176178        dataform.append("wppm_project_filter", wppm_project_filter);
     179        dataform.append("is_frontend", '1');
    177180        jQuery.ajax( {
    178181          url: wppm_admin.ajax_url,
     
    195198        dataform.append("action", 'wppm_get_project_list');
    196199        dataform.append("project_search", project_search);
     200        dataform.append("is_frontend", '1');
    197201        jQuery.ajax( {
    198202          url: wppm_admin.ajax_url,
     
    215219      dataform.append("sort_by", sort_by);
    216220      dataform.append("order", order);
     221      dataform.append("is_frontend", '1');
    217222      jQuery.ajax( {
    218223        url: wppm_admin.ajax_url,
     
    233238      dataform.append("action", 'wppm_get_project_tasks');
    234239      dataform.append("id",id);
     240      dataform.append("is_frontend", '1');
    235241      jQuery.ajax( {
    236242        url: wppm_admin.ajax_url,
  • taskbuilder/trunk/includes/frontend/wppm_tasks_shortcode.php

    r3254059 r3329577  
    124124          dataform.append("page_no", page_no);
    125125          dataform.append("action", 'wppm_get_task_list');
     126          dataform.append("is_frontend", '1');
    126127          <?php
    127128          if(!empty($this->shortcode_attr['project'])){
     
    166167          <?php echo do_action('wppm_apply_task_filter_dataform');?>
    167168            dataform.append("wppm_task_filter", wppm_task_filter);
     169            dataform.append("is_frontend", '1');
    168170            dataform.append("action", 'wppm_get_task_list');
    169171            <?php if(!empty($this->shortcode_attr['project'])){ ?>
     
    191193          dataform.append("order", 'ASC');
    192194          dataform.append("wppm_proj_filter",0);
     195          dataform.append("is_frontend", '1');
    193196          <?php if(!empty($this->shortcode_attr['project'])){ ?>
    194197                  dataform.append("wppm_project_attr","<?php echo esc_attr($this->shortcode_attr['project']); ?>");
     
    214217          <?php echo do_action('wppm_task_search_filter_dataform');?>
    215218          dataform.append("action", 'wppm_get_task_list');
     219          dataform.append("is_frontend", '1');
    216220          <?php if(!empty($this->shortcode_attr['project'])){ ?>
    217221                  dataform.append("wppm_project_attr","<?php echo esc_attr($this->shortcode_attr['project']); ?>");
     
    238242          dataform.append("action", 'wppm_get_task_list_card_view');
    239243          dataform.append("task_search", task_search);
     244          dataform.append("is_frontend", '1');
    240245          <?php if(!empty($this->shortcode_attr['project'])){ ?>
    241246                  dataform.append("wppm_project_attr","<?php echo esc_attr($this->shortcode_attr['project']); ?>");
     
    261266          dataform.append("sort_by", sort_by);
    262267          dataform.append("order", order);
     268          dataform.append("is_frontend", '1');
    263269          <?php if(!empty($this->shortcode_attr['project'])){ ?>
    264270                  dataform.append("wppm_project_attr","<?php echo esc_attr($this->shortcode_attr['project']); ?>");
     
    290296          dataform.append("task_search", task_search);
    291297          dataform.append("page_no",page_no);
     298          dataform.append("is_frontend", '1');
    292299          <?php if(!empty($this->shortcode_attr['project'])){ ?>
    293300                  dataform.append("wppm_project_attr","<?php echo esc_attr($this->shortcode_attr['project']); ?>");
     
    312319          dataform.append("action", 'wppm_view_project_tasks');
    313320          dataform.append("wppm_task_filter", wppm_task_filter);
     321          dataform.append("is_frontend", '1');
    314322          <?php if(!empty($this->shortcode_attr['project'])){ ?>
    315323                  dataform.append("wppm_project_attr","<?php echo esc_attr($this->shortcode_attr['project']); ?>");
     
    337345          dataform.append("order", "ASC");
    338346          dataform.append("wppm_proj_filter","0");
     347          dataform.append("is_frontend", '1');
    339348          <?php if(!empty($this->shortcode_attr['project'])){ ?>
    340349                  dataform.append("wppm_project_attr","<?php echo esc_attr($this->shortcode_attr['project']); ?>");
     
    358367          dataform.append("action", 'wppm_get_task_list');
    359368          dataform.append("wppm_proj_filter",wppm_proj_filter);
     369          dataform.append("is_frontend", '1');
    360370          jQuery.ajax( {
    361371            url: wppm_admin.ajax_url,
     
    377387          dataform.append("action", 'wppm_view_project_tasks');
    378388          dataform.append("wppm_proj_filter",wppm_proj_filter);
     389          dataform.append("is_frontend", '1');
    379390          jQuery.ajax( {
    380391            url: wppm_admin.ajax_url,
  • taskbuilder/trunk/includes/wppm-install.php

    r3312666 r3329577  
    462462        }
    463463
     464        if($installed_version < '4.0.5'){
     465            update_option('wppm_hide_completed_status_proj','1');
     466            update_option('wppm_hide_completed_status_task','1');
     467            update_option('wppm_hide_proj_statuses_from_frontend','0');
     468            update_option('wppm_hide_task_statuses_from_frontend','0');
     469            update_option('wppm_proj_hide_comment_section','1');
     470            update_option('wppm_task_hide_comment_section','1');
     471        }
     472
    464473        // update wppm_version option to plugin version
    465474        update_option( 'wppm_version', WPPM_VERSION );
  • taskbuilder/trunk/readme.txt

    r3312666 r3329577  
    44Tags: project,project management,task management,task manager,Kanban
    55Requires at least: 4.4
    6 Tested up to: 6.8.1
    7 Stable tag: 4.0.4
     6Tested up to: 6.8.2
     7Stable tag: 4.0.5
    88License: GPL v3
    99
     
    5858* [Due Date Reminder](https://taskbuilder.net/due-date-reminder/) - Due date reminder are super helpful for keeping your team on track to hit deadlines. Email notification will send to customer before due date of task.
    5959* [Usergroup](https://taskbuilder.net/usergroup/) - Using usergroup add-on you can assign group of users to project and those group assign to project can be assign to tasks of project.
    60 * [Recurrent Task] (https://taskbuilder.net/recurrent-task/) - Recurrent Tasks add-on allow administrators to effortlessly schedule recurring tasks for routine tasks The system automatically generates these tasks at the defined times, providing a streamlined approach to essential and repetitive processes. With versatile recurrence periods, customizable scheduling options, and the ability to set start and end dates.
     60* [Recurrent Task](https://taskbuilder.net/recurrent-task/) - Recurrent Tasks add-on allow administrators to effortlessly schedule recurring tasks for routine tasks The system automatically generates these tasks at the defined times, providing a streamlined approach to essential and repetitive processes. With versatile recurrence periods, customizable scheduling options, and the ability to set start and end dates.
    6161
    6262## 👨‍💻 DOCUMENTATION AND SUPPORT ##
     
    7171* German (Germany)
    7272* German(formal)
     73* Turkey
    7374If you are a translator, you can get free access to all premium add-ons for a year in exchange for translating them into your language if it is not available already. We will renew the Premium subscription next year if you continue contributing to the translation. If interested, don't hesitate to contact us via our [support page](https://taskbuilder.net/support/).
    7475
     
    115116
    116117== Changelog ==
     118= V 4.0.5(July 17,2025) =
     119* New: Turkey Translation.
     120* New: Hide completed status from project list. Setting is added in (Dashboard > Projects > Settings > General > Default Show/hide completed status's projects from projects list).
     121* New: Hide completed status from task list. Setting is added in (Dashboard > Projects > Settings > General > Default Show/hide completed status's tasks from task list).
     122* New: Hide selected statuses projects from frontend. Setting is added in (Dashboard > Projects > Settings > Miscellaneous > Default hide selected statuses projects from frontend).
     123* New: Hide selected statuses tasks from frontend. Setting is added in (Dashboard > Projects > Settings > Miscellaneous > Default hide selected statuses tasks from frontend).
     124* New: Default show/hide comment section in open project. Setting is added in (Dashboard > Projects > Settings > General > Default show/hide comment section in open project).
     125* New: Default show/hide comment section in open task. Setting is added in (Dashboard > Projects > Settings > General > Default show/hide comment section in open task).
     126* Fix: When any value from start date/ end date not inserted on (project/task) list, other value shows empty.
     127* Fix: When end date is not added still it shows end date in red colour.
     128* Fix: In report add-on date is no showing in csv format report.
     129* New: Custom fields added in csv report.
     130
    117131= V 4.0.4(June 16, 2025) =
    118132* New: Date Format Setting added (Dashboard > Projects > Settings > General > Default date format).
  • taskbuilder/trunk/taskbuilder.php

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