Changeset 3329577
- Timestamp:
- 07/17/2025 10:12:09 AM (9 months ago)
- Location:
- taskbuilder
- Files:
-
- 2 added
- 30 edited
- 1 copied
-
tags/4.0.5 (copied) (copied from taskbuilder/trunk)
-
tags/4.0.5/asset/css/admin.css (modified) (1 diff)
-
tags/4.0.5/includes/admin/projects/open_project/wppm_view_project_tasks.php (modified) (3 diffs)
-
tags/4.0.5/includes/admin/projects/projects_list.php (modified) (6 diffs)
-
tags/4.0.5/includes/admin/projects/wppm_open_project.php (modified) (6 diffs)
-
tags/4.0.5/includes/admin/settings/wppm_get_advanced_settings.php (modified) (2 diffs)
-
tags/4.0.5/includes/admin/settings/wppm_get_general_settings.php (modified) (2 diffs)
-
tags/4.0.5/includes/admin/settings/wppm_set_advanced_settings.php (modified) (1 diff)
-
tags/4.0.5/includes/admin/settings/wppm_set_general_settings.php (modified) (1 diff)
-
tags/4.0.5/includes/admin/tasks/open_task/wppm_open_task.php (modified) (6 diffs)
-
tags/4.0.5/includes/admin/tasks/wppm_tasks_list.php (modified) (6 diffs)
-
tags/4.0.5/includes/frontend/shortcode.php (modified) (6 diffs)
-
tags/4.0.5/includes/frontend/wppm_tasks_shortcode.php (modified) (11 diffs)
-
tags/4.0.5/includes/wppm-install.php (modified) (1 diff)
-
tags/4.0.5/lang/taskbuilder-tr_TR.mo (added)
-
tags/4.0.5/readme.txt (modified) (4 diffs)
-
tags/4.0.5/taskbuilder.php (modified) (2 diffs)
-
trunk/asset/css/admin.css (modified) (1 diff)
-
trunk/includes/admin/projects/open_project/wppm_view_project_tasks.php (modified) (3 diffs)
-
trunk/includes/admin/projects/projects_list.php (modified) (6 diffs)
-
trunk/includes/admin/projects/wppm_open_project.php (modified) (6 diffs)
-
trunk/includes/admin/settings/wppm_get_advanced_settings.php (modified) (2 diffs)
-
trunk/includes/admin/settings/wppm_get_general_settings.php (modified) (2 diffs)
-
trunk/includes/admin/settings/wppm_set_advanced_settings.php (modified) (1 diff)
-
trunk/includes/admin/settings/wppm_set_general_settings.php (modified) (1 diff)
-
trunk/includes/admin/tasks/open_task/wppm_open_task.php (modified) (6 diffs)
-
trunk/includes/admin/tasks/wppm_tasks_list.php (modified) (6 diffs)
-
trunk/includes/frontend/shortcode.php (modified) (6 diffs)
-
trunk/includes/frontend/wppm_tasks_shortcode.php (modified) (11 diffs)
-
trunk/includes/wppm-install.php (modified) (1 diff)
-
trunk/lang/taskbuilder-tr_TR.mo (added)
-
trunk/readme.txt (modified) (4 diffs)
-
trunk/taskbuilder.php (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
taskbuilder/tags/4.0.5/asset/css/admin.css
r3312666 r3329577 1503 1503 } 1504 1504 1505 #wppm_task_description, #wppm_ proj_description{1505 #wppm_task_description, #wppm_add_new_project #wppm_proj_description{ 1506 1506 height: 160px !important; 1507 1507 width: 100% !important; -
taskbuilder/tags/4.0.5/includes/admin/projects/open_project/wppm_view_project_tasks.php
r3312666 r3329577 19 19 $public_projects = isset($_POST['public_projects']) ? sanitize_text_field($_POST['public_projects']):"0"; 20 20 $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'); 23 if(!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 } 21 28 $filters = array( 22 29 'search' => $search_tag, … … 75 82 ); 76 83 setcookie('wppm_grid_view_filters',wp_json_encode( $filters ),time() + 3600); 77 84 if($filter_by=='all'){ 85 if($wppm_hide_completed_status_task == 0){ 86 $wppm_tl_filter = "Task.status!='4'"; 87 } 88 } 78 89 if($filter_by=='4'){ 79 90 $wppm_tl_filter = "Task.status='4'"; … … 91 102 $wppm_tl_filter = "(FIND_IN_SET('$current_user->ID',Task.users)>0)"; 92 103 } 104 105 if(!empty($wppm_hide_task_statuses_from_frontend) && is_array($wppm_hide_task_statuses_from_frontend) && (isset($_POST['is_frontend']) && sanitize_text_field($_POST['is_frontend'])==1)){ 106 foreach($wppm_hide_task_statuses_from_frontend as $status){ 107 $wppm_tl_filter .= " AND Task.status != '$status'"; 108 } 109 } 110 93 111 if($proj_filter!=0){ 94 112 $wppm_task_by_proj_filter = "Task.project = ".esc_sql($proj_filter).""; -
taskbuilder/tags/4.0.5/includes/admin/projects/projects_list.php
r3312666 r3329577 17 17 $current_date = date('Y-m-d'); 18 18 $wppm_pl_filter = "1=1"; 19 $wppm_hide_completed_status_proj = get_option('wppm_hide_completed_status_proj'); 19 20 $cu_id = esc_sql($current_user->ID); 21 $wppm_hide_proj_statuses_from_frontend = get_option('wppm_hide_proj_statuses_from_frontend'); 22 if(!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 } 20 27 $filters = array( 21 28 'sort_by' => $sort_by, … … 59 66 if($sort_by=='category'){ 60 67 $sort_by = 'proj_categories.name'; 68 } 69 if($filter_by=='all'){ 70 if($wppm_hide_completed_status_proj == 0){ 71 $wppm_pl_filter = "status!='4'"; 72 } 61 73 } 62 74 if($filter_by=='4'){ … … 75 87 $wppm_pl_filter = "(FIND_IN_SET('$current_user->ID',users)>0)"; 76 88 } 89 90 if(!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 77 96 $wppm_project_time = get_option('wppm_project_time'); 78 97 $wppm_default_project_date = get_option('wppm_default_project_date'); … … 297 316 $proj_end_date = '0000-00-00 00:00:00'; 298 317 } 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)){ 301 321 $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 } 306 325 } 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 } 307 332 } 308 333 } elseif($wppm_project_time == 0){ … … 332 357 $proj_end_date = '0000-00-00'; 333 358 } 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'){ 335 372 if($wppm_date_setting=='Y-m-d H:i:s'){ 336 $proj_start_date = $psDate->format('Y-m-d');337 373 $proj_end_date = $peDate->format('Y-m-d'); 338 374 }elseif($wppm_date_setting=='d-m-Y H:i:s'){ 339 $proj_start_date = $psDate->format('d-m-Y');340 375 $proj_end_date = $peDate->format('d-m-Y'); 341 376 }elseif($wppm_date_setting=='m-d-Y H:i:s'){ 342 $proj_start_date = $psDate->format('m-d-Y');343 377 $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 } 348 381 } 349 382 } … … 387 420 </td> 388 421 <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 ?> 390 424 <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> 393 432 <?php } ?> 394 433 <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 13 13 $wppm_toolbar_actions = get_option('wppm_toolbar_actions'); 14 14 $wppm_date_setting = get_option('wppm_date_setting'); 15 $wppm_proj_hide_comment_section = get_option('wppm_proj_hide_comment_section'); 15 16 $wppm_current_user_capability = get_user_meta( $current_user->ID, 'wppm_capability', true ); 16 17 $current_date = date('Y-m-d'); … … 71 72 $proj_end_date = '0000-00-00 00:00:00'; 72 73 } 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)){ 75 76 $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)){ 76 83 $proj_end_date = $peDate->format($wppm_date_setting); 77 84 }else{ 78 $proj_start_date = isset($project->start_date)? $project->start_date:"";79 85 $proj_end_date = isset($project->end_date) ? $project->end_date: "" ; 80 86 } … … 122 128 } 123 129 } 130 124 131 $project_data = $wppmfunction->get_project($id); 125 132 $project_users = explode(",",$project_data['users']); … … 210 217 <?php 211 218 $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"; ?> 213 220 <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> 214 221 </div> … … 237 244 </div> 238 245 </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;' ?>"> 240 247 <div class="row"> 241 248 <div class="col-sm-12" style="margin-top:5px;"> … … 266 273 </div> 267 274 </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> 289 347 </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; 300 375 } 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; 304 384 } 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); 368 409 } 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; 384 423 } ?> 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;?> 423 429 </div> 424 <?php }425 } ?>426 </div>430 </div> 431 <?php } 432 } ?> 427 433 </div> 434 </div> 428 435 <div class="wppm_individual_project_widget col-sm-4 wppm_sidebar col-md-3"> 429 436 <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 7 7 $wppm_public_projects_permission = get_option('wppm_public_projects_permission'); 8 8 $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'); 12 if(!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'); 18 if(!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 } 9 23 ?> 10 24 <form id="wppm_frm_advanced_settings" method="post" action="javascript:wppm_set_advanced_settings();"> … … 25 39 </select> 26 40 <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> 27 82 <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> 28 83 <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 19 19 $wppm_tinymce_visibility_open_task = get_option('wppm_tinymce_visibility_open_task'); 20 20 $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'); 21 25 ?> 22 26 <form id="wppm_frm_general_settings" method="post" action="javascript:wppm_set_general_settings();"> … … 154 158 <br> 155 159 <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> 156 204 <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> 157 205 <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 15 15 $wppm_public_projects_permission = isset($_POST) && isset(($_POST['wppm_public_projects_permission'])) ? sanitize_text_field($_POST['wppm_public_projects_permission']) : '0'; 16 16 update_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(); 18 if (!empty($wppm_hide_proj_statuses_from_frontend)) { 19 $wppm_hide_proj_statuses_from_frontend = implode(',', $wppm_hide_proj_statuses_from_frontend); 20 } 21 update_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(); 24 if (!empty($wppm_hide_task_statuses_from_frontend)) { 25 $wppm_hide_task_statuses_from_frontend = implode(',', $wppm_hide_task_statuses_from_frontend); 26 } 27 update_option('wppm_hide_task_statuses_from_frontend',$wppm_hide_task_statuses_from_frontend); 28 17 29 do_action('wppm_set_advanced_settings'); 18 30 -
taskbuilder/tags/4.0.5/includes/admin/settings/wppm_set_general_settings.php
r3312666 r3329577 33 33 $wppm_date_setting = isset($_POST) && isset(($_POST['wppm_date_setting'])) ? sanitize_text_field($_POST['wppm_date_setting']) : 'Y-m-d H:i:s'; 34 34 update_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'; 36 update_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'; 38 update_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'; 40 update_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'; 42 update_option('wppm_task_hide_comment_section',$wppm_task_hide_comment_section); 35 43 do_action('wppm_set_general_settings'); 36 44 -
taskbuilder/tags/4.0.5/includes/admin/tasks/open_task/wppm_open_task.php
r3312666 r3329577 15 15 $wppm_toolbar_actions = get_option('wppm_toolbar_actions'); 16 16 $wppm_date_setting = get_option('wppm_date_setting'); 17 $wppm_task_hide_comment_section = get_option('wppm_task_hide_comment_section'); 17 18 $url_auth = false; 18 19 $auth_id = $wppmfunction->wppm_get_auth_code($id); … … 89 90 $task_end_date = '0000-00-00 00:00:00'; 90 91 } 91 } else{92 }if($task->start_date!='0000-00-00 00:00:00'){ 92 93 if(!empty($wppm_date_setting)){ 93 94 $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)){ 94 101 $task_end_date = $teDate->format($wppm_date_setting); 95 102 }else{ 96 $task_start_date = isset($task->start_date)? $task->start_date:"";97 103 $task_end_date = isset($task->end_date) ? $task->end_date: "" ; 98 104 } … … 125 131 $task_end_date = '0000-00-00'; 126 132 } 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 } 140 153 } 141 }142 154 } 143 155 $flag = false; … … 262 274 </div> 263 275 <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"; ?> 265 277 <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> 266 278 </div> … … 384 396 } ?> 385 397 </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;' ?>"> 387 399 <div class="row"> 388 400 <div class="col-sm-12" style="margin-top:5px;"> … … 414 426 </div> 415 427 </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;' ?>"> 417 429 <?php 418 430 if(!empty($task_comment)){ -
taskbuilder/tags/4.0.5/includes/admin/tasks/wppm_tasks_list.php
r3312666 r3329577 17 17 $orderby_proj_sql = esc_sql(sanitize_sql_orderby( "project_name" )); 18 18 $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'); 21 if(!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 } 19 26 $proj_attr = esc_sql($proj_attr); 20 27 $is_frontend = 0; … … 101 108 $sort_by='task_priorities.name'; 102 109 } 110 if($filter_by=='all'){ 111 if($wppm_hide_completed_status_task == 0){ 112 $wppm_tl_filter = "Task.status!='4'"; 113 } 114 } 103 115 if($filter_by=='4'){ 104 116 $wppm_tl_filter = "Task.status='4'"; … … 115 127 }elseif($filter_by == 'mine'){ 116 128 $wppm_tl_filter = "(FIND_IN_SET('$current_user->ID',Task.users)>0)"; 129 } 130 131 if(!empty($wppm_hide_task_statuses_from_frontend) && is_array($wppm_hide_task_statuses_from_frontend) && ((isset($_POST['is_frontend'])) && (sanitize_text_field($_POST['is_frontend'])==1))){ 132 foreach($wppm_hide_task_statuses_from_frontend as $status){ 133 $wppm_tl_filter .= " AND Task.status != '$status'"; 134 } 117 135 } 118 136 if($proj_filter!=0){ … … 433 451 $task_end_date = '0000-00-00 00:00:00'; 434 452 } 435 } else{453 }if($task->start_date!='0000-00-00 00:00:00'){ 436 454 if(!empty($wppm_date_setting)){ 437 455 $task_start_date = $tsDate->format($wppm_date_setting); 438 $task_end_date = $teDate->format($wppm_date_setting);439 456 } else { 440 457 $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{ 441 463 $task_end_date = isset($task->end_date) ? $task->end_date: "" ; 442 464 } 465 443 466 } 444 467 } elseif($wppm_task_time == 0){ … … 468 491 $task_end_date = '0000-00-00'; 469 492 } 470 }else{ 493 } 494 if($task->start_date!='0000-00-00 00:00:00'){ 471 495 if($wppm_date_setting=='Y-m-d H:i:s'){ 472 496 $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'){ 473 507 $task_end_date = $teDate->format('Y-m-d'); 474 508 }elseif($wppm_date_setting=='d-m-Y H:i:s'){ 475 $task_start_date = $tsDate->format('d-m-Y');476 509 $task_end_date = $teDate->format('d-m-Y'); 477 510 }elseif($wppm_date_setting=='m-d-Y H:i:s'){ 478 $task_start_date = $tsDate->format('m-d-Y');479 511 $task_end_date = $teDate->format('m-d-Y'); 480 512 }else{ 481 $task_start_date = $tsDate->format('Y-m-d');482 513 $task_end_date = $teDate->format('Y-m-d'); 483 514 } … … 521 552 </td> 522 553 <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> 528 560 </td> 529 561 <?php } ?> -
taskbuilder/tags/4.0.5/includes/frontend/shortcode.php
r3254059 r3329577 117 117 dataform.append("page_no", page_no); 118 118 dataform.append("action", 'wppm_get_project_list'); 119 dataform.append("is_frontend", '1'); 119 120 jQuery.ajax( { 120 121 url: wppm_admin.ajax_url, … … 137 138 dataform.append("sort_by", 'project_name'); 138 139 dataform.append("order", 'ASC'); 140 dataform.append("is_frontend", '1'); 139 141 <?php echo do_action('wppm_reset_project_dataform');?> 140 142 jQuery.ajax( { … … 175 177 dataform.append("action", 'wppm_get_project_list'); 176 178 dataform.append("wppm_project_filter", wppm_project_filter); 179 dataform.append("is_frontend", '1'); 177 180 jQuery.ajax( { 178 181 url: wppm_admin.ajax_url, … … 195 198 dataform.append("action", 'wppm_get_project_list'); 196 199 dataform.append("project_search", project_search); 200 dataform.append("is_frontend", '1'); 197 201 jQuery.ajax( { 198 202 url: wppm_admin.ajax_url, … … 215 219 dataform.append("sort_by", sort_by); 216 220 dataform.append("order", order); 221 dataform.append("is_frontend", '1'); 217 222 jQuery.ajax( { 218 223 url: wppm_admin.ajax_url, … … 233 238 dataform.append("action", 'wppm_get_project_tasks'); 234 239 dataform.append("id",id); 240 dataform.append("is_frontend", '1'); 235 241 jQuery.ajax( { 236 242 url: wppm_admin.ajax_url, -
taskbuilder/tags/4.0.5/includes/frontend/wppm_tasks_shortcode.php
r3254059 r3329577 124 124 dataform.append("page_no", page_no); 125 125 dataform.append("action", 'wppm_get_task_list'); 126 dataform.append("is_frontend", '1'); 126 127 <?php 127 128 if(!empty($this->shortcode_attr['project'])){ … … 166 167 <?php echo do_action('wppm_apply_task_filter_dataform');?> 167 168 dataform.append("wppm_task_filter", wppm_task_filter); 169 dataform.append("is_frontend", '1'); 168 170 dataform.append("action", 'wppm_get_task_list'); 169 171 <?php if(!empty($this->shortcode_attr['project'])){ ?> … … 191 193 dataform.append("order", 'ASC'); 192 194 dataform.append("wppm_proj_filter",0); 195 dataform.append("is_frontend", '1'); 193 196 <?php if(!empty($this->shortcode_attr['project'])){ ?> 194 197 dataform.append("wppm_project_attr","<?php echo esc_attr($this->shortcode_attr['project']); ?>"); … … 214 217 <?php echo do_action('wppm_task_search_filter_dataform');?> 215 218 dataform.append("action", 'wppm_get_task_list'); 219 dataform.append("is_frontend", '1'); 216 220 <?php if(!empty($this->shortcode_attr['project'])){ ?> 217 221 dataform.append("wppm_project_attr","<?php echo esc_attr($this->shortcode_attr['project']); ?>"); … … 238 242 dataform.append("action", 'wppm_get_task_list_card_view'); 239 243 dataform.append("task_search", task_search); 244 dataform.append("is_frontend", '1'); 240 245 <?php if(!empty($this->shortcode_attr['project'])){ ?> 241 246 dataform.append("wppm_project_attr","<?php echo esc_attr($this->shortcode_attr['project']); ?>"); … … 261 266 dataform.append("sort_by", sort_by); 262 267 dataform.append("order", order); 268 dataform.append("is_frontend", '1'); 263 269 <?php if(!empty($this->shortcode_attr['project'])){ ?> 264 270 dataform.append("wppm_project_attr","<?php echo esc_attr($this->shortcode_attr['project']); ?>"); … … 290 296 dataform.append("task_search", task_search); 291 297 dataform.append("page_no",page_no); 298 dataform.append("is_frontend", '1'); 292 299 <?php if(!empty($this->shortcode_attr['project'])){ ?> 293 300 dataform.append("wppm_project_attr","<?php echo esc_attr($this->shortcode_attr['project']); ?>"); … … 312 319 dataform.append("action", 'wppm_view_project_tasks'); 313 320 dataform.append("wppm_task_filter", wppm_task_filter); 321 dataform.append("is_frontend", '1'); 314 322 <?php if(!empty($this->shortcode_attr['project'])){ ?> 315 323 dataform.append("wppm_project_attr","<?php echo esc_attr($this->shortcode_attr['project']); ?>"); … … 337 345 dataform.append("order", "ASC"); 338 346 dataform.append("wppm_proj_filter","0"); 347 dataform.append("is_frontend", '1'); 339 348 <?php if(!empty($this->shortcode_attr['project'])){ ?> 340 349 dataform.append("wppm_project_attr","<?php echo esc_attr($this->shortcode_attr['project']); ?>"); … … 358 367 dataform.append("action", 'wppm_get_task_list'); 359 368 dataform.append("wppm_proj_filter",wppm_proj_filter); 369 dataform.append("is_frontend", '1'); 360 370 jQuery.ajax( { 361 371 url: wppm_admin.ajax_url, … … 377 387 dataform.append("action", 'wppm_view_project_tasks'); 378 388 dataform.append("wppm_proj_filter",wppm_proj_filter); 389 dataform.append("is_frontend", '1'); 379 390 jQuery.ajax( { 380 391 url: wppm_admin.ajax_url, -
taskbuilder/tags/4.0.5/includes/wppm-install.php
r3312666 r3329577 462 462 } 463 463 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 464 473 // update wppm_version option to plugin version 465 474 update_option( 'wppm_version', WPPM_VERSION ); -
taskbuilder/tags/4.0.5/readme.txt
r3312666 r3329577 4 4 Tags: project,project management,task management,task manager,Kanban 5 5 Requires at least: 4.4 6 Tested up to: 6.8. 17 Stable tag: 4.0. 46 Tested up to: 6.8.2 7 Stable tag: 4.0.5 8 8 License: GPL v3 9 9 … … 58 58 * [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. 59 59 * [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. 61 61 62 62 ## 👨💻 DOCUMENTATION AND SUPPORT ## … … 71 71 * German (Germany) 72 72 * German(formal) 73 * Turkey 73 74 If 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/). 74 75 … … 115 116 116 117 == 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 117 131 = V 4.0.4(June 16, 2025) = 118 132 * New: Date Format Setting added (Dashboard > Projects > Settings > General > Default date format). -
taskbuilder/tags/4.0.5/taskbuilder.php
r3312666 r3329577 4 4 * Plugin URI: https://wordpress.org/plugins/taskbuilder/ 5 5 * Description: Wordpress Project Management & Task Management plugin. Easy to keep track of projects & tasks! 6 * Version: 4.0. 46 * Version: 4.0.5 7 7 * Author: Taskbuilder Team 8 8 * Author URI: https://taskbuilder.net/ 9 9 * Requires at least: 4.4 10 * Tested up to: 6.8. 110 * Tested up to: 6.8.2 11 11 * Text Domain: taskbuilder 12 12 * Domain Path: /lang … … 20 20 21 21 final class WP_Taskbuilder { 22 public $version = '4.0. 4';22 public $version = '4.0.5'; 23 23 public function __construct() { 24 24 // define global constants -
taskbuilder/trunk/asset/css/admin.css
r3312666 r3329577 1503 1503 } 1504 1504 1505 #wppm_task_description, #wppm_ proj_description{1505 #wppm_task_description, #wppm_add_new_project #wppm_proj_description{ 1506 1506 height: 160px !important; 1507 1507 width: 100% !important; -
taskbuilder/trunk/includes/admin/projects/open_project/wppm_view_project_tasks.php
r3312666 r3329577 19 19 $public_projects = isset($_POST['public_projects']) ? sanitize_text_field($_POST['public_projects']):"0"; 20 20 $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'); 23 if(!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 } 21 28 $filters = array( 22 29 'search' => $search_tag, … … 75 82 ); 76 83 setcookie('wppm_grid_view_filters',wp_json_encode( $filters ),time() + 3600); 77 84 if($filter_by=='all'){ 85 if($wppm_hide_completed_status_task == 0){ 86 $wppm_tl_filter = "Task.status!='4'"; 87 } 88 } 78 89 if($filter_by=='4'){ 79 90 $wppm_tl_filter = "Task.status='4'"; … … 91 102 $wppm_tl_filter = "(FIND_IN_SET('$current_user->ID',Task.users)>0)"; 92 103 } 104 105 if(!empty($wppm_hide_task_statuses_from_frontend) && is_array($wppm_hide_task_statuses_from_frontend) && (isset($_POST['is_frontend']) && sanitize_text_field($_POST['is_frontend'])==1)){ 106 foreach($wppm_hide_task_statuses_from_frontend as $status){ 107 $wppm_tl_filter .= " AND Task.status != '$status'"; 108 } 109 } 110 93 111 if($proj_filter!=0){ 94 112 $wppm_task_by_proj_filter = "Task.project = ".esc_sql($proj_filter).""; -
taskbuilder/trunk/includes/admin/projects/projects_list.php
r3312666 r3329577 17 17 $current_date = date('Y-m-d'); 18 18 $wppm_pl_filter = "1=1"; 19 $wppm_hide_completed_status_proj = get_option('wppm_hide_completed_status_proj'); 19 20 $cu_id = esc_sql($current_user->ID); 21 $wppm_hide_proj_statuses_from_frontend = get_option('wppm_hide_proj_statuses_from_frontend'); 22 if(!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 } 20 27 $filters = array( 21 28 'sort_by' => $sort_by, … … 59 66 if($sort_by=='category'){ 60 67 $sort_by = 'proj_categories.name'; 68 } 69 if($filter_by=='all'){ 70 if($wppm_hide_completed_status_proj == 0){ 71 $wppm_pl_filter = "status!='4'"; 72 } 61 73 } 62 74 if($filter_by=='4'){ … … 75 87 $wppm_pl_filter = "(FIND_IN_SET('$current_user->ID',users)>0)"; 76 88 } 89 90 if(!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 77 96 $wppm_project_time = get_option('wppm_project_time'); 78 97 $wppm_default_project_date = get_option('wppm_default_project_date'); … … 297 316 $proj_end_date = '0000-00-00 00:00:00'; 298 317 } 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)){ 301 321 $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 } 306 325 } 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 } 307 332 } 308 333 } elseif($wppm_project_time == 0){ … … 332 357 $proj_end_date = '0000-00-00'; 333 358 } 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'){ 335 372 if($wppm_date_setting=='Y-m-d H:i:s'){ 336 $proj_start_date = $psDate->format('Y-m-d');337 373 $proj_end_date = $peDate->format('Y-m-d'); 338 374 }elseif($wppm_date_setting=='d-m-Y H:i:s'){ 339 $proj_start_date = $psDate->format('d-m-Y');340 375 $proj_end_date = $peDate->format('d-m-Y'); 341 376 }elseif($wppm_date_setting=='m-d-Y H:i:s'){ 342 $proj_start_date = $psDate->format('m-d-Y');343 377 $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 } 348 381 } 349 382 } … … 387 420 </td> 388 421 <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 ?> 390 424 <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> 393 432 <?php } ?> 394 433 <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 13 13 $wppm_toolbar_actions = get_option('wppm_toolbar_actions'); 14 14 $wppm_date_setting = get_option('wppm_date_setting'); 15 $wppm_proj_hide_comment_section = get_option('wppm_proj_hide_comment_section'); 15 16 $wppm_current_user_capability = get_user_meta( $current_user->ID, 'wppm_capability', true ); 16 17 $current_date = date('Y-m-d'); … … 71 72 $proj_end_date = '0000-00-00 00:00:00'; 72 73 } 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)){ 75 76 $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)){ 76 83 $proj_end_date = $peDate->format($wppm_date_setting); 77 84 }else{ 78 $proj_start_date = isset($project->start_date)? $project->start_date:"";79 85 $proj_end_date = isset($project->end_date) ? $project->end_date: "" ; 80 86 } … … 122 128 } 123 129 } 130 124 131 $project_data = $wppmfunction->get_project($id); 125 132 $project_users = explode(",",$project_data['users']); … … 210 217 <?php 211 218 $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"; ?> 213 220 <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> 214 221 </div> … … 237 244 </div> 238 245 </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;' ?>"> 240 247 <div class="row"> 241 248 <div class="col-sm-12" style="margin-top:5px;"> … … 266 273 </div> 267 274 </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> 289 347 </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; 300 375 } 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; 304 384 } 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); 368 409 } 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; 384 423 } ?> 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;?> 423 429 </div> 424 <?php }425 } ?>426 </div>430 </div> 431 <?php } 432 } ?> 427 433 </div> 434 </div> 428 435 <div class="wppm_individual_project_widget col-sm-4 wppm_sidebar col-md-3"> 429 436 <div class="row wppm_widget" id="wppm_project_status_widget"> -
taskbuilder/trunk/includes/admin/settings/wppm_get_advanced_settings.php
r3079882 r3329577 7 7 $wppm_public_projects_permission = get_option('wppm_public_projects_permission'); 8 8 $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'); 12 if(!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'); 18 if(!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 } 9 23 ?> 10 24 <form id="wppm_frm_advanced_settings" method="post" action="javascript:wppm_set_advanced_settings();"> … … 25 39 </select> 26 40 <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> 27 82 <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> 28 83 <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 19 19 $wppm_tinymce_visibility_open_task = get_option('wppm_tinymce_visibility_open_task'); 20 20 $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'); 21 25 ?> 22 26 <form id="wppm_frm_general_settings" method="post" action="javascript:wppm_set_general_settings();"> … … 154 158 <br> 155 159 <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> 156 204 <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> 157 205 <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 15 15 $wppm_public_projects_permission = isset($_POST) && isset(($_POST['wppm_public_projects_permission'])) ? sanitize_text_field($_POST['wppm_public_projects_permission']) : '0'; 16 16 update_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(); 18 if (!empty($wppm_hide_proj_statuses_from_frontend)) { 19 $wppm_hide_proj_statuses_from_frontend = implode(',', $wppm_hide_proj_statuses_from_frontend); 20 } 21 update_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(); 24 if (!empty($wppm_hide_task_statuses_from_frontend)) { 25 $wppm_hide_task_statuses_from_frontend = implode(',', $wppm_hide_task_statuses_from_frontend); 26 } 27 update_option('wppm_hide_task_statuses_from_frontend',$wppm_hide_task_statuses_from_frontend); 28 17 29 do_action('wppm_set_advanced_settings'); 18 30 -
taskbuilder/trunk/includes/admin/settings/wppm_set_general_settings.php
r3312666 r3329577 33 33 $wppm_date_setting = isset($_POST) && isset(($_POST['wppm_date_setting'])) ? sanitize_text_field($_POST['wppm_date_setting']) : 'Y-m-d H:i:s'; 34 34 update_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'; 36 update_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'; 38 update_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'; 40 update_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'; 42 update_option('wppm_task_hide_comment_section',$wppm_task_hide_comment_section); 35 43 do_action('wppm_set_general_settings'); 36 44 -
taskbuilder/trunk/includes/admin/tasks/open_task/wppm_open_task.php
r3312666 r3329577 15 15 $wppm_toolbar_actions = get_option('wppm_toolbar_actions'); 16 16 $wppm_date_setting = get_option('wppm_date_setting'); 17 $wppm_task_hide_comment_section = get_option('wppm_task_hide_comment_section'); 17 18 $url_auth = false; 18 19 $auth_id = $wppmfunction->wppm_get_auth_code($id); … … 89 90 $task_end_date = '0000-00-00 00:00:00'; 90 91 } 91 } else{92 }if($task->start_date!='0000-00-00 00:00:00'){ 92 93 if(!empty($wppm_date_setting)){ 93 94 $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)){ 94 101 $task_end_date = $teDate->format($wppm_date_setting); 95 102 }else{ 96 $task_start_date = isset($task->start_date)? $task->start_date:"";97 103 $task_end_date = isset($task->end_date) ? $task->end_date: "" ; 98 104 } … … 125 131 $task_end_date = '0000-00-00'; 126 132 } 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 } 140 153 } 141 }142 154 } 143 155 $flag = false; … … 262 274 </div> 263 275 <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"; ?> 265 277 <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> 266 278 </div> … … 384 396 } ?> 385 397 </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;' ?>"> 387 399 <div class="row"> 388 400 <div class="col-sm-12" style="margin-top:5px;"> … … 414 426 </div> 415 427 </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;' ?>"> 417 429 <?php 418 430 if(!empty($task_comment)){ -
taskbuilder/trunk/includes/admin/tasks/wppm_tasks_list.php
r3312666 r3329577 17 17 $orderby_proj_sql = esc_sql(sanitize_sql_orderby( "project_name" )); 18 18 $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'); 21 if(!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 } 19 26 $proj_attr = esc_sql($proj_attr); 20 27 $is_frontend = 0; … … 101 108 $sort_by='task_priorities.name'; 102 109 } 110 if($filter_by=='all'){ 111 if($wppm_hide_completed_status_task == 0){ 112 $wppm_tl_filter = "Task.status!='4'"; 113 } 114 } 103 115 if($filter_by=='4'){ 104 116 $wppm_tl_filter = "Task.status='4'"; … … 115 127 }elseif($filter_by == 'mine'){ 116 128 $wppm_tl_filter = "(FIND_IN_SET('$current_user->ID',Task.users)>0)"; 129 } 130 131 if(!empty($wppm_hide_task_statuses_from_frontend) && is_array($wppm_hide_task_statuses_from_frontend) && ((isset($_POST['is_frontend'])) && (sanitize_text_field($_POST['is_frontend'])==1))){ 132 foreach($wppm_hide_task_statuses_from_frontend as $status){ 133 $wppm_tl_filter .= " AND Task.status != '$status'"; 134 } 117 135 } 118 136 if($proj_filter!=0){ … … 433 451 $task_end_date = '0000-00-00 00:00:00'; 434 452 } 435 } else{453 }if($task->start_date!='0000-00-00 00:00:00'){ 436 454 if(!empty($wppm_date_setting)){ 437 455 $task_start_date = $tsDate->format($wppm_date_setting); 438 $task_end_date = $teDate->format($wppm_date_setting);439 456 } else { 440 457 $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{ 441 463 $task_end_date = isset($task->end_date) ? $task->end_date: "" ; 442 464 } 465 443 466 } 444 467 } elseif($wppm_task_time == 0){ … … 468 491 $task_end_date = '0000-00-00'; 469 492 } 470 }else{ 493 } 494 if($task->start_date!='0000-00-00 00:00:00'){ 471 495 if($wppm_date_setting=='Y-m-d H:i:s'){ 472 496 $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'){ 473 507 $task_end_date = $teDate->format('Y-m-d'); 474 508 }elseif($wppm_date_setting=='d-m-Y H:i:s'){ 475 $task_start_date = $tsDate->format('d-m-Y');476 509 $task_end_date = $teDate->format('d-m-Y'); 477 510 }elseif($wppm_date_setting=='m-d-Y H:i:s'){ 478 $task_start_date = $tsDate->format('m-d-Y');479 511 $task_end_date = $teDate->format('m-d-Y'); 480 512 }else{ 481 $task_start_date = $tsDate->format('Y-m-d');482 513 $task_end_date = $teDate->format('Y-m-d'); 483 514 } … … 521 552 </td> 522 553 <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> 528 560 </td> 529 561 <?php } ?> -
taskbuilder/trunk/includes/frontend/shortcode.php
r3254059 r3329577 117 117 dataform.append("page_no", page_no); 118 118 dataform.append("action", 'wppm_get_project_list'); 119 dataform.append("is_frontend", '1'); 119 120 jQuery.ajax( { 120 121 url: wppm_admin.ajax_url, … … 137 138 dataform.append("sort_by", 'project_name'); 138 139 dataform.append("order", 'ASC'); 140 dataform.append("is_frontend", '1'); 139 141 <?php echo do_action('wppm_reset_project_dataform');?> 140 142 jQuery.ajax( { … … 175 177 dataform.append("action", 'wppm_get_project_list'); 176 178 dataform.append("wppm_project_filter", wppm_project_filter); 179 dataform.append("is_frontend", '1'); 177 180 jQuery.ajax( { 178 181 url: wppm_admin.ajax_url, … … 195 198 dataform.append("action", 'wppm_get_project_list'); 196 199 dataform.append("project_search", project_search); 200 dataform.append("is_frontend", '1'); 197 201 jQuery.ajax( { 198 202 url: wppm_admin.ajax_url, … … 215 219 dataform.append("sort_by", sort_by); 216 220 dataform.append("order", order); 221 dataform.append("is_frontend", '1'); 217 222 jQuery.ajax( { 218 223 url: wppm_admin.ajax_url, … … 233 238 dataform.append("action", 'wppm_get_project_tasks'); 234 239 dataform.append("id",id); 240 dataform.append("is_frontend", '1'); 235 241 jQuery.ajax( { 236 242 url: wppm_admin.ajax_url, -
taskbuilder/trunk/includes/frontend/wppm_tasks_shortcode.php
r3254059 r3329577 124 124 dataform.append("page_no", page_no); 125 125 dataform.append("action", 'wppm_get_task_list'); 126 dataform.append("is_frontend", '1'); 126 127 <?php 127 128 if(!empty($this->shortcode_attr['project'])){ … … 166 167 <?php echo do_action('wppm_apply_task_filter_dataform');?> 167 168 dataform.append("wppm_task_filter", wppm_task_filter); 169 dataform.append("is_frontend", '1'); 168 170 dataform.append("action", 'wppm_get_task_list'); 169 171 <?php if(!empty($this->shortcode_attr['project'])){ ?> … … 191 193 dataform.append("order", 'ASC'); 192 194 dataform.append("wppm_proj_filter",0); 195 dataform.append("is_frontend", '1'); 193 196 <?php if(!empty($this->shortcode_attr['project'])){ ?> 194 197 dataform.append("wppm_project_attr","<?php echo esc_attr($this->shortcode_attr['project']); ?>"); … … 214 217 <?php echo do_action('wppm_task_search_filter_dataform');?> 215 218 dataform.append("action", 'wppm_get_task_list'); 219 dataform.append("is_frontend", '1'); 216 220 <?php if(!empty($this->shortcode_attr['project'])){ ?> 217 221 dataform.append("wppm_project_attr","<?php echo esc_attr($this->shortcode_attr['project']); ?>"); … … 238 242 dataform.append("action", 'wppm_get_task_list_card_view'); 239 243 dataform.append("task_search", task_search); 244 dataform.append("is_frontend", '1'); 240 245 <?php if(!empty($this->shortcode_attr['project'])){ ?> 241 246 dataform.append("wppm_project_attr","<?php echo esc_attr($this->shortcode_attr['project']); ?>"); … … 261 266 dataform.append("sort_by", sort_by); 262 267 dataform.append("order", order); 268 dataform.append("is_frontend", '1'); 263 269 <?php if(!empty($this->shortcode_attr['project'])){ ?> 264 270 dataform.append("wppm_project_attr","<?php echo esc_attr($this->shortcode_attr['project']); ?>"); … … 290 296 dataform.append("task_search", task_search); 291 297 dataform.append("page_no",page_no); 298 dataform.append("is_frontend", '1'); 292 299 <?php if(!empty($this->shortcode_attr['project'])){ ?> 293 300 dataform.append("wppm_project_attr","<?php echo esc_attr($this->shortcode_attr['project']); ?>"); … … 312 319 dataform.append("action", 'wppm_view_project_tasks'); 313 320 dataform.append("wppm_task_filter", wppm_task_filter); 321 dataform.append("is_frontend", '1'); 314 322 <?php if(!empty($this->shortcode_attr['project'])){ ?> 315 323 dataform.append("wppm_project_attr","<?php echo esc_attr($this->shortcode_attr['project']); ?>"); … … 337 345 dataform.append("order", "ASC"); 338 346 dataform.append("wppm_proj_filter","0"); 347 dataform.append("is_frontend", '1'); 339 348 <?php if(!empty($this->shortcode_attr['project'])){ ?> 340 349 dataform.append("wppm_project_attr","<?php echo esc_attr($this->shortcode_attr['project']); ?>"); … … 358 367 dataform.append("action", 'wppm_get_task_list'); 359 368 dataform.append("wppm_proj_filter",wppm_proj_filter); 369 dataform.append("is_frontend", '1'); 360 370 jQuery.ajax( { 361 371 url: wppm_admin.ajax_url, … … 377 387 dataform.append("action", 'wppm_view_project_tasks'); 378 388 dataform.append("wppm_proj_filter",wppm_proj_filter); 389 dataform.append("is_frontend", '1'); 379 390 jQuery.ajax( { 380 391 url: wppm_admin.ajax_url, -
taskbuilder/trunk/includes/wppm-install.php
r3312666 r3329577 462 462 } 463 463 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 464 473 // update wppm_version option to plugin version 465 474 update_option( 'wppm_version', WPPM_VERSION ); -
taskbuilder/trunk/readme.txt
r3312666 r3329577 4 4 Tags: project,project management,task management,task manager,Kanban 5 5 Requires at least: 4.4 6 Tested up to: 6.8. 17 Stable tag: 4.0. 46 Tested up to: 6.8.2 7 Stable tag: 4.0.5 8 8 License: GPL v3 9 9 … … 58 58 * [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. 59 59 * [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. 61 61 62 62 ## 👨💻 DOCUMENTATION AND SUPPORT ## … … 71 71 * German (Germany) 72 72 * German(formal) 73 * Turkey 73 74 If 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/). 74 75 … … 115 116 116 117 == 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 117 131 = V 4.0.4(June 16, 2025) = 118 132 * New: Date Format Setting added (Dashboard > Projects > Settings > General > Default date format). -
taskbuilder/trunk/taskbuilder.php
r3312666 r3329577 4 4 * Plugin URI: https://wordpress.org/plugins/taskbuilder/ 5 5 * Description: Wordpress Project Management & Task Management plugin. Easy to keep track of projects & tasks! 6 * Version: 4.0. 46 * Version: 4.0.5 7 7 * Author: Taskbuilder Team 8 8 * Author URI: https://taskbuilder.net/ 9 9 * Requires at least: 4.4 10 * Tested up to: 6.8. 110 * Tested up to: 6.8.2 11 11 * Text Domain: taskbuilder 12 12 * Domain Path: /lang … … 20 20 21 21 final class WP_Taskbuilder { 22 public $version = '4.0. 4';22 public $version = '4.0.5'; 23 23 public function __construct() { 24 24 // define global constants
Note: See TracChangeset
for help on using the changeset viewer.