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

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