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

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