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

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