| @@ -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, |