PluginProbe
Taskbuilder – Project Management & Task Management Tool With Kanban Board / 3.0.4
Taskbuilder – Project Management & Task Management Tool With Kanban Board v3.0.4
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 3.0.4, at includes/admin/tasks/open_task/wppm_open_task.php

690 lines 47.1 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($_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 $settings = get_option("wppm-ap-modal");
13 if (!(($current_user->ID && $current_user->has_cap('manage_options')) || ($wppmfunction->has_permission('view_task',$id)))) {exit;}
14 $proj_id = isset($_POST) && isset($_POST['proj_id']) ? intval(sanitize_text_field($_POST['proj_id'])) : 0;
15 $auth_id = $wppmfunction->wppm_get_auth_code($id);
16 $auth_id = sanitize_text_field($auth_id);
17 $current_date = date('Y-m-d');
18 $wppm_current_user_capability = get_user_meta( $current_user->ID, 'wppm_capability', true );
19 if(!empty($id)){
20 $task = $wpdb->get_row( "SELECT * FROM {$wpdb->prefix}wppm_task where id=".$id);
21 $project_data = $wppmfunction->get_project($task->project);
22 $task_comment = $wpdb->get_results( "SELECT * FROM {$wpdb->prefix}wppm_task_comment where task_id=".$id." ORDER BY create_time DESC");
23 }
24 $user_role = $wpdb->get_var( "SELECT role_id FROM {$wpdb->prefix}wppm_project_users where proj_id = $task->project AND user_id = $current_user->ID");
25 if(!empty($task->project)){
26 $project_name = $wpdb->get_var( "SELECT project_name FROM {$wpdb->prefix}wppm_project where id=".$task->project);
27 }
28 $wppm_checklist=$wpdb->get_results( "SELECT * FROM {$wpdb->prefix}wppm_checklist where task_id=".$task->id );
29 if(!empty($task->status)){
30 $task_status = $wpdb->get_row( "SELECT * FROM {$wpdb->prefix}wppm_task_statuses where id=".$task->status);
31 }
32 if(!empty($task->priority)){
33 $task_priority = $wpdb->get_row( "SELECT * FROM {$wpdb->prefix}wppm_task_priorities where id=".$task->priority);
34 }
35 if(!empty($task->users)){
36 $users = explode(",",$task->users);
37 }
38
39 if(!empty($task->description)){
40 $task_description = stripslashes((htmlspecialchars_decode($task->description, ENT_QUOTES)));
41 }
42
43 if($wppm_task_time == 1){
44 $task_start_date = $task->start_date;
45 $task_end_date = $task->end_date;
46 } elseif($wppm_task_time == 0){
47 $tsDate = new DateTime($task->start_date);
48 $teDate = new DateTime($task->end_date);
49 $task_start_date = $tsDate->format('Y-m-d');
50 $task_end_date = $teDate->format('Y-m-d');
51 }
52 ?>
53 <form id="wppm_open_task" method="post">
54 <div class="wppm_headers row">
55 <div class="col-sm-8">
56 <span class="wppm-heading-inline">
57 <?php echo esc_html_e('Task','taskbuilder');?>
58 </span>
59 <?php if($proj_id==0) { ?>
60 <span onclick="wppm_add_new_task(<?php echo esc_attr($proj_id) ?>)" class="wppm_add_new_task_btn" id="wppm_add_new_task_btn" title="Create Task"><img src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/plus.svg'); ?>" alt="add"></span>
61 <?php }
62 else{ ?>
63 <span class="wppm_add_new_task_btn" id="wppm_add_new_task_btn" title="Create Task" onclick="wppm_create_project_task(<?php echo esc_attr($proj_id) ?>)"><img src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/plus.svg'); ?>" alt="add"></span>
64 <?php } ?>
65 <?php if($proj_id==0) {
66 $task_list_function = ($task_list_view==1)?"wppm_get_task_list()":"wppm_view_task_search_filter()";
67 ?>
68 <span class="wppm-task-list-btn" id="wppm_task_list_btn" title="Task List" onclick="<?php echo $task_list_function ?>"><img src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/list.svg'); ?>" alt="list"></span>
69 <?php }
70 else{
71 ?>
72 <span class="wppm-task-list-btn" id="wppm_task_list_btn" title="Task List" 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>
73 <?php } ?>
74 <?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"; ?>
75 <?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 )? "display:inline":"display:none"; ?>
76 <span class="wppm-delete_task_btn" id="wppm_delete_task_btn" title="Delete Task" onclick="wppm_get_delete_task(<?php echo esc_attr($id) ?>)" style="<?php echo esc_attr($style) ?>"><img src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/bin.svg'); ?>" alt="delete"></span>
77 <div class="wppm-clone_task_btn" id="wppm_clone_task_btn" title="Clone Task" onclick="wppm_clone_task(<?php echo esc_attr($id) ?>)" style="<?php echo esc_attr($clone_style) ?>"><img src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/duplicate.svg'); ?>" alt="clone"></div>
78 <?php do_action('wppm_individual_task_button',$id);?>
79 </div>
80 </div>
81 <div id="wppm_load_individual_task_container" class="row">
82 <div class="col-sm-8 wppm_body col-md-9">
83 <div class="wppm_task_details_container">
84 <div class="row">
85 <div class="col-sm-12">
86 <span class="wppm_task_label"> <?php echo esc_html_e($task->task_name,'taskbuilder');
87 if ($wppmfunction->has_permission('change_task_details',$id) || $current_user->has_cap('manage_options') || $wppm_current_user_capability == 'wppm_admin') { ?>
88 <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>
89 <?php } ?>
90 </span>
91 </div>
92 </div>
93 <div class="row">
94 <div class="col-sm-3">
95 <span class="wppm_task_details_label"><?php echo esc_html_e('Project:','taskbuilder');?></span>
96 </div>
97 <div class="col-sm-9">
98 <span class="wppm_task_details"><?php echo (isset($project_name))? esc_html_e($project_name,'taskbuilder'):"" ?></span>
99 </div>
100 </div>
101 <div class="row">
102 <div class="col-sm-3">
103 <span class="wppm_task_details_label"><?php echo esc_html_e('Created On:','taskbuilder');?></span>
104 </div>
105 <div class="col-sm-9">
106 <span class="wppm_task_details"><?php echo (isset($task->date_created))? esc_html($task->date_created):"" ?></span>
107 </div>
108 </div>
109 <?php if($wppm_default_task_date == 1){ ?>
110 <div class="row">
111 <div class="col-sm-3">
112 <span class="wppm_task_details_label"><?php echo esc_html_e('Start Date:','taskbuilder');?></span>
113 </div>
114 <div class="col-sm-9">
115 <span class="wppm_task_details" id="wppm_edit_tstart_date"><?php echo (isset($task_start_date))? esc_html($task_start_date):"" ?></span>
116 </div>
117 <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' ) ); ?>">
118 </div>
119 <div class="row">
120 <div class="col-sm-3">
121 <span class="wppm_task_details_label"><?php echo esc_html_e('End Date:','taskbuilder');?></span>
122 </div>
123 <div class="col-sm-9">
124 <?php $style = ($task->status!=4 && $task->end_date < $current_date) ? "color:#FF0000":"color:#2C3E50"; ?>
125 <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>
126 </div>
127 <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' ) ); ?>">
128 </div>
129 <?php } ?>
130 <div class="row">
131 <div class="col-sm-3">
132 <span class="wppm_task_details_label"><?php echo esc_html_e('Task Priority:','taskbuilder');?></span>
133 </div>
134 <div class="col-sm-9">
135 <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_e($task_priority->name,'taskbuilder'):"" ?> </span></span>
136 </div>
137 </div>
138 <div class="row">
139 <div class="col-sm-3">
140 <span class="wppm_task_details_label"><?php echo esc_html_e('Description:','taskbuilder');?></span>
141 </div>
142 <div class="col-sm-9">
143 <span class="wppm_task_description"><?php echo (isset($task_description))? wp_kses_post(wpautop($task_description)):"" ?></span>
144 </div>
145 </div>
146 <?php do_action('wppm_after_task_details_in_open_task',$task->id, $task->project);?>
147 </div>
148 <div class="wppm_task_checklist_container" id="wppm_task_checklist_container">
149 <div id="wppm_checklist_container">
150 <?php
151 if(!empty($wppm_checklist)){
152 foreach( $wppm_checklist as $key=>$list){
153 ?>
154 <div class="row">
155 <div class="col-sm-8">
156 <span class="wppm_checklist_label"><img src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/checklist.svg'); ?>" alt="checklist"><?php echo esc_html_e($list->checklist_name,'taskbuilder');?></span>
157 </div>
158 <?php
159 $check_style = (($list->created_by == $current_user->ID || $current_user->has_cap('manage_options') || $user_role == 1 || $wppmfunction->has_permission('edit_checklist',$task->id)))? "display:inline":"display:none"; ?>
160 <?php $disabled = (($list->created_by == $current_user->ID || $current_user->has_cap('manage_options') || $user_role == 1 || $wppmfunction->has_permission('delete_checklist',$task->id)))? "":"disabled"; ?>
161 <div class="col-sm-4" style="text-align:right;<?php echo esc_attr($check_style) ?>">
162 <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>
163 <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' ) ); ?>">
164 </div>
165 </div>
166 <div class="wppm_progress_bar_container row">
167 <div class="col-sm-4">
168 <span class="wppm_progressbar_label" id="wppm_progressbar_label_<?php echo esc_attr($list->id)?>">0%</span>
169 </div>
170 <div class="wppm_progress_bar col-sm-8">
171 <div id="CheckProgress_<?php echo esc_attr($list->id);?>" class="wppm_checkprogress" role="progressbar" style="width: 0%" aria-valuemin="0" aria-valuemax="100"></div>
172 </div>
173 </div>
174 <?php
175 $wppm_checklist_items = $wpdb->get_results( "SELECT * FROM {$wpdb->prefix}wppm_checklist_items where checklist_id=".$list->id);
176 ?>
177 <?php
178 if(!empty( $wppm_checklist_items)){
179 foreach($wppm_checklist_items as $key=>$val){
180 $checked = $val->checked == 1 ? 'checked="checked"' : '';
181 ?>
182 <div id="wppm_checklist_<?php echo esc_attr($val->id) ?>" class="row wppm_checklist_item" style="margin-bottom:10px;font: 15px 'Helvetica Neue',Helvetica,Arial,sans-serif;">
183 <div class="col-sm-8" id="wppm_checklist_item_container_<?php echo esc_attr($val->id) ?>">
184 <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 esc_html_e($val->item_name,'taskbuilder') ?></label>
185 <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' ) ); ?>">
186 </div>
187 <?php if ($list->created_by == $current_user->ID || $current_user->has_cap('manage_options') || $user_role == 1 || $wppmfunction->has_permission('delete_checklist',$task->id)) { ?>
188 <div class="col-sm-4" id="wppm_checklist_action_<?php echo esc_attr($val->id) ?>" style="text-align:right; display:none;cursor:pointer;">
189 <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>
190 <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' ) ); ?>">
191 </div>
192 <?php } ?>
193 </div>
194 <?php
195 }
196 } ?>
197 <div class="row">
198 <div class="col-sm-12 wppm_add_checklist_item_container_<?php echo esc_attr($list->id) ?>" style="padding-top:15px;">
199 <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>
200 </div>
201 </div>
202 <div class="row">
203 <div class="col-sm-12" style="display:none;" id="wppm_add_checklist_label_container_<?php echo esc_attr($list->id) ?>">
204 <div class="row" id="wppm_add_new_checklist_item_<?php echo esc_attr($list->id) ?>">
205 <div class="col-sm-12">
206 <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;">
207 <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) ?>)">
208 <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' ) ); ?>">
209 <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>
210 </div>
211 </div>
212 </br>
213 </div>
214 </div>
215 <hr class="wppm_checklist_divider">
216 <?php
217 }
218 } ?>
219 </div>
220 <div id="wppm_add_checklist_container">
221 <div class="row">
222 <div class="col-sm-12">
223 <span id="wppm_add_checklist" onclick="wppm_add_checklist()"> <?php echo esc_html_e('+Add a checklist','taskbuilder')?> </span>
224 </div>
225 </div>
226 <div class="row" id="wppm_add_new_checklist" style="display:none;">
227 <div class="col-sm-12">
228 <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">
229 <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) ?>)">
230 <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' ) ); ?>">
231 <span onclick="wppm_remove_add_checklist()"><img src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/cross1.svg'); ?>"></span>
232 </div>
233 </div>
234 </br>
235 </div>
236 </div>
237 <div id="wppm_activity_container">
238 <div class="row">
239 <div class="col-sm-12" style="margin-top:5px;">
240 <span class="wppm_task_discussion"><?php echo esc_html_e('Comment','taskbuilder')?></span><br>
241 </div>
242 </div>
243 <div class="row">
244 <div class="col-sm-12">
245 <textarea id="wppm_task_comment" placeholder="<?php echo esc_attr__('Write a comment...','taskbuilder');?>" onclick="wppm_add_task_comment()" name="wppm_task_comment"></textarea>
246 </div>
247 </div>
248 <div class="row" id="wppm_comment_btn">
249 <div class="col-sm-6">
250 <span id="wppm_attach_file" onclick="wppm_upload_file()"><?php echo esc_html_e('Attach Files','taskbuilder')?></span>
251 </div>
252 <div class="col-sm-6">
253 <button type="button" id="wppm_individual_cancel_comment_btn" onclick="wppm_cancel_comment();" class="wppm-btn-cancel">
254 <?php echo esc_html_e('Cancel','taskbuilder')?>
255 </button>
256 <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">
257 <?php echo esc_html_e('SEND','taskbuilder')?>
258 </button>
259 <input type="hidden" name="_ajax_nonce" value="<?php echo esc_attr( wp_create_nonce( 'wppm_submit_task_comment' ) ); ?>">
260 </div>
261 </div>
262 <div class="row">
263 <div class="wppm_attachment_container col-sm-12" style="display:none;">
264 </div>
265 </div>
266 </div>
267 <div class="wppm_thread_container">
268 <?php
269 if(!empty($task_comment)){
270 foreach($task_comment as $comment){
271 $task_comment_meta = $wpdb->get_row( "SELECT * FROM {$wpdb->prefix}wppm_task_comment_meta where task_id=".$id." AND comment_id=".$comment->id."");
272 $user = get_userdata( $comment->created_by );
273 $comment_body = stripslashes((htmlspecialchars_decode($comment->body, ENT_QUOTES)));
274 $comment_body = preg_replace('#<script(.*?)>(.*?)</script>#is', '', $comment_body);
275 $date = date("Y-m-d H:i:s" ,strtotime($comment->create_time));
276 $thread_date = date("d F Y, h:i:s A" ,strtotime($date));
277 $attachment_ids = isset($comment->attachment_ids)? $comment->attachment_ids : '';
278 if($attachment_ids!=""){
279 $attachments = explode(",",$attachment_ids);
280 } else {
281 $attachments = array();
282 }
283 ?>
284 <div class="wppm_thread">
285 <div class="wppm_thread_avatar">
286 <?php echo (get_avatar($comment->created_by, 40));?>
287 </div>
288 <div class="wppm_thread_body">
289 <div class="wppm_thread_user_name">
290 <strong style="color:<?php echo esc_attr($appearance_settings['comment-primary-color']);?>"><?php echo esc_html($user->display_name) ?></strong>
291 <span><?php if(!empty($comment->body) && (isset($task_comment_meta->comment_type) && $task_comment_meta->comment_type=='change_task_status')){
292 $comment_log_body = unserialize($comment->body);
293 $prev_status = $comment_log_body['prev_status'];
294 $new_status = $comment_log_body['new_status'];
295 if(isset($prev_status)){
296 $task_prev_status = $wpdb->get_row("SELECT * FROM {$wpdb->prefix}wppm_task_statuses where id=".$prev_status);
297 }
298 if(isset($new_status)){
299 $task_new_status = $wpdb->get_row("SELECT * FROM {$wpdb->prefix}wppm_task_statuses where id=".$new_status);
300 }
301 esc_html_e("changed status from $task_prev_status->name to $task_new_status->name","taskbuilder");
302 } if(!empty($comment->body) && (isset($task_comment_meta->comment_type) && $task_comment_meta->comment_type=='change_task_creator')){
303 $comment_log_body = unserialize($comment->body);
304 $prev_user = $comment_log_body['prev_user'];
305 $new_user = $comment_log_body['new_user'];
306 $prev_user_data = get_userdata($prev_user);
307 $new_user_data = get_userdata($new_user);
308 esc_html_e("changed creator from $prev_user_data->display_name to $new_user_data->display_name","taskbuilder");
309 }
310 if( !empty($comment->body) && (isset($task_comment_meta->comment_type) && $task_comment_meta->comment_type=='change_assign_user')){
311 esc_html_e("changed the Assignee","taskbuilder");
312 }
313 if(!empty($comment->body) && (isset($task_comment_meta->comment_type) && $task_comment_meta->comment_type=='change_task_priority')){
314 $comment_log_body = unserialize($comment->body);
315 $prev_prio = $comment_log_body['prev_prio'];
316 $new_prio = $comment_log_body['new_prio'];
317 if(isset($prev_prio)){
318 $task_prev_prio = $wpdb->get_row("SELECT * FROM {$wpdb->prefix}wppm_task_priorities where id=".$prev_prio);
319 }
320 if(isset($new_prio)){
321 $task_new_prio = $wpdb->get_row("SELECT * FROM {$wpdb->prefix}wppm_task_priorities where id=".$new_prio);
322 }
323 $task_prev_prio_name = !empty($task_prev_prio) ? $task_prev_prio->name: "None";
324 $task_new_prio_name = !empty($task_new_prio) ? $task_new_prio->name: "None";
325 esc_html_e("changed priority from $task_prev_prio_name to $task_new_prio_name","taskbuilder");
326 }
327 ?>
328 <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>
329 <div class="wppm_thread_action">
330 <?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')))){ ?>
331 <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>
332 <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>
333 <?php } ?>
334 </div>
335 </div>
336 <div class="wppm_thread_messege" style="color:<?php echo esc_attr($appearance_settings['comment-secondary-color']);?>">
337 <?php
338 $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(),));
339 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'))){
340 echo wp_kses(wpautop($comment_body),$allowedtags) ;
341 } elseif(!empty($comment->body) && (isset($task_comment_meta->comment_type) && $task_comment_meta->comment_type=='change_task_status')){ ?>
342 <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
343 }elseif(!empty($comment->body) && (isset($task_comment_meta->comment_type) && $task_comment_meta->comment_type=='change_task_creator')){ ?>
344 <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
345 } elseif(!empty($comment->body) && (isset($task_comment_meta->comment_type) && $task_comment_meta->comment_type=='change_assign_user')) {
346 $comment_log_body = unserialize($comment->body);
347 $prev_assign_user = $comment_log_body['prev_assign_user'];
348 $new_assign_user = $comment_log_body['new_assign_user'];
349 $prev_assign_user_array = array();
350 $new_assign_user_array = array();
351 if(!empty($prev_assign_user)){
352 $prev_assign_user_array = explode(",",$prev_assign_user);
353 }
354 if(!empty($new_assign_user)){
355 $new_assign_user_array = explode(",",$new_assign_user);
356 }
357 $assign_user_name = array();
358 $assign_user_name_str = "";
359 if(!empty($prev_assign_user_array)){
360 foreach($prev_assign_user_array as $val){
361 $assign_user = get_userdata($val);
362 $assign_user_name[] = $assign_user->display_name;
363 }
364 $assign_user_name_str = implode(",",$assign_user_name);
365 }
366 $new_assign_user_name = array();
367 $new_assign_user_name_str = "";
368 if(!empty($new_assign_user_array)){
369 foreach($new_assign_user_array as $val){
370 $new_assign_user = get_userdata($val);
371 $new_assign_user_name[] = $new_assign_user->display_name;
372 }
373 $new_assign_user_name_str = implode(",",$new_assign_user_name);
374 }
375 ?>
376 <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
377 } elseif(!empty($comment->body) && (isset($task_comment_meta->comment_type) && $task_comment_meta->comment_type=='change_task_priority')){ ?>
378 <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
379 } ?>
380
381 </div>
382 <?php
383 if(!empty($attachments)&& (isset($task_comment_meta->comment_type) && !($task_comment_meta->comment_type=='delete_task_comment'))):?> <br>
384 <strong class="wppm_attachment_title"><?php echo esc_html_e('Attachments','taskbuilder');?>:</strong><br>
385 <table class="wppm_attachment_tbl">
386 <tbody>
387 <?php
388 if(!empty($attachments)){
389 foreach( $attachments as $attachment ):
390 $attach = $wpdb->get_row( "SELECT * FROM {$wpdb->prefix}wppm_attachments where id=".$attachment);
391 $download_url = site_url('/').'?wppm_attachment='.$attachment.'&tid='.$id.'&tac='.$auth_id;
392 $findStr = ".txt";
393 if(!empty( $attach)){
394 $attachment_name = preg_replace('/' . $findStr . '/', "", $attach->name, 1);
395 $attachment_name = sanitize_file_name($attachment_name);
396 }
397 if((!empty($attachment_name))){
398 ?>
399 <tr class="wppm_attachment_tr">
400 <td>
401 <a class="wppm_attachment_link" href="<?php echo esc_url($download_url) ?>" target="_blank">
402 <span class="wppm_attachment_file_name" style="padding: 7px;"><?php echo isset($attach->file_name) ? esc_html($attach->file_name):"";?></span></a>
403 <?php if((($comment->created_by == $current_user->ID) || ($current_user->has_cap('manage_options')) || ($wppmfunction->has_comment_permission('edit_task_comment',$id,$comment->id)))){ ?>
404 <span class="wppm_thread_action_btn" onclick="wppm_thread_attachment_remove(this,<?php echo esc_attr($attach->id); ?>,<?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/cancel.svg'); ?>" alt="cancel"></span>
405 <?php } ?>
406 </td>
407 </tr>
408 <input type="hidden" name="wppm_ajax_nonce" id="wppm_ajax_nonce" value="<?php echo esc_attr( wp_create_nonce( 'wppm_remove_thread_attachment' ) ); ?>">
409 <?php }
410 endforeach;
411 } ?>
412 </tbody>
413 </table>
414 <?php do_action('wppm_after_comment_attachment',$id,$comment->id);?>
415 <?php endif;?>
416 </div>
417 </div>
418 <?php }
419 } ?>
420 </div>
421 </div>
422 <div class="wppm_individual_task_widget col-sm-4 wppm_sidebar col-md-3">
423 <div class="row wppm_widget" id="wppm_status_widget">
424 <div class="wppm-widget-header" style="background-color:<?php echo esc_attr($appearance_settings['widget-header-bg-color'])?>">
425 <h4 class="widget_header" style="color:<?php echo esc_attr($appearance_settings['widget-header-text-color'])?>"><?php echo esc_html_e('Status','taskbuilder')?></h4>
426 <?php if ($wppmfunction->has_permission('change_status',$id) || $current_user->has_cap('manage_options')) { ?>
427 <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>
428 <?php } ?>
429 </div>
430 <hr class="widget_divider">
431 <div class="wppm-widget-body" style="background-color:<?php echo esc_attr($appearance_settings['widget-body-bg-color'])?>">
432 <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>
433 </div>
434 </div>
435 <div class="row wppm_widget" id="wppm_raisedby_widget">
436 <div class="wppm-widget-header" style="background-color:<?php echo esc_attr($appearance_settings['widget-header-bg-color'])?>">
437 <h4 class="widget_header" style="color:<?php echo esc_attr($appearance_settings['widget-header-text-color'])?>">
438 <?php echo esc_html_e('Task Creator','taskbuilder')?></h4>
439 <?php if ($wppmfunction->has_permission('change_raised_by',$id ) || $current_user->has_cap('manage_options')) { ?>
440 <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>
441 <?php } ?>
442 </div>
443 <hr class="widget_divider"> <?php
444 if(isset($task->created_by)){
445 $user_info = get_userdata($task->created_by);
446 }else{
447 $user_info ="";
448 }
449 ?>
450 <div class="wppm-widget-body" style="background-color:<?php echo esc_attr($appearance_settings['widget-body-bg-color'])?>">
451 <div style="padding:2px 0;">
452 <span class="wppm_task_user_avatar"><?php echo (get_avatar($task->created_by, 25, "mysteryman")); ?></span>
453 <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>
454 </div>
455 </div>
456 </div>
457 <div class="row wppm_widget" id="wppm_task_users_widget_container">
458 <div class="wppm-widget-header" style="background-color:<?php echo esc_attr($appearance_settings['widget-header-bg-color'])?>">
459 <h4 class="widget_header" style="color:<?php echo esc_attr($appearance_settings['widget-header-text-color'])?>;"><?php echo esc_html_e('Users','taskbuilder')?></h4>
460 <?php if ($wppmfunction->has_permission('assign_task_users',$id ) || $current_user->has_cap('manage_options')) { ?>
461 <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>
462 <?php } ?>
463 </div>
464 <hr class="widget_divider">
465 <div class="wppm-widget-body" style="background-color:<?php echo esc_attr($appearance_settings['widget-body-bg-color'])?>">
466 <div id="wppm_task_users">
467 <?php
468 $i=0;
469 if(!empty($users)){
470 foreach($users as $user) {
471 $user_data = get_userdata($user);
472 if(!empty($project_data['users'])){
473 $proj_users = explode(',',$project_data['users']);
474 if(in_array($user,$proj_users)){
475 $i++;
476 ?>
477 <div style="padding:2px 0;">
478 <span class="wppm_task_user_avatar"><?php echo (get_avatar($user, 25, "mysteryman")); ?></span>
479 <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>
480 </div>
481 <?php
482 }
483 }
484 }
485 }
486 if($i==0){ ?>
487 <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
488 }
489 ?>
490 </div>
491 </div>
492 </div>
493 <?php do_action('wppm_after_task_widgets',$id,$proj_id);?>
494 </div>
495 <input type="hidden" id="wppm_nonce" value="<?php echo wp_create_nonce('wppm_upload_file')?>">
496 <input type="file" id="wppm_attachment_upload" class="hidden" onchange="">
497 </div>
498 </form>
499 <style>
500 .wppm_comment_date i:hover{
501 color: <?php echo esc_attr($appearance_settings['comment-date-hover-color'])?>;
502 }
503 #Layer_1{
504 fill:red!important;
505 }
506 </style>
507 <script>
508 jQuery( document ).ready( function( jQuery ) {<?php
509 if ((($current_user->ID && $current_user->has_cap('manage_options')) || $wppmfunction->has_permission('change_task_details',$task->id))){ ?>
510 jQuery("#wppm_edit_tstart_date").flatpickr({
511 enableTime: true,
512 dateFormat: "Y-m-d H:i",
513 onChange: function(selectedDates, dateStr, instance) {
514 var data = {
515 action: 'wppm_set_change_task_start_date',
516 task_id:<?php echo esc_attr($task->id);?>,
517 date:dateStr,
518 _ajax_nonce:jQuery('#wppm_edit_tstart_date_ajax_nonce').val()
519 };
520 jQuery.post(wppm_admin.ajax_url, data, function(response) {
521 instance.close();
522 wppm_open_task(<?php echo esc_attr($task->id);?>);
523 });
524 },
525 });
526 jQuery("#wppm_edit_tend_date").flatpickr({
527 enableTime: true,
528 dateFormat: "Y-m-d H:i",
529 onChange: function(selectedDates, dateStr, instance) {
530 var data = {
531 action: 'wppm_set_change_task_end_date',
532 task_id:<?php echo esc_attr($task->id);?>,
533 date:dateStr,
534 _ajax_nonce:jQuery('#wppm_edit_tend_date_ajax_nonce').val()
535 };
536 jQuery.post(wppm_admin.ajax_url, data, function(response) {
537 instance.close();
538 wppm_open_task(<?php echo esc_attr($task->id);?>);
539 });
540 },
541 });
542 <?php } ?>
543 <?php foreach ($wppm_checklist as $chklist) { ?>
544 var $checkboxes = jQuery('.wppm_checklist_item_'+<?php echo esc_attr($chklist->id);?>);
545 var $progress = jQuery('#CheckProgress_'+<?php echo esc_attr($chklist->id);?>);
546 var total = $checkboxes.length;
547 var checked = jQuery('.wppm_checklist_item_'+<?php echo esc_attr($chklist->id);?>).filter(':checked').length;
548 var progressWidth = Math.ceil((checked / total) * 100);
549 jQuery('#CheckProgress_'+<?php echo esc_attr($chklist->id);?>).css('background','#5ba4cf');
550 jQuery('#CheckProgress_'+<?php echo esc_attr($chklist->id);?>).css('width', progressWidth + '%');
551 if(progressWidth>0){
552 jQuery('#wppm_progressbar_label_'+<?php echo esc_attr($chklist->id);?>).text(progressWidth+'%');
553 }
554 <?php $wppm_checklist_items = $wpdb->get_results( "SELECT * FROM {$wpdb->prefix}wppm_checklist_items where checklist_id=".$chklist->id);
555 foreach ($wppm_checklist_items as $chkitems) {
556 ?> jQuery( '#wppm_checklist_'+<?php echo esc_attr($chkitems->id);?>).on("mouseover", function () {
557 jQuery( '#wppm_checklist_action_'+<?php echo esc_attr($chkitems->id);?>).css("display","inline");
558 jQuery( '#wppm_checklist_'+<?php echo esc_attr($chkitems->id);?>).css("background-color","#e7e8ea");
559 })
560 jQuery( '#wppm_checklist_'+<?php echo esc_attr($chkitems->id);?>).on("mouseout", function () {
561 jQuery( '#wppm_checklist_action_'+<?php echo esc_attr($chkitems->id);?>).css("display","none");
562 jQuery( '#wppm_checklist_'+<?php echo esc_attr($chkitems->id);?>).css("background-color","#ffffff");
563 })
564 <?php
565 }
566 }
567 ?>
568 });
569
570 function wppm_add_task_comment(){
571 tinymce.remove();
572 tinymce.init({
573 selector:'#wppm_task_comment',
574 body_id: 'wppm_task_comment',
575 directionality : '<?php //echo 'rtl'; ?>',
576 menubar: false,
577 statusbar: false,
578 height : '200',
579 width : '100%',
580 plugins: [
581 'lists link image directionality paste'
582 ],
583 image_advtab: true,
584 toolbar: 'bold italic underline blockquote | alignleft aligncenter alignright | bullist numlist | rtl | link image',
585 branding: false,
586 autoresize_bottom_margin: 20,
587 browser_spellcheck : true,
588 relative_urls : false,
589 remove_script_host : false,
590 convert_urls : true,
591 paste_as_text: true,
592 setup: function (editor) {
593 }
594 });
595 jQuery('#wppm_comment_btn').show();
596 }
597
598 function wppm_add_checklist_item(checklist_id){
599 jQuery('#wppm_add_checklist_label_container_'+checklist_id).show();
600 jQuery('#wppm_add_checklist_item_btn_'+checklist_id).hide();
601 jQuery('.wppm_add_checklist_label_container_'+checklist_id).show();
602 jQuery('.wppm_checklist_item_label_'+checklist_id).css('height', '30px');
603 jQuery('.wppm_add_new_item_btn_'+checklist_id).css('margin', '10px');
604 }
605
606 function wppm_add_checklist(){
607 jQuery('#wppm_add_checklist').hide();
608 jQuery('#wppm_add_new_checklist').show();
609 }
610
611 function wppm_remove_add_checklist_container(checklist_id){
612 jQuery('#wppm_add_checklist_label_container_'+checklist_id).hide();
613 jQuery('#wppm_add_checklist_item_btn_'+checklist_id).show();
614 }
615
616 function wppm_remove_add_checklist(){
617 jQuery('#wppm_add_new_checklist').hide();
618 jQuery('#wppm_add_checklist').show();
619 }
620
621 function wppm_upload_file(){
622 jQuery('#wppm_attachment_upload').unbind('change');
623 jQuery('#wppm_attachment_upload').on('change', function() {
624 var flag = false;
625 var file = this.files[0];
626 jQuery('#wppm_attachment_upload').val('');
627 var allowedExtension = ['exe', 'php','js'];
628 var file_name_split = file.name.split('.');
629 var file_extension = file_name_split[file_name_split.length-1];
630 file_extension = file_extension.toLowerCase();
631 if( (jQuery.inArray(file_extension,allowedExtension) > -1)){
632 flag = true;
633 alert("<?php _e('Attached file type not allowed!','taskbuilder')?>");
634 };
635 <?php
636 $max_upload = (int)(ini_get('upload_max_filesize')); ?>
637 var current_filesize=file.size/1000000;
638 if(current_filesize > <?php echo esc_attr($max_upload); ?>){
639 flag = true;
640 alert("<?php _e('File size exceed allowed limit!','taskbuilder')?>");
641 }
642 if (!flag){
643 var html_str = '<div class="wppm_attachment">'+
644 '<div class="progress" style="float: none !important; width: unset !important;">'+
645 '<div class="progress-bar" role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100" style="width:0%">'+
646 file.name+
647 '</div>'+
648 '<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>'+
649 '</div>'+
650 '</div>';
651 jQuery('.wppm_attachment_container').show();
652 jQuery('.wppm_attachment_container').append(html_str);
653 var attachment = jQuery('.wppm_attachment_container').find('.wppm_attachment').last();
654 var data = new FormData();
655 data.append('file', file);
656 data.append('arr_name', file.name);
657 data.append('action', 'wppm_upload_file');
658 data.append('nonce', jQuery('#wppm_nonce').val().trim());
659 jQuery.ajax({
660 type: 'post',
661 url: wppm_admin.ajax_url,
662 data: data,
663 xhr: function(){
664 var xhr = new window.XMLHttpRequest();
665 xhr.upload.addEventListener("progress", function(evt){
666 if (evt.lengthComputable) {
667 var percentComplete = Math.floor((evt.loaded / evt.total) * 100);
668 jQuery(attachment).find('.progress-bar').css('width',percentComplete+'%');
669 }
670 }, false);
671 return xhr;
672 },
673 processData: false,
674 contentType: false,
675 success: function(response) {
676 var return_obj=JSON.parse(response);
677 jQuery(attachment).find('.wppm_attachment_cancel').show();
678 if( parseInt(return_obj.id) != 0 ){
679 jQuery(attachment).append('<input type="hidden" class="wppm_comment_attachment" name="wppm_comment_attachment[]" value="'+return_obj.id+'">');
680 jQuery(attachment).find('.progress-bar').addClass('progress-bar-success');
681 }else {
682 jQuery(attachment).find('.progress-bar').addClass('progress-bar-danger');
683 }
684 }
685 });
686 }
687 });
688 jQuery('#wppm_attachment_upload').trigger('click');
689 }
690 </script>