PluginProbe
Taskbuilder – Project Management & Task Management Tool With Kanban Board / 5.0.5
Taskbuilder – Project Management & Task Management Tool With Kanban Board v5.0.5
6.0.5 6.0.2 6.0.3 6.0.4 6.0.1 6.0.0 5.0.8 5.0.9 4.0.9 5.0.0 5.0.1 5.0.2 5.0.3 5.0.4 5.0.5 5.0.6 5.0.7 trunk 1.0.0 1.0.1 1.0.2 1.0.3 1.0.4 1.0.5 1.0.6 All 57 releases
taskbuilder / includes / admin / tasks / open_task / wppm_open_task.php

wppm_open_task.php in Taskbuilder – Project Management & Task Management Tool With Kanban Board 5.0.5, at includes/admin/tasks/open_task/wppm_open_task.php

1,082 lines 69.8 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 if ( ! defined( 'ABSPATH' ) ) {
3 exit; // Exit if accessed directly
4 }
5
6 global $current_user,$wpdb,$wppmfunction;
7 $id = isset($_POST) && isset($_POST['id']) ? intval(sanitize_text_field(wp_unslash($_POST['id']))) : "0";
8 $task_list_view = get_option('wppm_default_task_list_view');
9 $wppm_default_task_date = get_option('wppm_default_task_date');
10 $wppm_task_time = get_option('wppm_task_time');
11 $appearance_settings = get_option("wppm-ap-individual-task");
12 $wppm_tinymce_visibility_open_task = get_option('wppm_tinymce_visibility_open_task');
13 $settings = get_option("wppm-ap-modal");
14 $wppm_rich_text_editor = get_option('wppm_rich_text_editor');
15 $wppm_toolbar_actions = get_option('wppm_toolbar_actions');
16 $wppm_date_setting = get_option('wppm_date_setting');
17 $wppm_task_hide_comment_section = get_option('wppm_task_hide_comment_section');
18 $wppm_deafault_time_duration_task = get_option('wppm_display_time_duration_task');
19 $url_auth = false;
20 $auth_id = $wppmfunction->wppm_get_auth_code($id);
21 $auth_id = sanitize_text_field($auth_id);
22 // url authentication.
23 $auth_code = isset( $_POST['auth-code'] ) ? sanitize_text_field( wp_unslash($_POST['auth-code'] ) ) : ''; // phpcs:ignore
24 if ( ! $auth_code ) {
25 $auth_code = isset( $_POST['auth_code'] ) ? sanitize_text_field( wp_unslash($_POST['auth_code'] ) ) : ''; // phpcs:ignore
26 }
27
28 if ( $auth_code && $auth_id == $auth_code ) {
29 $url_auth = true;
30 }
31 if (!(($current_user->ID && $current_user->has_cap('manage_options')) || ($wppmfunction->has_permission('view_task',$id)) || ($url_auth==true))) { ?>
32 <div style="align-item:center;" ><h6><?php esc_attr_e( 'Unauthorized access!', 'taskbuilder' ); ?></h6></div>
33 <?php
34 wp_die();
35 }
36 $proj_id = isset($_POST) && isset($_POST['proj_id']) ? intval(sanitize_text_field(wp_unslash($_POST['proj_id']))) : 0;
37 $current_date = wp_date('Y-m-d');
38 $wppm_current_user_capability = get_user_meta( $current_user->ID, 'wppm_capability', true );
39 $cu_id = absint($current_user->ID);
40 if(!empty($id)){
41 $task = $wpdb->get_row($wpdb->prepare("SELECT * FROM {$wpdb->prefix}wppm_task where id=%d",$id));
42 $project_data = $wppmfunction->get_project($task->project);
43 $task_comment = $wpdb->get_results( $wpdb->prepare("SELECT * FROM {$wpdb->prefix}wppm_task_comment where task_id=%d ORDER BY create_time DESC",$id));
44 $orderby_proj_sql = (sanitize_sql_orderby( "create_time DESC" ));
45 $task_comment = $wpdb->get_results( $wpdb->prepare("SELECT * FROM {$wpdb->prefix}wppm_task_comment where task_id=%d ORDER BY ". $orderby_proj_sql,$id));
46 $task_proj = isset($task->project) ? absint($task->project) :"";
47 $task_id = isset($task->id) ? absint($task->id):"";
48 }
49 $user_role = $wpdb->get_var( $wpdb->prepare("SELECT role_id FROM {$wpdb->prefix}wppm_project_users where proj_id = %d AND user_id = %d",$task_proj,$cu_id));
50 if(!empty($task_proj)){
51 $project_name = $wpdb->get_var( $wpdb->prepare("SELECT project_name FROM {$wpdb->prefix}wppm_project where id= %d",$task_proj));
52 }
53 $wppm_checklist=$wpdb->get_results( $wpdb->prepare("SELECT * FROM {$wpdb->prefix}wppm_checklist where task_id=%d",$task_id));
54 if(!empty($task->status)){
55 $task_status_var = absint($task->status);
56 $task_status = $wpdb->get_row( $wpdb->prepare("SELECT * FROM {$wpdb->prefix}wppm_task_statuses where id=%d",$task_status_var));
57 }
58 if(!empty($task->priority)){
59 $task_priority_var = absint($task->priority);
60 $task_priority = $wpdb->get_row( $wpdb->prepare("SELECT * FROM {$wpdb->prefix}wppm_task_priorities where id=%d",$task_priority_var));
61 }
62 if(!empty($task->users)){
63 $users = explode(",",$task->users);
64 }
65
66 if(!empty($task->description)){
67 $task_description = !empty($task->description) ? wp_kses_post(wpautop($task->description)) : '';
68 }
69
70 if($wppm_task_time == 1){
71 $tsDate = new DateTime($task->start_date);
72 $teDate = new DateTime($task->end_date);
73 if($task->start_date=='0000-00-00 00:00:00'){
74 if($wppm_date_setting=='Y-m-d H:i:s'){
75 $task_start_date = '0000-00-00 00:00:00';
76 }elseif($wppm_date_setting=='d-m-Y H:i:s'){
77 $task_start_date = '00-00-0000 00:00:00';
78 }elseif($wppm_date_setting=='m-d-Y H:i:s'){
79 $task_start_date = '00-00-0000 00:00:00';
80 }else{
81 $task_start_date = '0000-00-00 00:00:00';
82 }
83 }if($task->end_date=='0000-00-00 00:00:00'){
84 if($wppm_date_setting=='Y-m-d H:i:s'){
85 $task_end_date = '0000-00-00 00:00:00';
86 }elseif($wppm_date_setting=='d-m-Y H:i:s'){
87 $task_end_date = '00-00-0000 00:00:00';
88 }elseif($wppm_date_setting=='m-d-Y H:i:s'){
89 $task_end_date = '00-00-0000 00:00:00';
90 }else{
91 $task_end_date = '0000-00-00 00:00:00';
92 }
93 }if($task->start_date!='0000-00-00 00:00:00'){
94 if(!empty($wppm_date_setting)){
95 $task_start_date = $tsDate->format($wppm_date_setting);
96 }else{
97 $task_start_date = isset($task->start_date)? $task->start_date:"";
98 }
99 }
100 if($task->end_date!='0000-00-00 00:00:00'){
101 if(!empty($wppm_date_setting)){
102 $task_end_date = $teDate->format($wppm_date_setting);
103 }else{
104 $task_end_date = isset($task->end_date) ? $task->end_date: "" ;
105 }
106 }
107 } elseif($wppm_task_time == 0){
108 $tsDate = isset($task->start_date) ? new DateTime($task->start_date): "";
109 $teDate = isset($task->end_date) ? new DateTime($task->end_date):"";
110 $task_start_date = !empty($tsDate) ? $tsDate->format( $wppm_date_setting):"";
111 $task_end_date = !empty($teDate) ? $teDate->format( $wppm_date_setting):"";
112 if($task->start_date=='0000-00-00 00:00:00'){
113 if($wppm_date_setting=='Y-m-d H:i:s'){
114 $task_start_date = '0000-00-00';
115 }elseif($wppm_date_setting=='d-m-Y H:i:s'){
116 $task_start_date = '00-00-0000';
117 }elseif($wppm_date_setting=='m-d-Y H:i:s'){
118 $task_start_date = '00-00-0000';
119 }else{
120 $task_start_date = '0000-00-00';
121 }
122 }
123 if($task->end_date=='0000-00-00 00:00:00'){
124 if($wppm_date_setting=='Y-m-d H:i:s'){
125 $task_end_date = '0000-00-00';
126 }elseif($wppm_date_setting=='d-m-Y H:i:s'){
127 $task_end_date = '00-00-0000';
128 }elseif($wppm_date_setting=='m-d-Y H:i:s'){
129 $task_end_date = '00-00-0000';
130 }
131 else{
132 $task_end_date = '0000-00-00';
133 }
134 }if($task->start_date!='0000-00-00 00:00:00'){
135 if($wppm_date_setting=='Y-m-d H:i:s'){
136 $task_start_date = $tsDate->format('Y-m-d');
137 }elseif($wppm_date_setting=='d-m-Y H:i:s'){
138 $task_start_date = $tsDate->format('d-m-Y');
139 }elseif($wppm_date_setting=='m-d-Y H:i:s'){
140 $task_start_date = $tsDate->format('m-d-Y');
141 }else{
142 $task_start_date = $tsDate->format('Y-m-d');
143 }
144 }if($task->end_date!='0000-00-00 00:00:00'){
145 if($wppm_date_setting=='Y-m-d H:i:s'){
146 $task_end_date = $teDate->format('Y-m-d');
147 }elseif($wppm_date_setting=='d-m-Y H:i:s'){
148 $task_end_date = $teDate->format('d-m-Y');
149 }elseif($wppm_date_setting=='m-d-Y H:i:s'){
150 $task_end_date = $teDate->format('m-d-Y');
151 }else{
152 $task_end_date = $teDate->format('Y-m-d');
153 }
154 }
155 }
156 $flag = false;
157 $wppm_task_fillter = $wpdb->get_results( $wpdb->prepare("SELECT * FROM {$wpdb->prefix}wppm_task where id=%d",$id));
158 if(!empty($wppm_task_fillter)){
159 foreach($wppm_task_fillter as $key_filter=>$val_filter){
160 $val_array = (array) $val_filter;
161 $tusers = $val_array['users'];
162 $tusers_arr = explode(',',$tusers);
163 $tproject_id = $val_array['project'];
164 $tproject_id = absint($tproject_id);
165 if(!empty($tusers) && in_array($current_user->ID,$tusers_arr)){
166 $project_user_role = $wpdb->get_var( $wpdb->prepare("SELECT role_id FROM {$wpdb->prefix}wppm_project_users WHERE proj_id = %d AND user_id = %d",$tproject_id,$cu_id));
167 $project_users = $wpdb->get_var( $wpdb->prepare("SELECT users FROM {$wpdb->prefix}wppm_project WHERE id = %d",$tproject_id));
168 $project_users_arr = explode(',',(string)$project_users);
169 if((!empty($project_user_role)) && ($project_user_role == 1) && in_array($current_user->ID,$project_users_arr)){
170 $flag= true;
171 break;
172 }
173 }
174 }
175 }
176 $project_creator = $wpdb->get_var( $wpdb->prepare("SELECT created_by FROM {$wpdb->prefix}wppm_project WHERE created_by = %d",$cu_id));
177 ?>
178 <form id="wppm_open_task" method="post">
179 <div id="wppm_alert_success" class="alert alert-success wppm_alert" style="display:none;" role="alert">
180 <img src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/success.svg'); ?>" alt="success"> <span class="wppm_alert_text"></span>
181 </div>
182 <div id="wppm_alert_error" class="alert alert-danger wppm_alert" style="display:none;" role="alert">
183 <img src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/warning-triangle.svg'); ?>" alt="warning-triangle"> <span class="wppm_alert_text"></span>
184 </div>
185 <div class="wppm_headers row">
186 <div class="col-sm-8">
187 <span class="wppm-heading-inline">
188 <?php echo esc_html_e('Task','taskbuilder');?>
189 </span><?php
190 if(($current_user->has_cap('manage_options') || $wppmfunction->has_permission('add_new_task',$task_id) || ($flag==true) || $project_creator!="") && $task->is_archived!=1){
191 $style = "display:inline;";
192 }else{
193 $style = "display:none;";
194 }
195 $style = apply_filters('wppm_add_new_task_btn_style_open_task_form',$style);
196 if(($wppm_task_fillter && (!empty($project_user_role)) && ($project_user_role == 1) && in_array($current_user->ID,$project_users_arr)) || $wppm_current_user_capability == 'wppm_admin'|| $wppm_current_user_capability == 'wppm_manager' || $current_user->has_cap('manage_options') || $project_data['created_by']==$current_user->ID){
197 $archive_style= "display:inline;";
198 }else{
199 $archive_style= "display:none;";
200 }
201 if($proj_id==0) {
202 ?> <span onclick="wppm_add_new_task(<?php echo esc_attr($proj_id) ?>)" class="wppm_add_new_task_btn" id="wppm_add_new_task_btn" style="<?php echo esc_attr($style)?>" title="<?php esc_attr_e( 'Create Task', 'taskbuilder' ); ?>"><img src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/plus.svg'); ?>" alt="add"></span>
203 <?php }
204 else{ ?>
205 <span class="wppm_add_new_task_btn" id="wppm_add_new_task_btn" title="<?php esc_attr_e( '"Create Task', 'taskbuilder' ); ?>" onclick="wppm_create_project_task(<?php echo esc_attr($proj_id) ?>)" style="<?php echo esc_attr($style) ?>"><img src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/plus.svg'); ?>" alt="add"></span>
206 <?php } ?>
207 <?php if($proj_id==0) {
208 $task_list_function = ($task_list_view==1)?"wppm_get_task_list()":"wppm_view_task_search_filter()";
209 ?>
210 <span class="wppm-task-list-btn" id="wppm_task_list_btn" title="<?php esc_attr_e( 'Task List', 'taskbuilder' ); ?>"onclick="<?php echo esc_attr($task_list_function) ?>"><img src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/list.svg'); ?>" alt="list"></span>
211 <?php }
212 else{
213 ?>
214 <span class="wppm-task-list-btn" id="wppm_task_list_btn" title="<?php esc_attr_e( 'Task List', 'taskbuilder' ); ?>" onclick="wppm_get_project_tasks(<?php echo esc_attr($proj_id) ?>)"><img src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/list.svg'); ?>" alt="list"></span>
215 <?php } ?>
216 <?php $style = (($current_user->ID && $current_user->has_cap('manage_options')) || ($wppmfunction->has_permission('delete_task',$id)) || $wppm_current_user_capability == 'wppm_admin'|| $project_data['created_by']==$current_user->ID )? "display:inline":"display:none"; ?>
217 <?php $clone_style = ((($current_user->ID && $current_user->has_cap('manage_options') || $wppm_current_user_capability == 'wppm_admin') || ($wppmfunction->has_permission('clone_task',$id)) || $project_data['created_by']==$current_user->ID ) && $task->is_archived!=1) ? "display:inline":"display:none"; ?>
218 <?php $ar_css = ($task->is_archived==1) ? "display:none;" : "display:inline"; ?>
219 <span class="wppm-delete_task_btn" id="wppm_delete_task_btn" title="Delete Task" onclick="wppm_get_delete_task(<?php echo esc_attr($id) ?>,<?php echo esc_attr($proj_id) ?>)" style="<?php echo esc_attr($style) ?>"><img src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/bin.svg'); ?>" alt="delete"></span>
220 <div class="wppm-clone_task_btn" id="wppm_clone_task_btn" title="Clone Task" onclick="wppm_clone_task(<?php echo esc_attr($id) ?>,<?php echo esc_attr($proj_id)?>)" style="<?php echo esc_attr($clone_style) ?>"><img src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/duplicate.svg'); ?>" alt="clone"></div>
221 <span class="wppm-print_task_btn" id="wppm_print_task_btn" title="Print Task" onclick="wppm_print_task(<?php echo esc_attr($id) ?>)"><img src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/printer_menu.svg'); ?>" alt="print" style="<?php echo esc_attr($ar_css);?>"></span>
222 <span class="wppm-archieve_task_btn" id="wppm_archieve_task_btn" title="<?php echo ($task->is_archived==1 ) ? 'Restore Task' : 'Archive Task'; ?>" onclick="wppm_archive_task(<?php echo esc_attr($id) ?>,<?php echo esc_attr($task->is_archived) ?>)" style="<?php echo esc_attr($archive_style) ?>"><img src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/archive.svg'); ?>" alt="archive"></span>
223 <input type="hidden" name="wppm_archive_task_ajax_nonce" id="wppm_archive_task_ajax_nonce" value="<?php echo esc_attr( wp_create_nonce( 'wppm_archive_task_ajax_nonce' ) ); ?>">
224 <div class="menu" id="wppmprint_menu" onclick="event.stopPropagation();">
225 <a href="#" id="wppm_openPDF" onclick="wppm_open_pdf(<?php echo esc_attr($id) ?>)">🖨️ <?php echo esc_html_e('Open In Browser','taskbuilder');?></a>
226 <a href="#" id="wppm_downloadPDF" onclick="wppm_download_pdf(<?php echo esc_attr($id) ?>)">💾 <?php echo esc_html_e('Download PDF','taskbuilder');?></a>
227 </div>
228 <?php do_action('wppm_individual_task_button',$id);?>
229 </div>
230 </div>
231 <div id="wppm_load_individual_task_container" class="row">
232 <div class="col-sm-8 wppm_body col-md-9">
233 <div class="wppm_task_details_container">
234 <div class="row">
235 <div class="col-sm-12">
236 <span class="wppm_task_label"> <?php echo isset($task->task_name) ? esc_html($task->task_name ):"" ?>
237 <?php if (($wppmfunction->has_permission('change_task_details',$id) || $current_user->has_cap('manage_options') || $wppm_current_user_capability == 'wppm_admin') && $task->is_archived!=1) { ?>
238 <span id="wppm_individual_edit_task_subject" onclick="wppm_edit_task_details(<?php echo esc_attr($id) ?>,<?php echo esc_attr($proj_id) ?>)" class="btn btn-sm wppm_action_btn" style="background-color:#FFFFFF !important;color:#000000 !important;"><img src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/edit_01.svg'); ?>" alt="edit"></span>
239 <?php } ?>
240 </span>
241 </div>
242 </div>
243 <div class="row">
244 <div class="col-sm-3">
245 <span class="wppm_task_details_label"><?php echo esc_html_e('Project:','taskbuilder');?></span>
246 </div>
247 <div class="col-sm-9">
248 <span class="wppm_task_details"><?php echo (isset($project_name))? esc_html($project_name ):"" ?></span>
249 </div>
250 </div>
251 <div class="row">
252 <div class="col-sm-3">
253 <span class="wppm_task_details_label"><?php echo esc_html_e('Created On:','taskbuilder');?></span>
254 </div>
255 <div class="col-sm-9"><?php
256 $tcDate = isset($task->date_created) ? new DateTime($task->date_created): "";
257 if($wppm_task_time !=0){
258 if($wppm_date_setting=='Y-m-d H:i:s'){
259 $task_create_date = !empty($tcDate) ? $tcDate->format('Y-m-d H:i:s'):"";
260 } elseif($wppm_date_setting=='d-m-Y H:i:s'){
261 $task_create_date = !empty($tcDate) ? $tcDate->format('d-m-Y H:i:s'):"";
262 } elseif($wppm_date_setting=='m-d-Y H:i:s'){
263 $task_create_date = !empty($tcDate) ? $tcDate->format('m-d-Y H:i:s'):"";
264 } else {
265 $task_create_date = !empty($tcDate) ? $tcDate->format('Y-m-d H:i:s'):"";
266 }
267 } elseif($wppm_task_time == 0){
268 if($wppm_date_setting=='Y-m-d H:i:s'){
269 $task_create_date = !empty($tcDate) ? $tcDate->format('Y-m-d'):"";
270 } elseif($wppm_date_setting=='d-m-Y H:i:s'){
271 $task_create_date = !empty($tcDate) ? $tcDate->format('d-m-Y'):"";
272 } elseif($wppm_date_setting=='m-d-Y H:i:s'){
273 $task_create_date = !empty($tcDate) ? $tcDate->format('m-d-Y'):"";
274 } else {
275 $task_create_date = !empty($tcDate) ? $tcDate->format('Y-m-d'):"";
276 }
277 } ?>
278 <span class="wppm_task_details"><?php echo (isset($task_create_date))? esc_html($task_create_date):"" ?></span>
279 </div>
280 </div>
281 <?php if($wppm_default_task_date == 1 && $wppm_deafault_time_duration_task==0){ ?>
282 <div class="row">
283 <div class="col-sm-3">
284 <span class="wppm_task_details_label"><?php echo esc_html_e('Start Date:','taskbuilder');?></span>
285 </div>
286 <div class="col-sm-9">
287 <span class="wppm_task_details" id="wppm_edit_tstart_date"><?php echo (isset($task_start_date))? esc_html($task_start_date):"" ?></span>
288 </div>
289 <input type="hidden" name="wppm_edit_tstart_date_ajax_nonce" id="wppm_edit_tstart_date_ajax_nonce" value="<?php echo esc_attr( wp_create_nonce( 'wppm_set_change_task_start_date' ) ); ?>">
290 </div>
291 <div class="row">
292 <div class="col-sm-3">
293 <span class="wppm_task_details_label"><?php echo esc_html_e('End Date:','taskbuilder');?></span>
294 </div>
295 <div class="col-sm-9">
296 <?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"; ?>
297 <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>
298 </div>
299 <input type="hidden" name="wppm_edit_tend_date_ajax_nonce" id="wppm_edit_tend_date_ajax_nonce" value="<?php echo esc_attr( wp_create_nonce( 'wppm_set_change_task_end_date' ) ); ?>">
300 </div>
301 <?php }
302 if($wppm_deafault_time_duration_task==1){
303 $wppm_task_duration = $wppmfunction->wppm_get_duration($task->start_date,$task->end_date);
304 $tstatus = isset($task->status) ? $task->status :"";
305 $style = (!empty($task->end_date) && $tstatus!=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:#FF1111":"color:#2C3E51"; ?>
306 <div class="row">
307 <div class="col-sm-3">
308 <span class="wppm_task_details_label"><?php echo esc_html_e('Task Duration:','taskbuilder');?></span>
309 </div>
310 <div class="col-sm-9">
311 <span class="wppm_task_details" id="wppm_edit_task_duration" style="<?php echo esc_attr($style); ?>"><?php echo (isset($wppm_task_duration))? esc_html($wppm_task_duration ): "" ?></span>
312 </div>
313 </div> <?php
314 }?>
315 <div class="row">
316 <div class="col-sm-3">
317 <span class="wppm_task_details_label"><?php echo esc_html_e('Task Priority:','taskbuilder');?></span>
318 </div>
319 <div class="col-sm-9">
320 <span class="wppm_task_details_priority"><span class="wppm_admin_label" style="background-color:<?php echo (isset($task_priority->bg_color))? esc_html($task_priority->bg_color):""?>;color:<?php echo (isset($task_priority->color))? esc_html($task_priority->color):""?>;"><?php echo (isset($task_priority->name)) ? esc_html($task_priority->name):"" ?> </span></span>
321 </div>
322 </div>
323 <div class="row">
324 <div class="col-sm-3">
325 <span class="wppm_task_details_label"><?php echo esc_html_e('Description:','taskbuilder');?></span>
326 </div>
327 <div class="col-sm-9">
328 <span class="wppm_task_description"><?php echo (!empty($task_description))? wp_kses_post(wpautop($task_description)):"" ?></span>
329 </div>
330 </div>
331 <?php do_action('wppm_after_task_details_in_open_task',$task->id, $task->project);?>
332 </div>
333 <div class="wppm_task_checklist_container" id="wppm_task_checklist_container">
334 <div id="wppm_checklist_container">
335 <?php
336 if(!empty($wppm_checklist)){
337 foreach( $wppm_checklist as $key=>$list){
338 ?>
339 <div class="row">
340 <div class="col-sm-8">
341 <span class="wppm_checklist_label"><img src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/checklist.svg'); ?>" alt="checklist"><?php echo isset($list->checklist_name) ? esc_html($list->checklist_name):"" ?></span>
342 </div>
343 <?php
344 $check_style = (($list->created_by == $current_user->ID || $current_user->has_cap('manage_options') || $user_role == 1 || $wppmfunction->has_permission('edit_checklist',$task->id)) && $task->is_archived!=1)? "display:inline":"display:none"; ?>
345 <?php $disabled = (($list->created_by == $current_user->ID || $current_user->has_cap('manage_options') || $user_role == 1 || $wppmfunction->has_permission('delete_checklist',$task->id)|| ($wppmfunction->has_permission('add_checklist',0))) && $task->is_archived!=1)? "":"disabled"; ?>
346 <?php if($wppmfunction->has_permission('add_checklist',$task->id) || $current_user->has_cap('manage_options')){ ?>
347 <div class="col-sm-4" style="text-align:right;<?php echo esc_attr($check_style) ?>">
348 <a class="wppm_delete_checklist" onclick="wppm_delete_checklist(<?php echo esc_attr($list->id);?>,<?php echo esc_attr($task->id);?>,<?php echo esc_attr($proj_id);?>)"><?php echo esc_html_e('Delete Checklist','taskbuilder');?></a>
349 <input type="hidden" name="wppm_delete_checklist_ajax_nonce" id="wppm_delete_checklist_ajax_nonce" value="<?php echo esc_attr( wp_create_nonce( 'wppm_delete_checklist' ) ); ?>">
350 </div>
351 <?php }?>
352 </div>
353 <div class="wppm_progress_bar_container row">
354 <div class="col-sm-4">
355 <span class="wppm_progressbar_label" id="wppm_progressbar_label_<?php echo esc_attr($list->id)?>">0%</span>
356 </div>
357 <div class="wppm_progress_bar col-sm-8">
358 <div id="CheckProgress_<?php echo esc_attr($list->id);?>" class="wppm_checkprogress" role="progressbar" style="width: 0%" aria-valuemin="0" aria-valuemax="100"></div>
359 </div>
360 </div>
361 <?php
362 $list_id = absint($list->id);
363 $sql = $wpdb->prepare(
364 "SELECT *
365 FROM {$wpdb->prefix}wppm_checklist_items
366 WHERE checklist_id = %d
367 ORDER BY load_order ASC",
368 $list_id
369 );
370 // Execute
371 $wppm_checklist_items = $wpdb->get_results($sql);
372 ?>
373 <ul id="wppm_checklist_items_container_<?php echo esc_attr($list->id) ?>" class="wppm_checklist_items_container" style="list-style-type: none; padding-left:0px; margin-top:10px; margin-bottom:10px;">
374 <?php
375 if(!empty( $wppm_checklist_items)){
376 foreach($wppm_checklist_items as $key=>$val){
377 $checked = $val->checked == 1 ? 'checked="checked"' : '';
378 ?>
379 <li id="wppm_checklist_<?php echo esc_attr($val->id) ?>" data-id="<?php echo esc_attr($val->id); ?>" class="row wppm_checklist_item" style="margin-bottom:10px;font: 15px 'Helvetica Neue',Helvetica,Arial,sans-serif;">
380 <div class="col-sm-8" id="wppm_checklist_item_container_<?php echo esc_attr($val->id) ?>">
381 <span class="wppm_chk_items_drag">☰</span>
382 <input id="wppm_checklist_item_<?php echo esc_attr($val->id) ?>" class="wppm_checklist_item_<?php echo esc_attr($val->checklist_id) ?>" onchange="wppm_checklist_progress(<?php echo esc_attr($val->checklist_id) ?>,<?php echo esc_attr($val->id) ?>,<?php echo esc_attr($task->id) ?>)" type="checkbox" name="wppm_checklist" <?php echo esc_attr($checked) ?> value="<?php echo esc_attr($val->id) ?>" <?php echo esc_attr($disabled) ?> style="margin:5px;"><label style="padding-top: 5px;font-weight: normal;font: 13px 'Helvetica Neue',Helvetica,Arial,sans-serif;"><?php echo isset($val->item_name) ? esc_html($val->item_name) : "" ?></label>
383 <input type="hidden" name="wppm_checklist_progress_ajax_nonce" id="wppm_checklist_progress_ajax_nonce" value="<?php echo esc_attr( wp_create_nonce( 'wppm_set_checklist_progress' ) ); ?>">
384 </div>
385 <?php if (($list->created_by == $current_user->ID || $current_user->has_cap('manage_options') || $user_role == 1 || $wppmfunction->has_permission('delete_checklist',$task->id)) && $task->is_archived!=1) { ?>
386 <div class="col-sm-4" id="wppm_checklist_action_<?php echo esc_attr($val->id) ?>" style="text-align:right; display:none;cursor:pointer;">
387 <span onclick=wppm_edit_checklist_item(<?php echo esc_attr($val->id) ?>,<?php echo esc_attr($val->checklist_id) ?>,<?php echo esc_attr( $proj_id);?>,<?php echo esc_attr($id) ?>)><img src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/edit1.svg'); ?>" alt="edit"></span>
388 <input type="hidden" name="wppm_edit_checklist_item_ajax_nonce" id="wppm_edit_checklist_item_ajax_nonce" value="<?php echo esc_attr( wp_create_nonce( 'wppm_edit_checklist_item' ) ); ?>">
389 <span onclick=wppm_delete_checklist_item(<?php echo esc_attr($val->id) ?>,<?php echo esc_attr($val->checklist_id) ?>,<?php echo esc_attr($proj_id);?>,<?php echo esc_attr($id) ?>)><img src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/trash.svg'); ?>" alt="delete"></span>
390 <input type="hidden" name="wppm_delete_checklist_item_ajax_nonce" id="wppm_delete_checklist_item_ajax_nonce" value="<?php echo esc_attr( wp_create_nonce( 'wppm_remove_checklist_item' ) ); ?>">
391 </div>
392 <?php } ?>
393 </li>
394 <?php
395 }
396 } ?>
397 <?php if(($wppmfunction->has_permission('add_checklist',$task->id) || $current_user->has_cap('manage_options')) && $task->is_archived!=1){ ?>
398 <div class="row">
399 <div class="col-sm-12 wppm_add_checklist_item_container_<?php echo esc_attr($list->id) ?>" style="padding-top:15px;">
400 <a class="wppm_add_checklist" id="wppm_add_checklist_item_btn_<?php echo esc_attr($list->id) ?>" onclick="wppm_add_checklist_item(<?php echo esc_attr($list->id)?>)"><?php echo esc_html_e('+ Add item','taskbuilder');?></a>
401 </div>
402 </div>
403 <?php }?>
404 <?php if(($wppmfunction->has_permission('add_checklist',$task->id) || $current_user->has_cap('manage_options')) && $task->is_archived!=1){ ?>
405 <div class="row">
406 <div class="col-sm-12" style="display:none;" id="wppm_add_checklist_label_container_<?php echo esc_attr($list->id) ?>">
407 <div class="row" id="wppm_add_new_checklist_item_<?php echo esc_attr($list->id) ?>">
408 <div class="col-sm-12">
409 <input type="text" id="wppm_checklist_item_label_<?php echo esc_attr($list->id) ?>" class="wppm_checklist_item_label_<?php echo esc_attr($list->id) ?>" placeholder="<?php echo esc_attr__('Add an item','taskbuilder') ?>" name="wppm_checklist_item_label" style="font: 13px 'Helvetica Neue',Helvetica,Arial,sans-serif;">
410 <input type="button" value="Add" class="btn btn-success btn-sm wppm_add_new_item_btn_<?php echo esc_attr($list->id); ?>" onclick="wppm_add_new_checklist_item(<?php echo esc_attr($list->id)?>,<?php echo esc_attr($task->id)?>,<?php echo esc_attr($proj_id) ?>)">
411 <input type="hidden" name="wppm_checklist_item_ajax_nonce" id="wppm_checklist_item_ajax_nonce" value="<?php echo esc_attr( wp_create_nonce( 'wppm_add_new_checklist_item' ) ); ?>">
412 <span onclick="wppm_remove_add_checklist_container(<?php echo esc_attr($list->id) ?>)"><img src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/cancel.svg'); ?>" alt="delete"></span>
413 </div>
414 </div>
415 </br>
416 </div>
417 </div>
418 <?php }?>
419 <hr class="wppm_checklist_divider">
420 </ul>
421 <?php
422 }
423 } ?>
424 </div><?php
425 if(($wppmfunction->has_permission('add_checklist',$task->id) || $current_user->has_cap('manage_options')) && $task->is_archived!=1){ ?>
426 <div id="wppm_add_checklist_container">
427 <div class="row">
428 <div class="col-sm-12">
429 <span id="wppm_add_checklist" onclick="wppm_add_checklist()"> <?php echo esc_html_e('+Add a checklist','taskbuilder')?> </span>
430 </div>
431 </div>
432 <div class="row" id="wppm_add_new_checklist" style="display:none;">
433 <div class="col-sm-12">
434 <input type="text" class="wppm_checklist_label" placeholder="<?php echo esc_attr__('Please insert checklist title','taskbuilder');?>" id="wppm_checklist_label" name="wppm_checklist_label">
435 <input type="button" value="Add" id="wppm_checklist_btn" class="btn btn-success btn-sm" onclick="wppm_add_new_checklist(<?php echo esc_attr($id)?>,<?php echo esc_attr($proj_id) ?>)">
436 <input type="hidden" name="wppm_checklist_ajax_nonce" id="wppm_checklist_ajax_nonce" value="<?php echo esc_attr( wp_create_nonce( 'wppm_add_new_checklist' ) ); ?>">
437 <span onclick="wppm_remove_add_checklist()"><img src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/cross1.svg'); ?>"></span>
438 </div>
439 </div>
440 </br>
441 </div><?php
442 } ?>
443 </div>
444 <div id="wppm_activity_container" style="<?php echo ($wppm_task_hide_comment_section==0) ? 'display:none;' : 'display:block;' ?>">
445 <div class="row">
446 <div class="col-sm-12" style="margin-top:5px;">
447 <span class="wppm_task_discussion"><?php echo esc_html_e('Comment','taskbuilder')?></span><br>
448 </div>
449 </div>
450 <div class="row">
451 <div class="col-sm-12" style="<?php echo ($task->is_archived==1) ? 'display:none;' : 'display:block;' ?>">
452 <textarea id="wppm_task_comment" placeholder="<?php echo esc_attr__('Write a comment...','taskbuilder');?>" onclick="wppm_add_task_comment()" name="wppm_task_comment"></textarea>
453 </div>
454 </div>
455 <div class="row" id="wppm_comment_btn" style="<?php echo ($task->is_archived==1) ? 'display:none;' : 'display:block;' ?>">
456 <div class="col-sm-6">
457 <span id="wppm_attach_file" onclick="wppm_upload_file()"><?php echo esc_html_e('Attach Files','taskbuilder')?></span>
458 </div>
459 <div class="col-sm-6">
460 <button type="button" id="wppm_individual_cancel_comment_btn" onclick="wppm_cancel_comment();" class="wppm-btn-cancel">
461 <?php echo esc_html_e('Cancel','taskbuilder')?>
462 </button>
463 <button type="button" id="wppm_individual_submit_task_comment_btn" style="background-color:<?php echo esc_attr($appearance_settings['comment-send-btn-bg-color'])?>;color:<?php echo esc_attr($appearance_settings['comment-send-btn-color'])?>!important;" onclick="wppm_submit_task_comment(<?php echo esc_attr($id); ?>,<?php echo esc_attr($proj_id); ?>);" class="wppm-btn">
464 <?php echo esc_html_e('SEND','taskbuilder')?>
465 </button>
466 <input type="hidden" name="_ajax_nonce" value="<?php echo esc_attr( wp_create_nonce( 'wppm_submit_task_comment' ) ); ?>">
467 </div>
468 </div>
469 <div class="row" style="<?php echo ($task->is_archived==1) ? 'display:none;' : 'display:block;' ?>">
470 <div class="wppm_attachment_container col-sm-12" style="display:none;">
471 </div>
472 </div>
473 </div>
474 <div class="wppm_thread_container" style="<?php echo ($wppm_task_hide_comment_section==0) ? 'display:none;' : 'display:block;' ?>">
475 <?php
476 if(!empty($task_comment)){
477 foreach($task_comment as $comment){
478 $task_comment_meta = $wpdb->get_row( $wpdb->prepare(
479 "SELECT *
480 FROM {$wpdb->prefix}wppm_task_comment_meta
481 WHERE task_id = %d
482 AND comment_id = %d",
483 absint($id),
484 absint($comment->id)
485 )
486 );
487 $user = get_userdata( $comment->created_by );
488 $comment_body = (!empty($comment->body) ? wp_kses_post(wpautop($comment->body)) : '');
489 $date = wp_date("Y-m-d H:i:s" ,strtotime($comment->create_time));
490 $thread_date = wp_date("d F Y, h:i:s A" ,strtotime($date));
491 $attachment_ids = isset($comment->attachment_ids)? $comment->attachment_ids : '';
492 if($attachment_ids!=""){
493 $attachments = explode(",",$attachment_ids);
494 } else {
495 $attachments = array();
496 }
497 ?>
498 <div class="wppm_thread">
499 <div class="wppm_thread_avatar">
500 <?php echo (get_avatar($comment->created_by, 40));?>
501 </div>
502 <div class="wppm_thread_body">
503 <div class="wppm_thread_user_name">
504 <strong style="color:<?php echo esc_attr($appearance_settings['comment-primary-color']);?>"><?php echo isset($user->display_name) ? esc_html($user->display_name) : '' ?></strong>
505 <span><?php if(!empty($comment->body) && (isset($task_comment_meta->comment_type) && $task_comment_meta->comment_type=='change_task_status')){
506 $comment_log_body = unserialize($comment->body);
507 $prev_status = $comment_log_body['prev_status'];
508 $new_status = $comment_log_body['new_status'];
509 if(isset($prev_status)){
510 $task_prev_status = $wpdb->get_row( $wpdb->prepare(
511 "SELECT * FROM {$wpdb->prefix}wppm_task_statuses where id = %d",
512 absint($prev_status)
513 ));
514 }
515 if(isset($new_status)){
516 $task_new_status = $wpdb->get_row( $wpdb->prepare(
517 "SELECT * FROM {$wpdb->prefix}wppm_task_statuses where id = %d",
518 absint($new_status)
519 ));
520 }
521 printf(
522 esc_html__( 'Changed status from %1$s to %2$s', 'taskbuilder' ),
523 esc_html( $task_prev_status->name ),
524 esc_html( $task_new_status->name )
525 );
526 } if(!empty($comment->body) && (isset($task_comment_meta->comment_type) && $task_comment_meta->comment_type=='change_task_creator')){
527 $comment_log_body = unserialize($comment->body);
528 $prev_user = $comment_log_body['prev_user'];
529 $new_user = $comment_log_body['new_user'];
530 $prev_user_data = get_userdata($prev_user);
531 $new_user_data = get_userdata($new_user);
532 printf(
533 esc_html__( 'Changed creator from %1$s to %2$s', 'taskbuilder' ),
534 esc_html( $prev_user_data->display_name ),
535 esc_html( $new_user_data->display_name )
536 );
537 }
538 if( !empty($comment->body) && (isset($task_comment_meta->comment_type) && $task_comment_meta->comment_type=='change_assign_user')){
539 esc_html_e("changed the Assignee","taskbuilder");
540 }
541 if(!empty($comment->body) && (isset($task_comment_meta->comment_type) && $task_comment_meta->comment_type=='change_task_priority')){
542 $comment_log_body = unserialize($comment->body);
543 $prev_prio = $comment_log_body['prev_prio'];
544 $new_prio = $comment_log_body['new_prio'];
545 if(isset($prev_prio)){
546 $prev_prio = absint($prev_prio);
547 $task_prev_prio = $wpdb->get_row( $wpdb->prepare(
548 "SELECT * FROM {$wpdb->prefix}wppm_task_priorities where id = %d",
549 $prev_prio
550 ));
551 }
552 if(isset($new_prio)){
553 $new_prio = absint($new_prio);
554 $task_new_prio = $wpdb->get_row( $wpdb->prepare(
555 "SELECT * FROM {$wpdb->prefix}wppm_task_priorities where id = %d",
556 $new_prio
557 ));
558 }
559 $task_prev_prio_name = !empty($task_prev_prio) ? $task_prev_prio->name: "None";
560 $task_new_prio_name = !empty($task_new_prio) ? $task_new_prio->name: "None";
561 printf(
562 esc_html__( 'Changed priority from %1$s to %2$s', 'taskbuilder' ),
563 esc_html( $task_prev_prio_name ),
564 esc_html( $task_new_prio_name )
565 );
566 }
567 ?>
568 <small class="wppm_comment_date" style="color:<?php echo esc_attr($appearance_settings['comment-date-color']);?>"><i><?php echo isset($thread_date) ? esc_html($thread_date) : '' ?></i></small>
569 <div class="wppm_thread_action">
570 <?php if((((($current_user->has_cap('manage_options')) || ($wppmfunction->has_comment_permission('edit_task_comment',$id,$comment->id))) && ((empty($task_comment_meta->comment_type)) || (isset($task_comment_meta->comment_type) && $task_comment_meta->comment_type=='comment')))) && ($task->is_archived!=1)){ ?>
571 <span title="Edit this thread" onclick="wppm_edit_thread(<?php echo esc_attr($comment->id)?>,<?php echo esc_attr($id) ?>,<?php echo esc_attr($proj_id) ?>)"><img src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/edit1.svg'); ?>" alt="edit"></span>
572 <span title="Delete this thread" onclick="wppm_delete_thread(<?php echo esc_attr($comment->id) ?>,<?php echo esc_attr($id) ?>,<?php echo esc_attr($proj_id) ?>)"><img src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/trash.svg'); ?>" alt="delete"></span>
573 <?php } ?>
574 </div>
575 </div>
576 <div class="wppm_thread_messege" style="color:<?php echo esc_attr($appearance_settings['comment-secondary-color']);?>">
577 <?php
578 $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(),));
579 if(!empty($comment_body) && ((empty($task_comment_meta->comment_type)) || (isset($task_comment_meta->comment_type) && $task_comment_meta->comment_type=='comment') || (isset($task_comment_meta->comment_type) && $task_comment_meta->comment_type=='delete_task_comment'))){
580 echo wp_kses(wpautop($comment_body),$allowedtags);
581 } elseif(!empty($comment->body) && (isset($task_comment_meta->comment_type) && $task_comment_meta->comment_type=='change_task_status')){ ?>
582 <span class="wppm_admin_label" style="margin-right: 10px; background-color:<?php echo isset($task_prev_status->bg_color) ? esc_attr($task_prev_status->bg_color):""; ?>;color:<?php echo isset($task_prev_status->color) ? esc_attr($task_prev_status->color): "" ?>;"><?php echo isset($task_prev_status->name) ? esc_attr($task_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($task_new_status->bg_color) ? esc_attr($task_new_status->bg_color):""; ?>;color:<?php echo isset($task_new_status->color) ? esc_attr($task_new_status->color): "" ?>;"><?php echo isset($task_new_status->name) ? esc_attr($task_new_status->name) : "" ?></span><?php
583 }elseif(!empty($comment->body) && (isset($task_comment_meta->comment_type) && $task_comment_meta->comment_type=='change_task_creator')){ ?>
584 <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
585 } elseif(!empty($comment->body) && (isset($task_comment_meta->comment_type) && $task_comment_meta->comment_type=='change_assign_user')) {
586 $comment_log_body = unserialize($comment->body);
587 $prev_assign_user = $comment_log_body['prev_assign_user'];
588 $new_assign_user = $comment_log_body['new_assign_user'];
589 $prev_assign_user_array = array();
590 $new_assign_user_array = array();
591 if(!empty($prev_assign_user)){
592 $prev_assign_user_array = explode(",",$prev_assign_user);
593 }
594 if(!empty($new_assign_user)){
595 $new_assign_user_array = explode(",",$new_assign_user);
596 }
597 $assign_user_name = array();
598 $assign_user_name_str = "";
599 if(!empty($prev_assign_user_array)){
600 foreach($prev_assign_user_array as $val){
601 $assign_user = get_userdata($val);
602 $assign_user_name[] = $assign_user->display_name;
603 }
604 $assign_user_name_str = implode(",",$assign_user_name);
605 }
606 $new_assign_user_name = array();
607 $new_assign_user_name_str = "";
608 if(!empty($new_assign_user_array)){
609 foreach($new_assign_user_array as $val){
610 $new_assign_user = get_userdata($val);
611 $new_assign_user_name[] = $new_assign_user->display_name;
612 }
613 $new_assign_user_name_str = implode(",",$new_assign_user_name);
614 }
615 ?>
616 <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
617 } elseif(!empty($comment->body) && (isset($task_comment_meta->comment_type) && $task_comment_meta->comment_type=='change_task_priority')){ ?>
618 <span class="wppm_admin_label" style="margin-right: 10px; background-color:<?php echo isset($task_prev_prio->bg_color) ? esc_attr($task_prev_prio->bg_color):""; ?>;color:<?php echo isset($task_prev_prio->color) ? esc_attr($task_prev_prio->color): "" ?>;"><?php echo !empty($task_prev_prio->name) ? esc_attr($task_prev_prio->name) : "None" ?></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($task_new_prio->bg_color) ? esc_attr($task_new_prio->bg_color):""; ?>;color:<?php echo isset($task_new_prio->color) ? esc_attr($task_new_prio->color): "" ?>;"><?php echo !empty($task_new_prio->name) ? esc_attr($task_new_prio->name) : "None" ?></span><?php
619 } ?>
620
621 </div>
622 <?php
623 if(!empty($attachments)&& (isset($task_comment_meta->comment_type) && !($task_comment_meta->comment_type=='delete_task_comment'))):?> <br>
624 <strong class="wppm_attachment_title"><?php echo esc_html_e('Attachments','taskbuilder');?>:</strong><br>
625 <table class="wppm_attachment_tbl">
626 <tbody>
627 <?php
628 if(!empty($attachments)){
629 foreach( $attachments as $attachment ):
630 $download_url = site_url('/').'?wppm_attachment='.$attachment.'&tid='.$id.'&tac='.$auth_id;
631 $attachment = absint($attachment);
632 $attach = $wpdb->get_row( $wpdb->prepare("SELECT * FROM {$wpdb->prefix}wppm_attachments where id=%d",$attachment));
633 $findStr = ".txt";
634 if(!empty( $attach)){
635 $attachment_name = preg_replace('/' . $findStr . '/', "", $attach->name, 1);
636 $attachment_name = sanitize_file_name($attachment_name);
637 }
638 if((!empty($attachment_name))){
639 ?>
640 <tr class="wppm_attachment_tr">
641 <td>
642 <a class="wppm_attachment_link" href="<?php echo esc_url($download_url) ?>" target="_blank">
643 <span class="wppm_attachment_file_name" style="padding: 7px;"><?php echo isset($attach->file_name) ? esc_html($attach->file_name):"";?></span></a>
644 <?php if((($comment->created_by == $current_user->ID) || ($current_user->has_cap('manage_options')) || ($wppmfunction->has_comment_permission('edit_task_comment',$id,$comment->id))) && ($task->is_archived!=1)){ ?>
645 <span class="wppm_thread_action_btn" onclick="wppm_thread_attachment_remove(this,<?php echo !empty($attach->id) ? esc_attr($attach->id) : 0; ?>,<?php echo !empty($comment->id) ? esc_attr($comment->id) : 0; ?>,<?php echo !empty($id) ? esc_attr($id) : 0; ?>,<?php echo !empty($proj_id) ? esc_attr($proj_id) : 0;?>)"><img src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/cancel.svg'); ?>" alt="cancel"></span>
646 <?php } ?>
647 </td>
648 </tr>
649 <input type="hidden" name="wppm_ajax_nonce" id="wppm_ajax_nonce" value="<?php echo esc_attr( wp_create_nonce( 'wppm_remove_thread_attachment' ) ); ?>">
650 <?php }
651 endforeach;
652 } ?>
653 </tbody>
654 </table>
655 <?php do_action('wppm_after_comment_attachment',$id,$comment->id);?>
656 <?php endif;?>
657 </div>
658 </div>
659 <?php }
660 } ?>
661 </div>
662 </div>
663 <div class="wppm_individual_task_widget col-sm-4 wppm_sidebar col-md-3">
664 <div class="row wppm_widget" id="wppm_status_widget">
665 <div class="wppm-widget-header" style="background-color:<?php echo esc_attr($appearance_settings['widget-header-bg-color'])?>">
666 <h4 class="widget_header" style="color:<?php echo esc_attr($appearance_settings['widget-header-text-color'])?>"><?php echo esc_html_e('Status','taskbuilder')?></h4>
667 <?php
668 if((($current_user->has_cap('manage_options') || $wppm_current_user_capability == ('wppm_admin') || ($flag==true) || ($wppmfunction->has_permission('change_task_status',$id))!="") && ($task->is_archived!=1))){
669 ?>
670 <span class="wppm_edit_task_details_widget" onclick="wppm_edit_task_status(<?php echo esc_attr($id) ?>,<?php echo esc_attr($proj_id) ?>)"><img src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/edit_01.svg'); ?>" alt="edit"></span>
671 <?php
672 }
673 ?>
674 </div>
675 <hr class="widget_divider">
676 <div class="wppm-widget-body" style="background-color:<?php echo esc_attr($appearance_settings['widget-body-bg-color'])?>">
677 <div class="wppm_sidebar_labels"><span class="wppm_label_info" style="color:<?php echo esc_attr($appearance_settings['widget-body-label-color'])?>"><?php echo esc_html_e('Status','taskbuilder')?>:</span> <span class="wppm_admin_label" style="background-color:<?php echo (isset($task_status->bg_color))? esc_attr($task_status->bg_color):""?>;color:<?php echo (isset($task_status->color))? esc_attr($task_status->color):""?>;"><?php echo (isset($task_status->name))? esc_attr($task_status->name):"" ?> </span></div>
678 </div>
679 </div>
680 <div class="row wppm_widget" id="wppm_raisedby_widget">
681 <div class="wppm-widget-header" style="background-color:<?php echo esc_attr($appearance_settings['widget-header-bg-color'])?>">
682 <h4 class="widget_header" style="color:<?php echo esc_attr($appearance_settings['widget-header-text-color'])?>">
683 <?php echo esc_html_e('Task Creator','taskbuilder')?></h4>
684 <?php if ((($wppmfunction->has_permission('change_raised_by',$id ) || $current_user->has_cap('manage_options')) && ($task->is_archived!=1))) { ?>
685 <span class="wppm_edit_task_details_widget" onclick="wppm_edit_task_creator(<?php echo esc_attr($id) ?>,<?php echo esc_attr($proj_id) ?>)"><img src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/edit_01.svg'); ?>" alt="edit"></span>
686 <?php } ?>
687 </div>
688 <hr class="widget_divider"> <?php
689 if(isset($task->created_by)){
690 $user_info = get_userdata($task->created_by);
691 }else{
692 $user_info ="";
693 }
694 ?>
695 <div class="wppm-widget-body" style="background-color:<?php echo esc_attr($appearance_settings['widget-body-bg-color'])?>">
696 <div style="padding:2px 0;">
697 <span class="wppm_task_user_avatar"><?php echo (get_avatar($task->created_by, 25, "mysteryman")); ?></span>
698 <span class="wppm_task_user_names" style="color:<?php echo esc_attr($appearance_settings['widget-body-text-color'])?>;"><?php echo isset($user_info->display_name)?esc_html($user_info->display_name):""; ?></span>
699 </div>
700 </div>
701 </div>
702 <div class="row wppm_widget" id="wppm_task_users_widget_container">
703 <div class="wppm-widget-header" style="background-color:<?php echo esc_attr($appearance_settings['widget-header-bg-color'])?>">
704 <h4 class="widget_header" style="color:<?php echo esc_attr($appearance_settings['widget-header-text-color'])?>;"><?php echo esc_html_e('Users','taskbuilder')?></h4>
705 <?php if ((($wppmfunction->has_permission('assign_task_users',$id ) || $current_user->has_cap('manage_options')) && ($task->is_archived!=1))) { ?>
706 <span class="wppm_edit_task_details_widget" onclick="wppm_edit_task_users(<?php echo esc_attr($id) ?>,<?php echo esc_attr($proj_id) ?>)"><img src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/edit_01.svg'); ?>" alt="edit"></span>
707 <?php } ?>
708 </div>
709 <hr class="widget_divider">
710 <div class="wppm-widget-body" style="background-color:<?php echo esc_attr($appearance_settings['widget-body-bg-color'])?>">
711 <div id="wppm_task_users">
712 <?php
713 $i=0;
714 if(!empty($users)){
715 foreach($users as $user) {
716 $user_data = get_userdata($user);
717 if(!empty($project_data['users'])){
718 $proj_users = explode(',',$project_data['users']);
719 if(in_array($user,$proj_users)){
720 $i++;
721 ?>
722 <div style="padding:2px 0;">
723 <span class="wppm_task_user_avatar"><?php echo (get_avatar($user, 25, "mysteryman")); ?></span>
724 <span class="wppm_task_user_names" style="color:<?php echo esc_attr($appearance_settings['widget-body-text-color'])?>;"><?php echo ((!empty($user_data))? esc_html($user_data->display_name) :"") ?></span>
725 </div>
726 <?php
727 }
728 }
729 }
730 }
731 if($i==0){ ?>
732 <span class="wppm_display_user_none" style="color:<?php echo esc_attr($appearance_settings['widget-body-text-color'])?>"><?php echo esc_html_e('None','taskbuilder'); ?></span> <?php
733 }
734 ?>
735 </div>
736 </div>
737 </div>
738 <?php do_action('wppm_after_task_widgets',$id,$task_id );?>
739 </div>
740 <input type="hidden" id="wppm_nonce" value="<?php echo esc_attr(wp_create_nonce('wppm_upload_file'))?>">
741 <input type="file" id="wppm_attachment_upload" class="hidden" onchange="">
742 </div>
743 </form>
744 <style>
745 .wppm_comment_date i:hover{
746 color: <?php echo esc_attr($appearance_settings['comment-date-hover-color'])?>;
747 }
748 #Layer_1{
749 fill:red!important;
750 }
751 </style>
752 <script>
753 jQuery( document ).ready( function( jQuery ) {
754 const button = document.getElementById('wppm_print_task_btn');
755 const box = document.getElementById('wppmprint_menu');
756
757 // Show box on button click
758 button.addEventListener('click', (e) => {
759 e.stopPropagation(); // prevent document click from firing immediately
760 box.style.display = 'flex';
761 });
762
763 // Prevent hiding when clicking inside box
764 box.addEventListener('click', (e) => {
765 e.stopPropagation();
766 });
767
768 // Hide when clicking outside
769 document.addEventListener('click', () => {
770 box.style.display = 'none';
771 });
772 <?php
773 if ((($current_user->ID && $current_user->has_cap('manage_options')) || $wppmfunction->has_permission('change_task_details',$task->id))){ ?>
774 jQuery("#wppm_edit_tstart_date").flatpickr({
775 enableTime: true,
776 dateFormat: "Y-m-d H:i",
777 onChange: function(selectedDates, dateStr, instance) {
778 var data = {
779 action: 'wppm_set_change_task_start_date',
780 task_id:<?php echo esc_attr($task->id);?>,
781 date:dateStr,
782 _ajax_nonce:jQuery('#wppm_edit_tstart_date_ajax_nonce').val()
783 };
784 jQuery.post(wppm_admin.ajax_url, data, function(response) {
785 instance.close();
786 wppm_open_task(<?php echo esc_attr($task->id);?>);
787 });
788 },
789 });
790 jQuery("#wppm_edit_tend_date").flatpickr({
791 enableTime: true,
792 dateFormat: "Y-m-d H:i",
793 onChange: function(selectedDates, dateStr, instance) {
794 var data = {
795 action: 'wppm_set_change_task_end_date',
796 task_id:<?php echo esc_attr($task->id);?>,
797 date:dateStr,
798 _ajax_nonce:jQuery('#wppm_edit_tend_date_ajax_nonce').val()
799 };
800 jQuery.post(wppm_admin.ajax_url, data, function(response) {
801 instance.close();
802 wppm_open_task(<?php echo esc_attr($task->id);?>);
803 });
804 },
805 });
806 <?php } ?>
807 <?php foreach ($wppm_checklist as $chklist) { ?>
808 var $checkboxes = jQuery('.wppm_checklist_item_'+<?php echo esc_attr($chklist->id);?>);
809 var $progress = jQuery('#CheckProgress_'+<?php echo esc_attr($chklist->id);?>);
810 var total = $checkboxes.length;
811 var checked = jQuery('.wppm_checklist_item_'+<?php echo esc_attr($chklist->id);?>).filter(':checked').length;
812 var progressWidth = Math.ceil((checked / total) * 100);
813 jQuery('#CheckProgress_'+<?php echo esc_attr($chklist->id);?>).css('background','#5ba4cf');
814 jQuery('#CheckProgress_'+<?php echo esc_attr($chklist->id);?>).css('width', progressWidth + '%');
815 if(progressWidth>0){
816 jQuery('#wppm_progressbar_label_'+<?php echo esc_attr($chklist->id);?>).text(progressWidth+'%');
817 }
818 <?php $wppm_checklist_items = $wpdb->get_results( $wpdb->prepare("SELECT * FROM {$wpdb->prefix}wppm_checklist_items where checklist_id=%d",$chklist->id));
819 foreach ($wppm_checklist_items as $chkitems) {
820 ?> jQuery( '#wppm_checklist_'+<?php echo esc_attr($chkitems->id);?>).on("mouseover", function () {
821 jQuery( '#wppm_checklist_action_'+<?php echo esc_attr($chkitems->id);?>).css("display","inline");
822 jQuery( '#wppm_checklist_'+<?php echo esc_attr($chkitems->id);?>).css("background-color","#e7e8ea");
823 })
824 jQuery( '#wppm_checklist_'+<?php echo esc_attr($chkitems->id);?>).on("mouseout", function () {
825 jQuery( '#wppm_checklist_action_'+<?php echo esc_attr($chkitems->id);?>).css("display","none");
826 jQuery( '#wppm_checklist_'+<?php echo esc_attr($chkitems->id);?>).css("background-color","#ffffff");
827 })
828 <?php
829 }
830 }
831 $bold = (isset($wppm_toolbar_actions['bold']) && $wppm_toolbar_actions['bold']==1)? 'bold' :"";
832 $italic = (isset($wppm_toolbar_actions['italic']) && $wppm_toolbar_actions['italic']==1)? 'italic' :"";
833 $underline = (isset($wppm_toolbar_actions['underline']) && $wppm_toolbar_actions['underline']==1)?'underline' :"";
834 $blockquote = (isset($wppm_toolbar_actions['blockquote']) && $wppm_toolbar_actions['blockquote']==1)? 'blockquote' :"";
835 $align = (isset($wppm_toolbar_actions['align']) && $wppm_toolbar_actions['align']==1)? ' alignleft aligncenter alignright ' :"";
836 $bullist = (isset($wppm_toolbar_actions['bullist']) && $wppm_toolbar_actions['bullist']==1)? $bullist = 'bullist' :"";
837 $numlist = (isset($wppm_toolbar_actions['numlist']) && $wppm_toolbar_actions['numlist']==1)? $numlist = 'numlist' :"";
838 $rtl = (isset($wppm_toolbar_actions['rtl']) && $wppm_toolbar_actions['rtl']==1)? $rtl = 'rtl' :"";
839 $link = (isset($wppm_toolbar_actions['link']) && $wppm_toolbar_actions['link']==1)? $link = 'link' :"";
840 $image = (isset($wppm_toolbar_actions['wppm_insert_editor_img']) && $wppm_toolbar_actions['wppm_insert_editor_img']==1)? $image = 'image' :"";
841 $forecolor = (isset($wppm_toolbar_actions['forecolor']) && $wppm_toolbar_actions['forecolor']==1)? $forecolor = 'forecolor' :"";
842 $backcolor = (isset($wppm_toolbar_actions['backcolor']) && $wppm_toolbar_actions['backcolor']==1)? $backcolor = 'backcolor' :"";
843 $strikethrough = (isset($wppm_toolbar_actions['strikethrough']) && $wppm_toolbar_actions['strikethrough']==1)? $strikethrough = 'strikethrough' :"";
844 $toolbar = trim("$bold $italic $underline $blockquote | $align | $bullist $numlist | $rtl | $link $image | $forecolor $backcolor $strikethrough");
845 if(($wppm_tinymce_visibility_open_task==1)){ ?>
846 if((wppm_admin.rich_text_editor) && (wppm_admin.rich_text_editor.trim().length > 0) && (wppm_admin.rich_text_editor == 1)){
847 tinymce.remove();
848 tinymce.init({
849 selector:'#wppm_task_comment',
850 body_id: 'wppm_task_comment',
851 directionality : '<?php //echo 'rtl'; ?>',
852 menubar: false,
853 statusbar: false,
854 height : '200',
855 width : '100%',
856 plugins: [
857 'lists link image directionality paste textcolor'
858 ],
859 image_advtab: true,
860 toolbar:'<?php echo esc_js( $toolbar ); ?>',
861 branding: false,
862 autoresize_bottom_margin: 20,
863 browser_spellcheck : true,
864 relative_urls : false,
865 remove_script_host : false,
866 convert_urls : true,
867 paste_as_text: true,
868 setup: function (editor) {
869 }
870 });
871 jQuery('#wppm_comment_btn').show();
872 }
873 <?php } ?>
874 });
875
876 jQuery(function(jQuery){
877 // Checklist Sorting
878 jQuery(".wppm_checklist_items_container").sortable({
879 handle: ".wppm_chk_items_drag",
880 update: function() {
881 let order = [];
882 jQuery(this).find("li").each(function(){
883 order.push(jQuery(this).data("id")); // checklist item id
884 });
885
886 // AJAX Save
887 jQuery.post(wppm_admin.ajax_url, {
888 action: "wppm_update_checklist_order",
889 order: order,
890 task_id: <?php echo esc_attr($id); ?>,
891 _ajax_nonce: '<?php echo esc_attr( wp_create_nonce( 'wppm_update_checklist_order' ) ); ?>'
892 }, function(response_str){
893 var response = JSON.parse(response_str);
894 jQuery('.wppm_submit_wait').hide();
895 if (response.sucess_status=='1') {
896 jQuery('#wppm_alert_success .wppm_alert_text').text(response.messege);
897 }
898 jQuery('#wppm_alert_success').slideDown('fast',function(){});
899 setTimeout(function(){ jQuery('#wppm_alert_success').slideUp('fast',function(){}); }, 3000);
900 });
901 }
902 });
903
904 });
905
906 function wppm_cancel_comment(){ <?php
907 if(!empty($wppm_rich_text_editor) && ($wppm_rich_text_editor == 1)){
908 ?>
909 tinyMCE. activeEditor. setContent('');
910 tinymce.remove('#wppm_task_comment');
911 jQuery('#wppm_comment_btn').hide();
912 <?php } else{
913 ?>
914 jQuery('#wppm_task_comment').css("width", "80%");
915 jQuery('#wppm_task_comment').css("height", "30px");
916 jQuery('#wppm_task_comment').css("color", "#000");
917 jQuery('#wppm_task_comment').css("padding", "5px");
918 jQuery('#wppm_task_comment').css(" margin-bottom", "15px");
919 jQuery('#wppm_task_comment').css("overflow", "hidden");
920 jQuery('#wppm_task_comment').css("border", "1 px solid #eee");
921 jQuery('#wppm_task_comment').css("color", "#eee");
922 jQuery('#wppm_task_comment').css("margin-top", "10px");
923 jQuery('#wppm_comment_btn').hide();
924 <?php }?>
925 }
926
927 function wppm_add_task_comment(){
928 if((wppm_admin.rich_text_editor == 1)){
929 tinymce.remove();
930 tinymce.init({
931 selector:'#wppm_task_comment',
932 body_id: 'wppm_task_comment',
933 directionality : '<?php //echo 'rtl'; ?>',
934 menubar: false,
935 statusbar: false,
936 height : '200',
937 width : '100%',
938 plugins: [
939 'lists link image directionality paste textcolor'
940 ],
941 image_advtab: true,
942 toolbar:'<?php echo esc_js( $toolbar ); ?>',
943 branding: false,
944 autoresize_bottom_margin: 20,
945 browser_spellcheck : true,
946 relative_urls : false,
947 remove_script_host : false,
948 convert_urls : true,
949 paste_as_text: true,
950 setup: function (editor) {
951 }
952 });
953 } else{
954 jQuery('#wppm_task_comment').css("width", "100%");
955 jQuery('#wppm_task_comment').css("height", "160px");
956 jQuery('#wppm_task_comment').css("color", "#000");
957 }
958 jQuery('#wppm_comment_btn').show();
959 }
960
961 function wppm_submit_task_comment(id,proj_id){
962 var dataform = new FormData(jQuery('#wppm_open_task')[0]);
963 dataform.append('action','wppm_submit_task_comment');
964 if((wppm_admin.rich_text_editor == 1)){
965 var comment_body = tinyMCE.get('wppm_task_comment').getContent().trim();
966 } else{
967 var comment_body = jQuery("#wppm_task_comment").val();
968 }
969 dataform.append('comment_body',comment_body);
970 dataform.append('task_id',id);
971 jQuery('#wppm_task_container').html(wppm_admin.loading_html);
972 jQuery.ajax({
973 url: wppm_admin.ajax_url,
974 type: 'POST',
975 data: dataform,
976 processData: false,
977 contentType: false
978 })
979 .done(function (response_str) {
980 if((proj_id!=0)||(proj_id!="")){
981 wppm_open_project_tasks(id,proj_id);
982 }else if((proj_id==0)||(proj_id=="")){
983 wppm_open_task(id);
984 }
985 });
986 }
987
988 function wppm_add_checklist_item(checklist_id){
989 jQuery('#wppm_add_checklist_label_container_'+checklist_id).show();
990 jQuery('#wppm_add_checklist_item_btn_'+checklist_id).hide();
991 jQuery('.wppm_add_checklist_label_container_'+checklist_id).show();
992 jQuery('.wppm_checklist_item_label_'+checklist_id).css('height', '30px');
993 jQuery('.wppm_add_new_item_btn_'+checklist_id).css('margin', '10px');
994 }
995
996 function wppm_add_checklist(){
997 jQuery('#wppm_add_checklist').hide();
998 jQuery('#wppm_add_new_checklist').show();
999 }
1000
1001 function wppm_remove_add_checklist_container(checklist_id){
1002 jQuery('#wppm_add_checklist_label_container_'+checklist_id).hide();
1003 jQuery('#wppm_add_checklist_item_btn_'+checklist_id).show();
1004 }
1005
1006 function wppm_remove_add_checklist(){
1007 jQuery('#wppm_add_new_checklist').hide();
1008 jQuery('#wppm_add_checklist').show();
1009 }
1010
1011 function wppm_upload_file(){
1012 jQuery('#wppm_attachment_upload').unbind('change');
1013 jQuery('#wppm_attachment_upload').on('change', function() {
1014 var flag = false;
1015 var file = this.files[0];
1016 jQuery('#wppm_attachment_upload').val('');
1017 var allowedExtension = ['exe', 'php','js'];
1018 var file_name_split = file.name.split('.');
1019 var file_extension = file_name_split[file_name_split.length-1];
1020 file_extension = file_extension.toLowerCase();
1021 if( (jQuery.inArray(file_extension,allowedExtension) > -1)){
1022 flag = true;
1023 alert("<?php echo esc_js(__( 'Attached file type not allowed!', 'taskbuilder' ) ); ?>");
1024
1025 };
1026 <?php
1027 $max_upload = (int)(ini_get('upload_max_filesize')); ?>
1028 var current_filesize=file.size/1000000;
1029 if(current_filesize > <?php echo esc_attr($max_upload); ?>){
1030 flag = true;
1031 alert("<?php echo esc_js(__('File size exceed allowed limit!','taskbuilder')); ?>");
1032 }
1033 if (!flag){
1034 var html_str = '<div class="wppm_attachment">'+
1035 '<div class="progress" style="float: none !important; width: unset !important;">'+
1036 '<div class="progress-bar" role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100" style="width:0%">'+
1037 file.name+
1038 '</div>'+
1039 '<span class="wppm_attachment_cancel" onclick="wppm_attachment_cancel(this);" style="display:none;"><img src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/cross_icon.svg'); ?>" alt="delete_icon"></span>'+
1040 '</div>'+
1041 '</div>';
1042 jQuery('.wppm_attachment_container').show();
1043 jQuery('.wppm_attachment_container').append(html_str);
1044 var attachment = jQuery('.wppm_attachment_container').find('.wppm_attachment').last();
1045 var data = new FormData();
1046 data.append('file', file);
1047 data.append('arr_name', file.name);
1048 data.append('action', 'wppm_upload_file');
1049 data.append('nonce', jQuery('#wppm_nonce').val().trim());
1050 jQuery.ajax({
1051 type: 'post',
1052 url: wppm_admin.ajax_url,
1053 data: data,
1054 xhr: function(){
1055 var xhr = new window.XMLHttpRequest();
1056 xhr.upload.addEventListener("progress", function(evt){
1057 if (evt.lengthComputable) {
1058 var percentComplete = Math.floor((evt.loaded / evt.total) * 100);
1059 jQuery(attachment).find('.progress-bar').css('width',percentComplete+'%');
1060 }
1061 }, false);
1062 return xhr;
1063 },
1064 processData: false,
1065 contentType: false,
1066 success: function(response) {
1067 var return_obj=JSON.parse(response);
1068 jQuery(attachment).find('.wppm_attachment_cancel').show();
1069 if( parseInt(return_obj.id) != 0 ){
1070 jQuery(attachment).append('<input type="hidden" class="wppm_comment_attachment" name="wppm_comment_attachment[]" value="'+return_obj.id+'">');
1071 jQuery(attachment).find('.progress-bar').addClass('progress-bar-success');
1072 }else {
1073 jQuery(attachment).find('.progress-bar').addClass('progress-bar-danger');
1074 }
1075 }
1076 });
1077 }
1078 });
1079 jQuery('#wppm_attachment_upload').trigger('click');
1080 }
1081 </script>
1082