PluginProbe
Taskbuilder – Project Management & Task Management Tool With Kanban Board / 6.0.6
Taskbuilder – Project Management & Task Management Tool With Kanban Board v6.0.6
6.0.6 6.0.5 6.0.2 6.0.3 6.0.4 6.0.1 6.0.0 5.0.8 5.0.9 4.0.9 5.0.0 5.0.1 5.0.2 5.0.3 5.0.4 5.0.5 5.0.6 5.0.7 trunk 1.0.0 1.0.1 1.0.2 1.0.3 1.0.4 1.0.5 All 58 releases
← All changes | includes/frontend/wppm_tasks_shortcode.php +67 -24 4.0.96.0.6 View file →
@@ -99,9 +99,9 @@
99 99 public function wppm_page_inline_script() { ?>
100 100 <script type="text/javascript">
101 101 jQuery( document ).ready( function( jQuery ) {
102 102 <?php if(is_user_logged_in()){
103 - if( (!((isset($_REQUEST['task-id'])) && (!empty(sanitize_text_field($_REQUEST['auth-code'] )))))){
103 + if( (!((isset($_REQUEST['task-id'])) && (!empty(sanitize_text_field(wp_unslash($_REQUEST['auth-code'] ))))))){
104 104 if(get_option('wppm_default_task_list_view')==1){ ?>
105 105 wppm_get_task_list();
106 106 <?php } else{
107 107 ?> wppm_view_task_search_filter();
@@ -106,10 +106,10 @@
106 106 <?php } else{
107 107 ?> wppm_view_task_search_filter();
108 108 <?php }
109 109 }
110 - if((isset($_REQUEST['task-id'])) && (!empty(sanitize_text_field($_REQUEST['auth-code'] )))){ ?>
111 - wppm_open_task(<?php echo $_REQUEST['task-id'] ?>);
110 + if((isset($_REQUEST['task-id'])) && (!empty(sanitize_text_field(wp_unslash($_REQUEST['auth-code'] ))))){ ?>
111 + wppm_open_task(<?php echo (intval(wp_unslash($_REQUEST['task-id']))); ?>);
112 112 <?php }
113 113 }
114 114 else{ ?>
115 115 wppm_task_sign_in();
@@ -119,12 +119,14 @@
119 119 function wppm_get_task_list(page_no){
120 120 jQuery('#wppm_task_container').show();
121 121 jQuery('#wppm_task_container').html(wppm_admin.loading_html);
122 122 var dataform=new FormData(jQuery('#wppm_task_list_frm')[0]);
123 - <?php echo do_action('wppm_task_list_dataform');?>
123 + jQuery(document).trigger('wppm_task_list_dataform', [dataform]);
124 + <?php //do_action('wppm_task_list_dataform');?>
124 125 dataform.append("page_no", page_no);
125 126 dataform.append("action", 'wppm_get_task_list');
126 127 dataform.append("is_frontend", '1');
128 + dataform.append("page",'wppm-tasks');
127 129 <?php
128 130 if(!empty($this->shortcode_attr['project'])){
129 131 ?>
130 132 dataform.append("wppm_project_attr","<?php echo esc_attr($this->shortcode_attr['project']); ?>");
@@ -144,9 +146,9 @@
144 146 function wppm_add_new_task(proj_id){
145 147 jQuery('#wppm_task_container').show();
146 148 jQuery('#wppm_task_container').html(wppm_admin.loading_html);
147 149 var dataform=new FormData(jQuery('#wppm_task_list_frm')[0]);
148 - <?php echo do_action('wppm_add_new_task_dataform');?>
150 + jQuery(document).trigger('wppm_add_new_task_dataform', [dataform]);
149 151 dataform.append("proj_id", proj_id);
150 152 dataform.append("action", 'wppm_add_new_task');
151 153 jQuery.ajax( {
152 154 url: wppm_admin.ajax_url,
@@ -161,14 +163,25 @@
161 163 }
162 164
163 165 function wppm_apply_task_filter(){
164 166 wppm_task_filter = jQuery('#wppm_task_filter').find(":selected").val();
167 + var listFilters = {};
168 + listFilters.created_by = jQuery("#tb-created-by").val();
169 + listFilters.created_by = listFilters.created_by ? listFilters.created_by : [];
170 + listFilters.assigned = jQuery("#tb-assigned").val();
171 + listFilters.assigned = listFilters.assigned ? listFilters.assigned : [];
172 + listFilters.priority = jQuery("#tb-priority").val();
173 + listFilters.priority = listFilters.priority ? listFilters.priority : [];
174 + listFilters.start_date = jQuery("#tb-start-date").val() || "";
175 + listFilters.end_date = jQuery("#tb-end-date").val() || "";
165 176 jQuery('#wppm_task_container').html(wppm_admin.loading_html);
166 177 var dataform=new FormData(jQuery('#wppm_task_list_frm')[0]);
167 - <?php echo do_action('wppm_apply_task_filter_dataform');?>
178 + jQuery(document).trigger('wppm_apply_task_filter_dataform', [dataform]);
168 179 dataform.append("wppm_task_filter", wppm_task_filter);
180 + dataform.append("filters", JSON.stringify(listFilters));
169 181 dataform.append("is_frontend", '1');
170 182 dataform.append("action", 'wppm_get_task_list');
183 + dataform.append("page",'wppm-tasks');
171 184 <?php if(!empty($this->shortcode_attr['project'])){ ?>
172 185 dataform.append("wppm_project_attr","<?php echo esc_attr($this->shortcode_attr['project']); ?>");
173 186 <?php } ?>
174 187 jQuery.ajax( {
@@ -179,12 +192,22 @@
179 192 contentType: false
180 193 })
181 194 .done(function( response ) {
182 195 jQuery('#wppm_task_container').html(response);
196 + setListFilterCookie(listFilters);
197 + setTimeout(function(){
198 + syncUIWithFilters(listFilters);
199 + renderActiveFilters(listFilters);
200 + }, 100);
183 201 });
184 202 }
185 203
186 204 function wppm_tl_reset_filter(){
205 + // clear advanced filters + cookie BEFORE requesting the list,
206 + // otherwise this request still sends the stale tb_list_filters
207 + // cookie and the reset only takes effect on the next click
208 + resetFilters('list');
209 +
187 210 jQuery('#wppm_task_container').html(wppm_admin.loading_html);
188 211 var dataform=new FormData(jQuery('#wppm_task_list_frm')[0]);
189 212 dataform.append("action", 'wppm_get_task_list');
190 213 dataform.append("wppm_task_filter", 'all');
@@ -192,12 +215,13 @@
192 215 dataform.append("sort_by", 'task_name');
193 216 dataform.append("order", 'ASC');
194 217 dataform.append("wppm_proj_filter",0);
195 218 dataform.append("is_frontend", '1');
219 + dataform.append("page",'wppm-tasks');
196 220 <?php if(!empty($this->shortcode_attr['project'])){ ?>
197 221 dataform.append("wppm_project_attr","<?php echo esc_attr($this->shortcode_attr['project']); ?>");
198 222 <?php } ?>
199 - <?php echo do_action('wppm_tl_reset_filter_dataform');?>
223 + jQuery(document).trigger('wppm_tl_reset_filter_dataform', [dataform]);
200 224 jQuery.ajax( {
201 225 url: wppm_admin.ajax_url,
202 226 type: 'POST',
203 227 data: dataform,
@@ -202,9 +226,9 @@
202 226 type: 'POST',
203 227 data: dataform,
204 228 processData: false,
205 229 contentType: false
206 - })
230 + })
207 231 .done(function( response ) {
208 232 jQuery('#wppm_task_container').html(response);
209 233 });
210 234 }
@@ -213,11 +237,12 @@
213 237 var task_search = jQuery("#wppm_task_search_filter").val();
214 238 jQuery('#wppm_task_container').show();
215 239 jQuery('#wppm_task_container').html(wppm_admin.loading_html);
216 240 var dataform=new FormData(jQuery('#wppm_task_list_frm')[0]);
217 - <?php echo do_action('wppm_task_search_filter_dataform');?>
241 + jQuery(document).trigger('wppm_task_search_filter_dataform', [dataform]);
218 242 dataform.append("action", 'wppm_get_task_list');
219 243 dataform.append("is_frontend", '1');
244 + dataform.append("page",'wppm-tasks');
220 245 <?php if(!empty($this->shortcode_attr['project'])){ ?>
221 246 dataform.append("wppm_project_attr","<?php echo esc_attr($this->shortcode_attr['project']); ?>");
222 247 <?php } ?>
223 248 dataform.append("task_search", task_search);
@@ -233,16 +258,17 @@
233 258 });
234 259 }
235 260
236 261 function wppm_display_grid_view(){
237 - var task_search = jQuery("#wppm_view_task_search_filter").val();
262 + var task_search = jQuery("#wppm_view_task_search_filter").val() || '';
238 263 jQuery('#wppm_task_container').show();
239 264 jQuery('#wppm_task_container').html(wppm_admin.loading_html);
240 265 var dataform=new FormData(jQuery('#wppm_view_project_task')[0]);
241 - <?php echo do_action('wppm_display_grid_view_dataform');?>
266 + jQuery(document).trigger('wppm_display_grid_view_dataform', [dataform]);
242 267 dataform.append("action", 'wppm_get_task_list_card_view');
243 268 dataform.append("task_search", task_search);
244 269 dataform.append("is_frontend", '1');
270 + dataform.append("page",'wppm-tasks');
245 271 <?php if(!empty($this->shortcode_attr['project'])){ ?>
246 272 dataform.append("wppm_project_attr","<?php echo esc_attr($this->shortcode_attr['project']); ?>");
247 273 <?php } ?>
248 274 jQuery.ajax( {
@@ -260,13 +286,14 @@
260 286 function wppm_sort_up_task_list(sort_by,order){
261 287 jQuery('#wppm_task_container').show();
262 288 jQuery('#wppm_task_container').html(wppm_admin.loading_html);
263 289 var dataform=new FormData(jQuery('#wppm_task_list_frm')[0]);
264 - <?php echo do_action('wppm_sort_up_task_list_dataform');?>
265 290 dataform.append("action", 'wppm_get_task_list');
266 291 dataform.append("sort_by", sort_by);
267 292 dataform.append("order", order);
268 293 dataform.append("is_frontend", '1');
294 + jQuery(document).trigger('wppm_sort_up_task_list_dataform', [dataform]);
295 + dataform.append("page",'wppm-tasks');
269 296 <?php if(!empty($this->shortcode_attr['project'])){ ?>
270 297 dataform.append("wppm_project_attr","<?php echo esc_attr($this->shortcode_attr['project']); ?>");
271 298 <?php } ?>
272 299 jQuery.ajax( {
@@ -281,22 +308,18 @@
281 308 });
282 309 }
283 310
284 311 function wppm_view_task_search_filter(page_no){
285 - var task_search = jQuery("#wppm_view_task_search_filter").val();
286 - if(typeof task_search == "undefined"){
287 - var task_search ="";
288 - }else{
289 - var task_search =jQuery("#wppm_view_task_search_filter").val();
290 - }
312 + var task_search = jQuery("#wppm_view_task_search_filter").val() || '';
291 313 jQuery('#wppm_task_container').show();
292 314 jQuery('#wppm_task_container').html(wppm_admin.loading_html);
293 315 var dataform=new FormData(jQuery('#wppm_view_project_task')[0]);
294 - <?php echo do_action('wppm_view_task_search_filter_dataform');?>
316 + jQuery(document).trigger('wppm_view_task_search_filter_dataform', [dataform]);
295 317 dataform.append("action", 'wppm_get_task_list_card_view');
296 318 dataform.append("task_search", task_search);
297 319 dataform.append("page_no",page_no);
298 320 dataform.append("is_frontend", '1');
321 + dataform.append("page",'wppm-tasks');
299 322 <?php if(!empty($this->shortcode_attr['project'])){ ?>
300 323 dataform.append("wppm_project_attr","<?php echo esc_attr($this->shortcode_attr['project']); ?>");
301 324 <?php } ?>
302 325 jQuery.ajax( {
@@ -314,12 +337,13 @@
314 337 function wppm_apply_task_filter_grid_view(){
315 338 wppm_task_filter = jQuery('#wppm_task_filter').find(":selected").val();
316 339 jQuery('#wppm_task_container').html(wppm_admin.loading_html);
317 340 var dataform=new FormData(jQuery('#wppm_view_project_task')[0]);
318 - <?php echo do_action('wppm_apply_task_filter_grid_view_dataform');?>
341 + jQuery(document).trigger('wppm_apply_task_filter_grid_view_dataform', [dataform]);
319 342 dataform.append("action", 'wppm_view_project_tasks');
320 343 dataform.append("wppm_task_filter", wppm_task_filter);
321 344 dataform.append("is_frontend", '1');
345 + dataform.append("page",'wppm-tasks');
322 346 <?php if(!empty($this->shortcode_attr['project'])){ ?>
323 347 dataform.append("wppm_project_attr","<?php echo esc_attr($this->shortcode_attr['project']); ?>");
324 348 <?php } ?>
325 349 jQuery.ajax( {
@@ -334,11 +358,26 @@
334 358 });
335 359 }
336 360
337 361 function wppm_tl_reset_grid_view_filter(){
362 + // clear advanced filters + cookie BEFORE requesting the list,
363 + // otherwise this request still sends the stale tb_filters cookie
364 + // and the advanced filters never actually get reset
365 + jQuery("#tb-created-by").val(null).trigger("change");
366 + jQuery("#tb-assigned").val(null).trigger("change");
367 + jQuery("#tb-priority").val(null).trigger("change");
368 + jQuery("#tb-start-date").val("");
369 + jQuery("#tb-end-date").val("");
370 + jQuery("#tb-advanced-panel").removeClass("tb-open");
371 + jQuery("#tb-backdrop").removeClass("active");
372 + jQuery("#tb-active-filters").html('');
373 + window.filters = { created_by: [], assigned: [], priority: [], start_date: "", end_date: "" };
374 + document.cookie = "tb_filters=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;";
375 + window.localStorage.removeItem('wppm_task_filter');
376 +
338 377 jQuery('#wppm_task_container').html(wppm_admin.loading_html);
339 378 var dataform=new FormData(jQuery('#wppm_view_project_task')[0]);
340 - <?php echo do_action('wppm_tl_reset_grid_view_filter_dataform');?>
379 + jQuery(document).trigger('wppm_tl_reset_grid_view_filter_dataform', [dataform]);
341 380 dataform.append("action", 'wppm_view_project_tasks');
342 381 dataform.append("task_search", "");
343 382 dataform.append("wppm_task_filter", "all");
344 383 dataform.append("sort_by", "task_name");
@@ -344,8 +383,9 @@
344 383 dataform.append("sort_by", "task_name");
345 384 dataform.append("order", "ASC");
346 385 dataform.append("wppm_proj_filter","0");
347 386 dataform.append("is_frontend", '1');
387 + dataform.append("page",'wppm-tasks');
348 388 <?php if(!empty($this->shortcode_attr['project'])){ ?>
349 389 dataform.append("wppm_project_attr","<?php echo esc_attr($this->shortcode_attr['project']); ?>");
350 390 <?php } ?>
351 391 jQuery.ajax( {
@@ -353,21 +393,23 @@
353 393 type: 'POST',
354 394 data: dataform,
355 395 processData: false,
356 396 contentType: false
357 - })
397 + })
358 398 .done(function( response ) {
359 399 jQuery('#wppm_task_container').html(response);
360 400 });
361 401 }
402 +
362 403 function wppm_tasks_by_select_project(){
363 404 wppm_proj_filter = jQuery('#wppm_task_list_proj_filter').find(":selected").val();
364 405 jQuery('#wppm_task_container').html(wppm_admin.loading_html);
365 406 var dataform=new FormData(jQuery('#wppm_task_list_frm')[0]);
366 - <?php echo do_action('wppm_change_proj_tl_filter_dataform');?>
407 + jQuery(document).trigger('wppm_change_proj_tl_filter_dataform', [dataform]);
367 408 dataform.append("action", 'wppm_get_task_list');
368 409 dataform.append("wppm_proj_filter",wppm_proj_filter);
369 410 dataform.append("is_frontend", '1');
411 + dataform.append("page",'wppm-tasks');
370 412 jQuery.ajax( {
371 413 url: wppm_admin.ajax_url,
372 414 type: 'POST',
373 415 data: dataform,
@@ -382,12 +424,13 @@
382 424 function wppm_tasks_by_select_project_grid_view(){
383 425 wppm_proj_filter = jQuery('#wppm_task_list_proj_filter').find(":selected").val();
384 426 jQuery('#wppm_task_container').html(wppm_admin.loading_html);
385 427 var dataform=new FormData(jQuery('#wppm_view_project_task')[0]);
386 - <?php echo do_action('wppm_change_proj_grid_view_filter_dataform');?>
428 + jQuery(document).trigger('wppm_change_proj_grid_view_filter_dataform', [dataform]);
387 429 dataform.append("action", 'wppm_view_project_tasks');
388 430 dataform.append("wppm_proj_filter",wppm_proj_filter);
389 431 dataform.append("is_frontend", '1');
432 + dataform.append("page",'wppm-tasks');
390 433 jQuery.ajax( {
391 434 url: wppm_admin.ajax_url,
392 435 type: 'POST',
393 436 data: dataform,