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 | asset/js/admin.js +2144 -135 1.0.26.0.6 View file →
@@ -1,4 +1,32 @@
1 +function getMentionDropdown(editor) {
2 + let body = jQuery(editor.getBody());
3 + let dropdown = body.find('#wppm_mention_list');
4 +
5 + if (!dropdown.length) {
6 + dropdown = jQuery('<div id="wppm_mention_list"></div>');
7 + body.append(dropdown);
8 + }
9 + if (!editor.mentionDropdown) {
10 + return editor.mentionDropdown;
11 + }else{
12 + return dropdown;
13 + }
14 +}
15 +
16 +function updateActiveItem(items,mentionIndex) {
17 + items.removeClass('active').css({
18 + background: '#fff',
19 + color: '#333'
20 + });
21 + items.eq(mentionIndex)
22 + .addClass('active')
23 + .css({
24 + background: '#0073aa',
25 + color: '#fff'
26 + });
27 +}
28 +
1 29 function wppm_add_new_project(){
2 30 jQuery('#wppm_project_container').show();
3 31 jQuery('#wppm_project_container').html(wppm_admin.loading_html);
4 32 var data = {
@@ -38,8 +66,41 @@
38 66 jQuery('.wppm_setting_col2').html(response);
39 67 });
40 68 }
41 69
70 +function wppm_get_page_settings(){
71 + jQuery('.wppm_setting_pills li').removeClass('active');
72 + jQuery('#wppm_settings_page').addClass('active');
73 + jQuery('.wppm_setting_col2').html(wppm_admin.loading_html);
74 + var data = {
75 + action: 'wppm_get_page_setings'
76 + };
77 + jQuery.post(wppm_admin.ajax_url, data, function(response) {
78 + jQuery('.wppm_setting_col2').html(response);
79 + });
80 +}
81 +
82 +function wppm_set_page_settings(){
83 + jQuery('.wppm_submit_wait').show();
84 + var dataform = new FormData(jQuery('#wppm-frm-ps')[0]);
85 + jQuery.ajax({
86 + url: wppm_admin.ajax_url,
87 + type: 'POST',
88 + data: dataform,
89 + processData: false,
90 + contentType: false
91 + })
92 + .done(function (response_str) {
93 + var response = JSON.parse(response_str);
94 + jQuery('.wppm_submit_wait').hide();
95 + if (response.sucess_status=='1') {
96 + jQuery('#wppm_alert_success .wppm_alert_text').text(response.messege);
97 + }
98 + jQuery('#wppm_alert_success').slideDown('fast',function(){});
99 + setTimeout(function(){ jQuery('#wppm_alert_success').slideUp('fast',function(){}); }, 3000);
100 + });
101 +}
102 +
42 103 /*
43 104 * Category Settings
44 105 */
45 106 function wppm_get_category_settings(){
@@ -61,9 +122,12 @@
61 122
62 123 const flag = confirm(wppm_admin.confirm);
63 124 if (!flag) return;
64 125
65 - var data = { action: 'wppm_delete_category', cat_id };
126 + var data = { action: 'wppm_delete_category',
127 + cat_id,
128 + _ajax_nonce:jQuery('#wppm_delete_cat_ajax_nonce').val()
129 + };
66 130 jQuery.post(wppm_admin.ajax_url, data, function (res) {
67 131 wppm_get_category_settings();
68 132 });
69 133 }
@@ -96,9 +160,11 @@
96 160 function wppm_delete_proj_status(status_id){
97 161 const flag = confirm(wppm_admin.confirm);
98 162 if (!flag) return;
99 163
100 - var data = { action: 'wppm_delete_status', status_id };
164 + var data = { action: 'wppm_delete_status', status_id,
165 + _ajax_nonce:jQuery('#wppm_delete_pstatus_ajax_nonce').val()
166 + };
101 167 jQuery.post(wppm_admin.ajax_url, data, function (res) {
102 168 wppm_get_proj_status_settings();
103 169 });
104 170 }
@@ -119,9 +185,9 @@
119 185 wppm_open_project(proj_id);
120 186 });
121 187 }
122 188
123 -function wppm_set_task_users(proj_id){
189 +function wppm_set_task_users(proj_id,project_id){
124 190 var dataform = new FormData(jQuery('#frm_get_task_users')[0]);
125 191 jQuery('#wppm_task_container').html(wppm_admin.loading_html);
126 192 var task_id = jQuery('#wppm_task_id').val();
127 193 jQuery.ajax({
@@ -132,13 +198,13 @@
132 198 contentType: false
133 199 })
134 200 .done(function () {
135 201 if((proj_id!=0)||(proj_id!="")){
136 - wppm_modal_close();
202 + wppm_task_modal_close();
137 203 wppm_open_project_tasks(task_id,proj_id);
138 204 }else if((proj_id==0)||(proj_id=="")){
139 - wppm_modal_close();
140 - wppm_open_task(task_id);
205 + wppm_task_modal_close();
206 + wppm_open_task(task_id,project_id);
141 207 }
142 208 });
143 209 }
144 210
@@ -147,8 +213,10 @@
147 213 jQuery('#wppm_project_container').html(wppm_admin.loading_html);
148 214 var dataform=new FormData(jQuery('#wppm_project_list_frm')[0]);
149 215 dataform.append("page_no", page_no);
150 216 dataform.append("action", 'wppm_get_project_list');
217 + dataform.append("page", wppm_admin.page);
218 + dataform.append("wppm_project_filter", wppm_project_filter);
151 219 jQuery.ajax( {
152 220 url: wppm_admin.ajax_url,
153 221 type: 'POST',
154 222 data: dataform,
@@ -159,14 +227,15 @@
159 227 jQuery('#wppm_project_container').html(response);
160 228 });
161 229 }
162 230
163 -function wppm_add_new_task(proj_id){
231 +function wppm_add_new_task(proj_id,project_id){
164 232 jQuery('#wppm_task_container').show();
165 233 jQuery('#wppm_task_container').html(wppm_admin.loading_html);
166 234 var data = {
167 235 action: 'wppm_add_new_task',
168 - proj_id:proj_id
236 + proj_id:proj_id,
237 + project_id:project_id
169 238 };
170 239 jQuery.post(wppm_admin.ajax_url, data, function(response) {
171 240 jQuery('#wppm_task_container').html(response);
172 241 });
@@ -171,14 +240,18 @@
171 240 jQuery('#wppm_task_container').html(response);
172 241 });
173 242 }
174 243
175 -function wppm_get_task_list(page_no){
244 +function wppm_get_task_list(page_no,id){
176 245 jQuery('#wppm_task_container').show();
246 + // window.history.replaceState( {}, null, 'admin.php?page=wppm-tasks&section=task-list' );
177 247 jQuery('#wppm_task_container').html(wppm_admin.loading_html);
178 248 var data = {
179 249 action: 'wppm_get_task_list',
180 - page_no:page_no
250 + page_no:page_no,
251 + page:wppm_admin.page,
252 + project_id:id,
253 + wppm_task_filter:wppm_task_filter
181 254 };
182 255 jQuery.post(wppm_admin.ajax_url, data, function(response) {
183 256 jQuery('#wppm_task_container').html(response);
184 257 });
@@ -212,9 +285,11 @@
212 285 function wppm_delete_task_priority(priority_id){
213 286 const flag = confirm(wppm_admin.confirm);
214 287 if (!flag) return;
215 288
216 - var data = { action: 'wppm_delete_task_priority', priority_id };
289 + var data = { action: 'wppm_delete_task_priority', priority_id,
290 + _ajax_nonce:jQuery('#wppm_delete_tprio_ajax_nonce').val()
291 + };
217 292 jQuery.post(wppm_admin.ajax_url, data, function (res) {
218 293 wppm_get_task_prioriy_settings();
219 294 });
220 295 }
@@ -247,21 +322,23 @@
247 322 function wppm_delete_task_status(status_id){
248 323 const flag = confirm(wppm_admin.confirm);
249 324 if (!flag) return;
250 325
251 - var data = { action: 'wppm_delete_task_status', status_id };
326 + var data = { action: 'wppm_delete_task_status', status_id,
327 + _ajax_nonce: jQuery('#wppm_delete_tstatus_ajax_nonce').val()};
252 328 jQuery.post(wppm_admin.ajax_url, data, function (res) {
253 329 wppm_get_task_status_settings();
254 330 });
255 331 }
256 332
257 -function wppm_task_search_filter(){
333 +function wppm_task_search_filter(page){
258 334 var task_search = jQuery("#wppm_task_search_filter").val();
259 335 jQuery('#wppm_task_container').show();
260 336 jQuery('#wppm_task_container').html(wppm_admin.loading_html);
261 337 var data = {
262 338 action: 'wppm_get_task_list',
263 - task_search:task_search
339 + task_search:task_search,
340 + page:page
264 341 };
265 342 jQuery.post(wppm_admin.ajax_url, data, function(response) {
266 343 jQuery('#wppm_task_container').html(response);
267 344 });
@@ -266,10 +343,10 @@
266 343 jQuery('#wppm_task_container').html(response);
267 344 });
268 345 }
269 346
270 -function wppm_view_task_search_filter(page_no){
271 - var task_search = jQuery("#wppm_view_task_search_filter").val();
347 +function wppm_view_task_search_filter(page_no,page,proj_id){
348 + var task_search = jQuery("#wppm_view_task_search_filter").val() || '';
272 349 jQuery('#wppm_task_container').show();
273 350 jQuery('#wppm_task_container').html(wppm_admin.loading_html);
274 351
275 352 var data = {
@@ -274,9 +351,11 @@
274 351
275 352 var data = {
276 353 action: 'wppm_get_task_list_card_view',
277 354 task_search:task_search,
278 - page_no:page_no
355 + page_no:page_no,
356 + page:page,
357 + project_id:proj_id
279 358 };
280 359 jQuery.post(wppm_admin.ajax_url, data, function(response) {
281 360 jQuery('#wppm_task_container').html(response);
282 361 });
@@ -281,14 +360,17 @@
281 360 jQuery('#wppm_task_container').html(response);
282 361 });
283 362 }
284 363
285 -function wppm_open_task(id){
364 +function wppm_open_task(id,proj_id){
286 365 jQuery('#wppm_task_container').show();
287 366 jQuery('#wppm_task_container').html(wppm_admin.loading_html);
288 367 var data = {
289 368 action: 'wppm_open_task',
290 - id:id
369 + id:id,
370 + auth_code: wppm_admin.auth_code,
371 + page:wppm_admin.page,
372 + project_id:proj_id
291 373 };
292 374 jQuery.post(wppm_admin.ajax_url, data, function(response) {
293 375 jQuery('#wppm_task_container').html(response);
294 376 });
@@ -293,8 +375,20 @@
293 375 jQuery('#wppm_task_container').html(response);
294 376 });
295 377 }
296 378
379 +function wppm_open_dashboard_task(id){
380 + window.location.href = 'admin.php?page=wppm-tasks&task_id=' + id;
381 +}
382 +
383 +function wppm_open_subtask(id,proj_id){
384 + if((proj_id!=0)&&(proj_id!="")){
385 + wppm_open_project_tasks(id,proj_id);
386 + }else{
387 + wppm_open_task(id);
388 + }
389 +}
390 +
297 391 function wppm_open_project_tasks(id,proj_id){
298 392 wppm_modal_open('Open Tasks');
299 393 jQuery('#wppm_task_container').show();
300 394 jQuery('#wppm_task_container').html(wppm_admin.loading_html);
@@ -317,9 +411,10 @@
317 411 var data = {
318 412 action: 'wppm_add_new_checklist',
319 413 task_id: task_id,
320 414 proj_id: proj_id,
321 - checklist_name: jQuery('#wppm_checklist_label').val()
415 + checklist_name: jQuery('#wppm_checklist_label').val(),
416 + _ajax_nonce:jQuery('#wppm_checklist_ajax_nonce').val()
322 417 };
323 418 jQuery.post(wppm_admin.ajax_url, data, function(response) {
324 419 if((proj_id!=0)||(proj_id!="")){
325 420 //wppm_modal_close();
@@ -339,9 +434,10 @@
339 434 var data = {
340 435 action: 'wppm_add_new_checklist_item',
341 436 checklist_id: checklist_id,
342 437 proj_id:proj_id,
343 - label: jQuery('#wppm_checklist_item_label_'+checklist_id).val()
438 + label: jQuery('#wppm_checklist_item_label_'+checklist_id).val(),
439 + _ajax_nonce:jQuery('#wppm_checklist_item_ajax_nonce').val()
344 440 };
345 441 jQuery.post(wppm_admin.ajax_url, data, function(response) {
346 442 if((proj_id!=0)||(proj_id!="")){
347 443 wppm_open_project_tasks(task_id,proj_id);
@@ -355,9 +451,12 @@
355 451 const flag = confirm(wppm_admin.confirm);
356 452 if (!flag) return;
357 453 var data = {
358 454 action: 'wppm_delete_checklist',
359 - checklist_id: checklist_id
455 + checklist_id: checklist_id,
456 + task_id:task_id,
457 + proj_id:proj_id,
458 + _ajax_nonce:jQuery('#wppm_delete_checklist_ajax_nonce').val()
360 459 };
361 460 jQuery.post(wppm_admin.ajax_url, data, function(response) {
362 461 if((proj_id!=0)||(proj_id!="")){
363 462 wppm_open_project_tasks(task_id,proj_id);
@@ -372,9 +471,12 @@
372 471 if (!flag) return;
373 472 var data = {
374 473 action: 'wppm_remove_checklist_item',
375 474 item_id:item_id,
376 - checklist_id: checklist_id
475 + checklist_id: checklist_id,
476 + proj_id:proj_id,
477 + task_id:task_id,
478 + _ajax_nonce:jQuery('#wppm_delete_checklist_item_ajax_nonce').val()
377 479 };
378 480 jQuery.post(wppm_admin.ajax_url, data, function(response) {
379 481 if((proj_id!=0)||(proj_id!="")){
380 482 wppm_open_project_tasks(task_id,proj_id);
@@ -401,9 +503,10 @@
401 503 var data = {
402 504 action: 'wppm_set_checklist_progress',
403 505 checklist_id: checklist_id,
404 506 item_id:item_id,
405 - checked_item: checked_item
507 + checked_item: checked_item,
508 + _ajax_nonce:jQuery('#wppm_checklist_progress_ajax_nonce').val()
406 509 };
407 510 jQuery.post(wppm_admin.ajax_url, data, function(response) {
408 511 wppm_open_task(task_id);
409 512 });
@@ -408,8 +511,101 @@
408 511 wppm_open_task(task_id);
409 512 });
410 513 }
411 514
515 +function wppm_show_add_subtask(){
516 + jQuery('#wppm_add_subtask_label_container').show();
517 + jQuery('#wppm_subtask_label').val('').focus();
518 +}
519 +
520 +function wppm_hide_add_subtask(){
521 + jQuery('#wppm_add_subtask_label_container').hide();
522 + jQuery('#wppm_subtask_label').val('');
523 +}
524 +
525 +function wppm_remove_subtask_user(e){
526 + jQuery(e).closest('li').remove();
527 +}
528 +
529 +function wppm_add_new_subtask(task_id,proj_id){
530 + if(jQuery('#wppm_subtask_label').val()==''){
531 + jQuery('#wppm_subtask_label').focus();
532 + return false;
533 + }
534 + var user_ids = [];
535 + jQuery('.wppm_subtask_filter_display_users_container input[name="wppm_subtask_user_names[]"]').each(function(){
536 + user_ids.push(jQuery(this).val());
537 + });
538 + var data = {
539 + action: 'wppm_add_new_subtask',
540 + task_id: task_id,
541 + label: jQuery('#wppm_subtask_label').val(),
542 + wppm_subtask_status: jQuery('#wppm_subtask_status').val(),
543 + wppm_subtask_due_date: jQuery('#wppm_subtask_due_date').val(),
544 + wppm_subtask_description: jQuery('#wppm_subtask_description').val(),
545 + wppm_subtask_user_names: user_ids,
546 + _ajax_nonce: jQuery('#wppm_add_new_subtask_ajax_nonce').val()
547 + };
548 + jQuery.post(wppm_admin.ajax_url, data, function(response) {
549 + if((proj_id!=0)&&(proj_id!="")){
550 + wppm_open_project_tasks(task_id,proj_id);
551 + }else{
552 + wppm_open_task(task_id);
553 + }
554 + });
555 +}
556 +
557 +function wppm_delete_subtask(subtask_id,task_id,proj_id){
558 + const flag = confirm(wppm_admin.confirm);
559 + if (!flag) return;
560 + var data = {
561 + action: 'wppm_remove_subtask',
562 + subtask_id: subtask_id,
563 + _ajax_nonce: jQuery('#wppm_remove_subtask_ajax_nonce').val()
564 + };
565 + jQuery.post(wppm_admin.ajax_url, data, function(response) {
566 + if((proj_id!=0)&&(proj_id!="")){
567 + wppm_open_project_tasks(task_id,proj_id);
568 + }else{
569 + wppm_open_task(task_id);
570 + }
571 + });
572 +}
573 +
574 +function wppm_convert_subtask_to_task(subtask_id,reload_task_id,proj_id){
575 + const flag = confirm(wppm_admin.confirm);
576 + if (!flag) return;
577 + var data = {
578 + action: 'wppm_convert_subtask_to_task',
579 + subtask_id: subtask_id,
580 + _ajax_nonce: jQuery('#wppm_convert_subtask_to_task_ajax_nonce').val()
581 + };
582 + jQuery.post(wppm_admin.ajax_url, data, function(response) {
583 + if((proj_id!=0)&&(proj_id!="")){
584 + wppm_open_project_tasks(reload_task_id,proj_id);
585 + }else{
586 + wppm_open_task(reload_task_id);
587 + }
588 + });
589 +}
590 +
591 +function wppm_toggle_subtask_status(subtask_id,task_id,proj_id,default_status_id,is_checked){
592 + var status_id = is_checked ? 4 : default_status_id;
593 + var data = {
594 + action: 'wppm_set_change_task_status',
595 + task_id: subtask_id,
596 + wppm_status: status_id,
597 + _ajax_nonce: jQuery('#wppm_subtask_status_ajax_nonce').val()
598 + };
599 + jQuery.post(wppm_admin.ajax_url, data, function(response) {
600 + if((proj_id!=0)&&(proj_id!="")){
601 + wppm_open_project_tasks(task_id,proj_id);
602 + }else{
603 + wppm_open_task(task_id);
604 + }
605 + });
606 +}
607 +
412 608 function wppm_open_individual_task(id){
413 609 jQuery('#wppm_project_container').show();
414 610 jQuery('#wppm_project_container').html(wppm_admin.loading_html);
415 611 var data = {
@@ -420,15 +616,19 @@
420 616 jQuery('#wppm_project_container').html(response);
421 617 });
422 618 }
423 619
424 -function wppm_display_grid_view(){
425 - var task_search = jQuery("#wppm_view_task_search_filter").val();
620 +
621 +function wppm_display_grid_view(page,id){
622 + var task_search = jQuery("#wppm_view_task_search_filter").val() || '';
426 623 jQuery('#wppm_task_container').show();
427 624 jQuery('#wppm_task_container').html(wppm_admin.loading_html);
428 625 var data = {
429 626 action: 'wppm_get_task_list_card_view',
430 - task_search: task_search
627 + task_search: task_search,
628 + wppm_task_filter: wppm_task_filter,
629 + page:page,
630 + id:id
431 631 };
432 632 jQuery.post(wppm_admin.ajax_url, data, function(response) {
433 633 jQuery('#wppm_task_container').html(response);
434 634 });
@@ -445,37 +645,8 @@
445 645 function wppm_remove_task_user_filter(id){
446 646 jQuery('#wppm_task_user_display_container_'+id).remove();
447 647 }
448 648
449 -function wppm_cancel_comment(){
450 - tinyMCE. activeEditor. setContent('');
451 - tinymce.remove('#wppm_task_comment');
452 - jQuery('#wppm_comment_btn').hide();
453 -}
454 -
455 -function wppm_submit_task_comment(id,proj_id){
456 - var dataform = new FormData(jQuery('#wppm_open_task')[0]);
457 - jQuery('#wppm_task_container').html(wppm_admin.loading_html);
458 - dataform.append('action','wppm_submit_task_comment');
459 - var comment_body = tinyMCE.get('wppm_task_comment').getContent().trim();
460 - dataform.append('comment_body',comment_body);
461 - dataform.append('task_id',id);
462 - jQuery.ajax({
463 - url: wppm_admin.ajax_url,
464 - type: 'POST',
465 - data: dataform,
466 - processData: false,
467 - contentType: false
468 - })
469 - .done(function (response_str) {
470 - if((proj_id!=0)||(proj_id!="")){
471 - wppm_open_project_tasks(id,proj_id);
472 - }else if((proj_id==0)||(proj_id=="")){
473 - wppm_open_task(id);
474 - }
475 - });
476 -}
477 -
478 649 function wppm_attachment_cancel( obj ){
479 650 jQuery(obj).parent().remove();
480 651 }
481 652
@@ -528,53 +699,87 @@
528 699 jQuery('.wppm_setting_col2').html(response);
529 700 });
530 701 }
531 702
532 -function wppm_edit_task_status(id,proj_id){
533 - wppm_modal_open('Edit');
703 +function wppm_edit_task_status(id,proj_id,project_id){
704 + if(proj_id==0){
705 + wppm_task_modal_open('Edit');
706 + }else{
707 + wppm_modal_open('Edit');
708 + }
534 709 var data = {
535 710 action: 'wppm_edit_task_status',
536 711 task_id: id,
537 - proj_id:proj_id
712 + proj_id:proj_id,
713 + project_id:project_id
538 714 }
539 715 jQuery.post(wppm_admin.ajax_url, data, function(response_str) {
540 716 var response = JSON.parse(response_str);
541 - jQuery('#wppm_popup_body').html(response.body);
542 - jQuery('#wppm_popup_footer').html(response.footer);
717 + if(proj_id==0){
718 + jQuery('#wppm_task_popup_body').html(response.body);
719 + jQuery('#wppm_task_popup_footer').html(response.footer);
720 + }else{
721 + jQuery('#wppm_popup_body').html(response.body);
722 + jQuery('#wppm_popup_footer').html(response.footer);
723 + }
543 724 });
544 725 }
545 726
546 -function wppm_edit_task_users(task_id,proj_id){
547 - wppm_modal_open('Add Users');
727 +function wppm_edit_task_users(task_id,proj_id,project_id){
728 + if(proj_id==0){
729 + wppm_task_modal_open('Add Users');
730 + }else{
731 + wppm_modal_open('Add Users');
732 + }
548 733 var data = {
549 734 action: 'wppm_get_task_users',
550 735 task_id: task_id,
551 - proj_id:proj_id
736 + proj_id:proj_id,
737 + project_id:project_id
552 738 }
553 739 jQuery.post(wppm_admin.ajax_url, data, function(response_str) {
554 740 var response = JSON.parse(response_str);
555 - jQuery('#wppm_popup_body').html(response.body);
556 - jQuery('#wppm_popup_footer').html(response.footer);
741 + if(proj_id==0){
742 + jQuery('#wppm_task_popup_body').html(response.body);
743 + jQuery('#wppm_task_popup_footer').html(response.footer);
744 + }else{
745 + jQuery('#wppm_popup_body').html(response.body);
746 + jQuery('#wppm_popup_footer').html(response.footer);
747 + }
557 748 });
558 749 }
559 750
560 -function wppm_edit_task_details(id,proj_id){
561 - wppm_modal_open('Edit Task Details');
751 +function wppm_edit_task_details(id,proj_id,project_id){
752 + if(proj_id==0){
753 + wppm_task_modal_open('Edit Task Details');
754 + }else{
755 + wppm_modal_open('Edit Task Details');
756 + }
562 757 var data = {
563 758 action: 'wppm_edit_task_details',
564 759 task_id: id,
565 - proj_id:proj_id
760 + proj_id:proj_id,
761 + project_id:project_id
566 762 }
567 763 jQuery.post(wppm_admin.ajax_url, data, function(response_str) {
568 764 var response = JSON.parse(response_str);
569 - jQuery('#wppm_popup_body').html(response.body);
570 - jQuery('#wppm_popup_footer').html(response.footer);
765 + if(proj_id==0){
766 + jQuery('#wppm_task_popup_body').html(response.body);
767 + jQuery('#wppm_task_popup_footer').html(response.footer);
768 + }else{
769 + jQuery('#wppm_popup_body').html(response.body);
770 + jQuery('#wppm_popup_footer').html(response.footer);
771 + }
571 772 });
572 773 }
573 774
574 -function wppm_set_change_task_status(task_id,proj_id){
775 +function wppm_set_change_task_status(task_id,proj_id,project_id){
575 776 var dataform = new FormData(jQuery('#frm_get_task_change_status')[0]);
576 - wppm_modal_close();
777 + if(proj_id == 0){
778 + wppm_task_modal_close();
779 + }else{
780 + wppm_modal_close();
781 + }
577 782 jQuery('#wppm_task_container').html(wppm_admin.loading_html);
578 783 jQuery.ajax({
579 784 url: wppm_admin.ajax_url,
580 785 type: 'POST',
@@ -585,31 +790,45 @@
585 790 .done(function (response_str) {
586 791 if((proj_id!=0)||(proj_id!="")){
587 792 wppm_open_project_tasks(task_id,proj_id);
588 793 }else if((proj_id==0)||(proj_id=="")){
589 - wppm_open_task(task_id);
794 + wppm_open_task(task_id,project_id);
590 795 }
591 796
592 797 });
593 798 }
594 799
595 -function wppm_edit_task_creator(task_id,proj_id){
596 - wppm_modal_open('Edit Task Creator');
800 +function wppm_edit_task_creator(task_id,proj_id,project_id){
801 + if(proj_id==0){
802 + wppm_task_modal_open('Edit Task Creator');
803 + }else{
804 + wppm_modal_open('Edit Task Creator');
805 + }
597 806 var data = {
598 807 action: 'wppm_edit_task_creator',
599 808 task_id: task_id,
600 - proj_id: proj_id
809 + proj_id: proj_id,
810 + project_id: project_id
601 811 }
602 812 jQuery.post(wppm_admin.ajax_url, data, function(response_str) {
603 813 var response = JSON.parse(response_str);
604 - jQuery('#wppm_popup_body').html(response.body);
605 - jQuery('#wppm_popup_footer').html(response.footer);
814 + if(proj_id==0){
815 + jQuery('#wppm_task_popup_body').html(response.body);
816 + jQuery('#wppm_task_popup_footer').html(response.footer);
817 + }else{
818 + jQuery('#wppm_popup_body').html(response.body);
819 + jQuery('#wppm_popup_footer').html(response.footer);
820 + }
606 821 });
607 822 }
608 823
609 -function wppm_set_change_raised_by(task_id,proj_id){
824 +function wppm_set_change_raised_by(task_id,proj_id,project_id){
610 825 var dataform = new FormData(jQuery('#frm_get_task_creator')[0]);
611 - wppm_modal_close();
826 + if(proj_id==0){
827 + wppm_task_modal_close();
828 + }else{
829 + wppm_modal_close();
830 + }
612 831 jQuery('#wppm_task_container').html(wppm_admin.loading_html);
613 832 jQuery.ajax({
614 833 url: wppm_admin.ajax_url,
615 834 type: 'POST',
@@ -620,37 +839,50 @@
620 839 .done(function (response_str) {
621 840 if((proj_id!=0)||(proj_id!="")){
622 841 wppm_open_project_tasks(task_id,proj_id);
623 842 }else if((proj_id==0)||(proj_id=="")){
624 - wppm_open_task(task_id);
843 + wppm_open_task(task_id,project_id);
625 844 }
626 845 });
627 846 }
628 847
629 -function wppm_set_change_task_details(task_id,proj_id){
630 - var dataform = new FormData(jQuery('#frm_get_edit_task_deatils')[0]);
631 - var description = tinyMCE.get('wppm_edit_task_description').getContent().trim();
632 - dataform.append('wppm_edit_task_description', description);
633 - wppm_modal_close();
634 - jQuery('#wppm_task_container').html(wppm_admin.loading_html);
635 - jQuery.ajax({
636 - url: wppm_admin.ajax_url,
637 - type: 'POST',
638 - data: dataform,
639 - processData: false,
640 - contentType: false
641 - })
642 - .done(function (response_str) {
643 - if((proj_id!=0)||(proj_id!="")){
644 - wppm_open_project_tasks(task_id,proj_id);
645 - }else if((proj_id==0)||(proj_id=="")){
646 - wppm_open_task(task_id);
848 +function wppm_set_change_task_details(task_id, proj_id, project_id) {
849 + var dataform = new FormData(jQuery('#frm_get_edit_task_deatils')[0]);
850 + var editor = tinyMCE.get('wppm_edit_task_description');
851 + var description = '';
852 + if (editor) {
853 + description = editor.getContent().trim();
854 + } else {
855 + description = jQuery('#wppm_edit_task_description').val().trim();
647 856 }
648 - });
857 + dataform.append('wppm_edit_task_description', description);
858 + if (proj_id == 0) {
859 + wppm_task_modal_close();
860 + } else {
861 + wppm_modal_close();
862 + }
863 + jQuery('#wppm_task_container').html(wppm_admin.loading_html);
864 + jQuery.ajax({
865 + url: wppm_admin.ajax_url,
866 + type: 'POST',
867 + data: dataform,
868 + processData: false,
869 + contentType: false
870 + }).done(function(response_str) {
871 + if (proj_id != 0 && proj_id != "") {
872 + wppm_open_project_tasks(task_id, proj_id);
873 + } else {
874 + wppm_open_task(task_id, project_id);
875 + }
876 + });
649 877 }
650 878
651 879 function wppm_edit_thread(comment_id,task_id,proj_id){
652 - wppm_modal_open('Edit Thread');
880 + if(proj_id==0){
881 + wppm_task_modal_open('Edit Thread');
882 + }else{
883 + wppm_modal_open('Edit Thread');
884 + }
653 885 var data = {
654 886 action: 'wppm_edit_task_thread',
655 887 comment_id:comment_id,
656 888 task_id: task_id,
@@ -657,8 +889,27 @@
657 889 proj_id: proj_id
658 890 }
659 891 jQuery.post(wppm_admin.ajax_url, data, function(response_str) {
660 892 var response = JSON.parse(response_str);
893 + if(proj_id==0){
894 + jQuery('#wppm_task_popup_body').html(response.body);
895 + jQuery('#wppm_task_popup_footer').html(response.footer);
896 + }else{
897 + jQuery('#wppm_popup_body').html(response.body);
898 + jQuery('#wppm_popup_footer').html(response.footer);
899 + }
900 + });
901 +}
902 +
903 +function wppm_edit_proj_thread(comment_id,proj_id){
904 + wppm_modal_open('Edit Thread');
905 + var data = {
906 + action: 'wppm_edit_proj_thread',
907 + comment_id:comment_id,
908 + proj_id: proj_id
909 + }
910 + jQuery.post(wppm_admin.ajax_url, data, function(response_str) {
911 + var response = JSON.parse(response_str);
661 912 jQuery('#wppm_popup_body').html(response.body);
662 913 jQuery('#wppm_popup_footer').html(response.footer);
663 914 });
664 915 }
@@ -664,11 +915,19 @@
664 915 }
665 916
666 917 function wppm_set_edit_task_thread(task_id,proj_id){
667 918 var dataform = new FormData(jQuery('#frm_edit_task_thread')[0]);
668 - var comment_body = tinyMCE.get('wppm_edit_task_thread_editor').getContent().trim();
919 + if(wppm_admin.rich_text_editor == 1){
920 + var comment_body = tinyMCE.get('wppm_edit_task_thread_editor').getContent().trim();
921 + }else{
922 + var comment_body = jQuery('#wppm_edit_task_thread_editor').val().trim();
923 + }
669 924 dataform.append('wppm_edit_task_thread', comment_body);
670 - wppm_modal_close();
925 + if(proj_id==0){
926 + wppm_task_modal_close();
927 + }else{
928 + wppm_modal_close();
929 + }
671 930 jQuery('#wppm_task_container').html(wppm_admin.loading_html);
672 931 jQuery.ajax({
673 932 url: wppm_admin.ajax_url,
674 933 type: 'POST',
@@ -684,10 +943,36 @@
684 943 }
685 944 });
686 945 }
687 946
947 +function wppm_set_edit_proj_thread(proj_id){
948 + var dataform = new FormData(jQuery('#frm_edit_proj_thread')[0]);
949 + if(wppm_admin.rich_text_editor == 1){
950 + var comment_body = tinyMCE.get('wppm_edit_proj_thread_editor').getContent().trim();
951 + }else{
952 + var comment_body = jQuery('#wppm_edit_proj_thread_editor').val().trim();
953 + }
954 + dataform.append('wppm_edit_proj_thread', comment_body);
955 + wppm_modal_close();
956 + jQuery('#wppm_task_container').html(wppm_admin.loading_html);
957 + jQuery.ajax({
958 + url: wppm_admin.ajax_url,
959 + type: 'POST',
960 + data: dataform,
961 + processData: false,
962 + contentType: false
963 + })
964 + .done(function (response_str) {
965 + wppm_open_project(proj_id);
966 + });
967 +}
968 +
688 969 function wppm_delete_thread(comment_id,task_id,proj_id){
689 - wppm_modal_open('Delete Thread');
970 + if(proj_id==0){
971 + wppm_task_modal_open('Delete Thread');
972 + }else{
973 + wppm_modal_open('Delete Thread');
974 + }
690 975 var data = {
691 976 action: 'wppm_delete_task_thread',
692 977 comment_id:comment_id,
693 978 task_id: task_id,
@@ -694,8 +979,27 @@
694 979 proj_id:proj_id
695 980 }
696 981 jQuery.post(wppm_admin.ajax_url, data, function(response_str) {
697 982 var response = JSON.parse(response_str);
983 + if(proj_id==0){
984 + jQuery('#wppm_task_popup_body').html(response.body);
985 + jQuery('#wppm_task_popup_footer').html(response.footer);
986 + }else{
987 + jQuery('#wppm_popup_body').html(response.body);
988 + jQuery('#wppm_popup_footer').html(response.footer);
989 + }
990 + });
991 +}
992 +
993 +function wppm_delete_proj_thread(comment_id,proj_id){
994 + wppm_modal_open('Delete Thread');
995 + var data = {
996 + action: 'wppm_delete_proj_thread',
997 + comment_id:comment_id,
998 + proj_id:proj_id
999 + }
1000 + jQuery.post(wppm_admin.ajax_url, data, function(response_str) {
1001 + var response = JSON.parse(response_str);
698 1002 jQuery('#wppm_popup_body').html(response.body);
699 1003 jQuery('#wppm_popup_footer').html(response.footer);
700 1004 });
701 1005 }
@@ -701,9 +1005,13 @@
701 1005 }
702 1006
703 1007 function wppm_set_delete_thread(task_id,proj_id){
704 1008 var dataform = new FormData(jQuery('#frm_delete_task_thread')[0]);
705 - wppm_modal_close();
1009 + if(proj_id==0){
1010 + wppm_task_modal_close();
1011 + }else{
1012 + wppm_modal_close();
1013 + }
706 1014 jQuery('#wppm_task_container').html(wppm_admin.loading_html);
707 1015 jQuery.ajax({
708 1016 url: wppm_admin.ajax_url,
709 1017 type: 'POST',
@@ -719,8 +1027,24 @@
719 1027 }
720 1028 });
721 1029 }
722 1030
1031 +function wppm_set_delete_proj_thread(proj_id){
1032 + var dataform = new FormData(jQuery('#frm_delete_proj_thread')[0]);
1033 + wppm_modal_close();
1034 + jQuery('#wppm_task_container').html(wppm_admin.loading_html);
1035 + jQuery.ajax({
1036 + url: wppm_admin.ajax_url,
1037 + type: 'POST',
1038 + data: dataform,
1039 + processData: false,
1040 + contentType: false
1041 + })
1042 + .done(function (response_str) {
1043 + wppm_open_project(proj_id);
1044 + });
1045 +}
1046 +
723 1047 function wppm_edit_proj_details(id){
724 1048 wppm_modal_open('Edit Project Details');
725 1049 var data = {
726 1050 action: 'wppm_edit_project_details',
@@ -850,25 +1174,39 @@
850 1174 wppm_get_project_list();
851 1175 });
852 1176 }
853 1177
854 -function wppm_get_delete_task(id){
855 - wppm_modal_open('Delete Task');
1178 +function wppm_get_delete_task(id,proj_id,project_id){
1179 + if(proj_id==0){
1180 + wppm_task_modal_open('Delete Task');
1181 + }else{
1182 + wppm_modal_open('Delete Task');
1183 + }
856 1184 var data = {
857 1185 action: 'wppm_get_delete_task',
858 - id: id
1186 + id: id,
1187 + proj_id:proj_id,
1188 + project_id:project_id
859 1189 }
860 1190 jQuery.post(wppm_admin.ajax_url, data, function(response_str) {
861 1191 var response = JSON.parse(response_str);
862 - jQuery('#wppm_popup_body').html(response.body);
863 - jQuery('#wppm_popup_footer').html(response.footer);
1192 + if(proj_id==0){
1193 + jQuery('#wppm_task_popup_body').html(response.body);
1194 + jQuery('#wppm_task_popup_footer').html(response.footer);
1195 + }else{
1196 + jQuery('#wppm_popup_body').html(response.body);
1197 + jQuery('#wppm_popup_footer').html(response.footer);
1198 + }
864 1199 });
865 1200 }
866 1201
867 -function wppm_set_delete_task(){
1202 +function wppm_set_delete_task(proj_id,project_id){
868 1203 var dataform = new FormData(jQuery('#frm_delete_task')[0]);
869 - wppm_modal_close();
870 - jQuery('#wppm_task_container').html(wppm_admin.loading_html);
1204 + if(proj_id==0){
1205 + wppm_task_modal_close();
1206 + }else{
1207 + wppm_modal_close();
1208 + }
871 1209 jQuery.ajax({
872 1210 url: wppm_admin.ajax_url,
873 1211 type: 'POST',
874 1212 data: dataform,
@@ -875,9 +1213,17 @@
875 1213 processData: false,
876 1214 contentType: false
877 1215 })
878 1216 .done(function (response_str) {
879 - wppm_get_task_list();
1217 + if(project_id!=0){
1218 + wppm_get_project_tasks_kanban_view(project_id);
1219 + }else{
1220 + if(proj_id==0){
1221 + wppm_get_task_list();
1222 + }else{
1223 + wppm_get_project_tasks(proj_id);
1224 + }
1225 + }
880 1226 });
881 1227 }
882 1228
883 1229 function wppm_get_edit_email_notification(id){
@@ -992,9 +1338,9 @@
992 1338 });
993 1339 }
994 1340
995 1341 function wppm_create_project_task(id){
996 - wppm_modal_open('Tasks');
1342 + wppm_task_modal_open('Tasks');
997 1343 var data = {
998 1344 action: 'wppm_add_new_task',
999 1345 proj_id: id
1000 1346 }
@@ -1002,33 +1348,62 @@
1002 1348 jQuery('#wppm_popup_body').html(response_str);
1003 1349 });
1004 1350 }
1005 1351
1006 -function wppm_load_prev_page(prev_page_no,page_no){
1007 - if(prev_page_no!=0){
1008 - page_no=prev_page_no-1;
1009 - wppm_get_project_list(page_no);
1010 - }
1352 +function wppm_load_prev_page(prev_page_no, page_no, sort_by, order, is_archieved) {
1353 + if (prev_page_no != 0) {
1354 + page_no = prev_page_no - 1;
1355 + if (parseInt(is_archieved) === 1) {
1356 + wppm_get_archieve_project_list(
1357 + page_no,
1358 + sort_by,
1359 + order,
1360 + 1
1361 + );
1362 + } else {
1363 + wppm_get_project_list(
1364 + page_no,
1365 + sort_by,
1366 + order
1367 + );
1368 + }
1369 + }
1370 + return false;
1011 1371 }
1012 1372
1013 -function wppm_load_next_page(next_page_no,page_no){
1014 - if(next_page_no!=page_no){
1015 - page_no = next_page_no;
1016 - wppm_get_project_list(page_no);
1017 - }
1373 +function wppm_load_next_page(next_page_no, page_no, sort_by, order, is_archieved) {
1374 + if (next_page_no != page_no) {
1375 + page_no = next_page_no;
1376 + if (parseInt(is_archieved) === 1) {
1377 + wppm_get_archieve_project_list(
1378 + page_no,
1379 + sort_by,
1380 + order,
1381 + 1
1382 + );
1383 + } else {
1384 + wppm_get_project_list(
1385 + page_no,
1386 + sort_by,
1387 + order
1388 + );
1389 + }
1390 + }
1391 +
1392 + return false;
1018 1393 }
1019 1394
1020 -function wppm_load_prev_task_page(prev_page_no,page_no){
1395 +function wppm_load_prev_task_page(prev_page_no,page_no, sort_by, order){
1021 1396 if(prev_page_no!=0){
1022 1397 page_no=prev_page_no-1;
1023 - wppm_get_task_list(page_no);
1398 + wppm_get_task_list(page_no,sort_by,order);
1024 1399 }
1025 1400 }
1026 1401
1027 -function wppm_load_next_task_page(next_page_no,page_no){
1402 +function wppm_load_next_task_page(next_page_no,page_no,sort_by,order){
1028 1403 if(next_page_no!=page_no){
1029 1404 page_no = next_page_no;
1030 - wppm_get_task_list(page_no);
1405 + wppm_get_task_list(page_no,sort_by,order);
1031 1406 }
1032 1407 }
1033 1408
1034 1409 function wppm_load_prev_task_page_card_view(prev_page_no,page_no){
@@ -1050,9 +1425,10 @@
1050 1425 var data = {
1051 1426 action: 'wppm_remove_thread_attachment',
1052 1427 attachment : attachment,
1053 1428 comment_id : comment_id,
1054 - task_id:task_id
1429 + task_id:task_id,
1430 + _ajax_nonce : jQuery('#wppm_ajax_nonce').val()
1055 1431 };
1056 1432 jQuery.post(wppm_admin.ajax_url, data, function(response) {
1057 1433 jQuery(obj).parent('td').parent('tr').remove();
1058 1434 if((proj_id!=0)||(proj_id!="")){
@@ -1063,8 +1439,24 @@
1063 1439 });
1064 1440 }
1065 1441 }
1066 1442
1443 +function wppm_proj_thread_attachment_remove(obj,attachment,comment_id,id){
1444 + if( confirm(wppm_admin.confirm) ){
1445 + var data = {
1446 + action: 'wppm_remove_proj_thread_attachment',
1447 + attachment : attachment,
1448 + comment_id : comment_id,
1449 + proj_id:id,
1450 + _ajax_nonce:jQuery('#wppm_proj_thread_attachment_remove').val()
1451 + };
1452 + jQuery.post(wppm_admin.ajax_url, data, function(response) {
1453 + jQuery(obj).parent('td').parent('tr').remove();
1454 + wppm_open_project(id);
1455 + });
1456 + }
1457 +}
1458 +
1067 1459 function wppm_open_project(id){
1068 1460 jQuery('#wppm_project_list').hide();
1069 1461 jQuery('#wppm_project_container').show();
1070 1462 jQuery('#wppm_project_container').html(wppm_admin.loading_html);
@@ -1069,9 +1461,10 @@
1069 1461 jQuery('#wppm_project_container').show();
1070 1462 jQuery('#wppm_project_container').html(wppm_admin.loading_html);
1071 1463 var data = {
1072 1464 action: 'wppm_open_project',
1073 - id:id
1465 + id:id,
1466 + auth_code: wppm_admin.auth_code
1074 1467 };
1075 1468 jQuery.post(wppm_admin.ajax_url, data, function(response) {
1076 1469 jQuery('#wppm_project_container').html(response);
1077 1470 });
@@ -1076,16 +1469,1632 @@
1076 1469 jQuery('#wppm_project_container').html(response);
1077 1470 });
1078 1471 }
1079 1472
1080 -function wppm_project_search_filter(){
1473 +function wppm_project_search_filter(is_archieved){
1081 1474 var project_search = jQuery("#wppm_project_search_filter").val();
1082 1475 jQuery('#wppm_project_container').show();
1083 1476 jQuery('#wppm_project_container').html(wppm_admin.loading_html);
1084 1477 var data = {
1085 1478 action: 'wppm_get_project_list',
1086 - project_search:project_search
1479 + project_search:project_search,
1480 + page: wppm_admin.page,
1481 + is_archieved:is_archieved
1087 1482 };
1088 1483 jQuery.post(wppm_admin.ajax_url, data, function(response) {
1089 1484 jQuery('#wppm_project_container').html(response);
1090 1485 });
1091 -}
1486 +}
1487 +
1488 +function wppm_clone_task(id,proj_id,project_id){
1489 + if(proj_id==0){
1490 + wppm_task_modal_open('Clone Task');
1491 + }else{
1492 + wppm_modal_open('Clone Task');
1493 + }
1494 + var data = {
1495 + action: 'wppm_clone_task',
1496 + id: id,
1497 + proj_id: proj_id,
1498 + project_id: project_id
1499 + }
1500 + jQuery.post(wppm_admin.ajax_url, data, function(response_str) {
1501 + var response = JSON.parse(response_str);
1502 + if(proj_id==0){
1503 + jQuery('#wppm_task_popup_body').html(response.body);
1504 + jQuery('#wppm_task_popup_footer').html(response.footer);
1505 + }else{
1506 + jQuery('#wppm_popup_body').html(response.body);
1507 + jQuery('#wppm_popup_footer').html(response.footer);
1508 + }
1509 + });
1510 +}
1511 +
1512 +function wppm_set_clone_task(proj_id,project_id){
1513 + var dataform = new FormData(jQuery('#frm_edit_clone_task_name')[0]);
1514 + if(proj_id==0){
1515 + wppm_task_modal_close();
1516 + }else{
1517 + wppm_modal_close();
1518 + }
1519 + jQuery.ajax({
1520 + url: wppm_admin.ajax_url,
1521 + type: 'POST',
1522 + data: dataform,
1523 + processData: false,
1524 + contentType: false
1525 + })
1526 + .done(function (response_str) {
1527 + if(project_id!=0){
1528 + wppm_get_project_tasks_kanban_view(project_id);
1529 + }else{
1530 + if(proj_id==0){
1531 + wppm_get_task_list();
1532 + }else{
1533 + wppm_get_project_tasks(proj_id);
1534 + }
1535 + }
1536 + });
1537 +}
1538 +
1539 +function wppm_sort_up_task_list(sort_by,order,page){
1540 + jQuery('#wppm_task_container').show();
1541 + jQuery('#wppm_task_container').html(wppm_admin.loading_html);
1542 + var data = {
1543 + action: 'wppm_get_task_list',
1544 + sort_by:sort_by,
1545 + order:order,
1546 + page:page
1547 + };
1548 + jQuery.post(wppm_admin.ajax_url, data, function(response) {
1549 + jQuery('#wppm_task_container').html(response);
1550 + });
1551 +}
1552 +
1553 +function wppm_sort_up_project_list(sort_by,order){
1554 + jQuery('#wppm_project_container').show();
1555 + jQuery('#wppm_project_container').html(wppm_admin.loading_html);
1556 + var data = {
1557 + action: 'wppm_get_project_list',
1558 + sort_by:sort_by,
1559 + order:order,
1560 + page: wppm_admin.page
1561 + };
1562 + jQuery.post(wppm_admin.ajax_url, data, function(response) {
1563 + jQuery('#wppm_project_container').html(response);
1564 + });
1565 +}
1566 +
1567 +function wppm_get_miscellaneous_settings(){
1568 + jQuery('.wppm_setting_pills li').removeClass('active');
1569 + jQuery('#wppm_settings_miscellaneous').addClass('active');
1570 + jQuery('.wppm_setting_col2').html(wppm_admin.loading_html);
1571 + var data = {
1572 + action: 'wppm_get_advanced_settings'
1573 + };
1574 + jQuery.post(wppm_admin.ajax_url, data, function(response) {
1575 + jQuery('.wppm_setting_col2').html(response);
1576 + });
1577 +}
1578 +
1579 +function wppm_get_appearance_settings(){
1580 + jQuery('.wppm_setting_pills li').removeClass('active');
1581 + jQuery('#wppm_settings_appearance').addClass('active');
1582 + var data = {
1583 + action: 'wppm_get_appearance_settings'
1584 + };
1585 + jQuery.post(wppm_admin.ajax_url, data, function(response) {
1586 + jQuery('.wppm_setting_col2').html(response);
1587 + });
1588 +}
1589 +
1590 +function wppm_get_coworker_permission_settings(){
1591 + jQuery('.wppm_setting_pills li').removeClass('active');
1592 + jQuery('#wppm_settings_coworker').addClass('active');
1593 + jQuery('.wppm_setting_col2').html(wppm_admin.loading_html);
1594 + var data = {
1595 + action: 'wppm_get_coworker_permission_settings'
1596 + };
1597 + jQuery.post(wppm_admin.ajax_url, data, function(response) {
1598 + jQuery('.wppm_setting_col2').html(response);
1599 + });
1600 +}
1601 +
1602 +function wppm_set_coworkers_permission_settings(){
1603 + jQuery('.wppm_submit_wait').show();
1604 + var dataform = new FormData(jQuery('#wppm_frm_coworkers_permission_settings')[0]);
1605 + jQuery.ajax({
1606 + url: wppm_admin.ajax_url,
1607 + type: 'POST',
1608 + data: dataform,
1609 + processData: false,
1610 + contentType: false
1611 + })
1612 + .done(function (response_str) {
1613 + var response = JSON.parse(response_str);
1614 + jQuery('.wppm_submit_wait').hide();
1615 + if (response.sucess_status=='1') {
1616 + jQuery('#wppm_alert_success .wppm_alert_text').text(response.messege);
1617 + }
1618 + jQuery('#wppm_alert_success').slideDown('fast',function(){});
1619 + setTimeout(function(){ jQuery('#wppm_alert_success').slideUp('fast',function(){}); }, 3000);
1620 + });
1621 +}
1622 +
1623 +function wppm_get_rich_text_editor_settings(){
1624 + jQuery('.wppm_setting_pills li').removeClass('active');
1625 + jQuery('#wppm_settings_rich_text_editor').addClass('active');
1626 + jQuery('.wppm_setting_col2').html(wppm_admin.loading_html);
1627 + var data = {
1628 + action: 'wppm_get_rich_text_editor_settings'
1629 + };
1630 + jQuery.post(wppm_admin.ajax_url, data, function(response) {
1631 + jQuery('.wppm_setting_col2').html(response);
1632 + });
1633 +}
1634 +
1635 +function wppm_set_rich_text_editor_settings(){
1636 + jQuery('.wppm_submit_wait').show();
1637 + var dataform = new FormData(jQuery('#wppm_frm_rich_text_editor_settings')[0]);
1638 + jQuery.ajax({
1639 + url: wppm_admin.ajax_url,
1640 + type: 'POST',
1641 + data: dataform,
1642 + processData: false,
1643 + contentType: false
1644 + })
1645 + .done(function (response_str) {
1646 + var response = JSON.parse(response_str);
1647 + jQuery('.wppm_submit_wait').hide();
1648 + if (response.sucess_status=='1') {
1649 + jQuery('#wppm_alert_success .wppm_alert_text').text(response.messege);
1650 + }
1651 + jQuery('#wppm_alert_success').slideDown('fast',function(){});
1652 + setTimeout(function(){ jQuery('#wppm_alert_success').slideUp('fast',function(){}); }, 3000);
1653 + });
1654 +}
1655 +
1656 +function wppm_get_ap_proj_list(current_tab_class) {
1657 + jQuery( '.wppm-setting-tab-container button' ).removeClass( 'active' );
1658 + jQuery( '.wppm-setting-tab-container button.' + current_tab_class ).addClass( 'active' );
1659 + jQuery('.wppm-setting-section-body').html(wppm_admin.loading_html);
1660 + var data = { action: 'wppm_get_ap_proj_list' ,
1661 + current_tab:current_tab_class
1662 + };
1663 + jQuery.post(
1664 + wppm_admin.ajax_url,
1665 + data,
1666 + function (response) {
1667 + jQuery( '.wppm-setting-section-body' ).html( response );
1668 + }
1669 + );
1670 +}
1671 +
1672 +function wppm_get_ap_modal_popup(current_tab_class){
1673 + jQuery( '.wppm-setting-tab-container button' ).removeClass( 'active' );
1674 + jQuery( '.wppm-setting-tab-container button.' + current_tab_class ).addClass( 'active' );
1675 + jQuery('.wppm-setting-section-body').html(wppm_admin.loading_html);
1676 + var data = { action: 'wppm_get_ap_modal_popup' ,
1677 + current_tab:current_tab_class };
1678 + jQuery.post(
1679 + wppm_admin.ajax_url,
1680 + data,
1681 + function (response) {
1682 + jQuery( '.wppm-setting-section-body' ).html( response );
1683 + }
1684 + );
1685 +}
1686 +
1687 +function wppm_get_ap_task_list(current_tab_class){
1688 + jQuery( '.wppm-setting-tab-container button' ).removeClass( 'active' );
1689 + jQuery( '.wppm-setting-tab-container button.' + current_tab_class ).addClass( 'active' );
1690 + jQuery( '.wppm-setting-section-body').html(wppm_admin.loading_html);
1691 + var data = { action: 'wppm_get_ap_task_list' ,
1692 + current_tab:current_tab_class
1693 + };
1694 + jQuery.post(
1695 + wppm_admin.ajax_url,
1696 + data,
1697 + function (response) {
1698 + jQuery( '.wppm-setting-section-body' ).html( response );
1699 + }
1700 + );
1701 +}
1702 +
1703 +function wppm_get_ap_individual_proj(current_tab_class){
1704 + jQuery( '.wppm-setting-tab-container button' ).removeClass( 'active' );
1705 + jQuery( '.wppm-setting-tab-container button.' + current_tab_class ).addClass( 'active' );
1706 + jQuery( '.wppm-setting-section-body').html(wppm_admin.loading_html);
1707 + var data = { action: 'wppm_get_ap_individual_proj' ,
1708 + current_tab:current_tab_class
1709 + };
1710 + jQuery.post(
1711 + wppm_admin.ajax_url,
1712 + data,
1713 + function (response) {
1714 + jQuery( '.wppm-setting-section-body' ).html( response );
1715 + }
1716 + );
1717 +}
1718 +
1719 +function wppm_get_ap_individual_task(current_tab_class){
1720 + jQuery( '.wppm-setting-tab-container button' ).removeClass( 'active' );
1721 + jQuery( '.wppm-setting-tab-container button.' + current_tab_class ).addClass( 'active' );
1722 + jQuery( '.wppm-setting-section-body').html(wppm_admin.loading_html);
1723 + var data = { action: 'wppm_get_ap_individual_task' ,
1724 + current_tab:current_tab_class
1725 + };
1726 + jQuery.post(
1727 + wppm_admin.ajax_url,
1728 + data,
1729 + function (response) {
1730 + jQuery( '.wppm-setting-section-body' ).html( response );
1731 + }
1732 + );
1733 +}
1734 +
1735 +function wppm_get_ap_grid_view(current_tab_class){
1736 + jQuery( '.wppm-setting-tab-container button' ).removeClass( 'active' );
1737 + jQuery( '.wppm-setting-tab-container button.' + current_tab_class ).addClass( 'active' );
1738 + jQuery( '.wppm-setting-section-body').html(wppm_admin.loading_html);
1739 + var data = { action: 'wppm_get_ap_grid_view' ,
1740 + current_tab:current_tab_class
1741 + };
1742 + jQuery.post(
1743 + wppm_admin.ajax_url,
1744 + data,
1745 + function (response) {
1746 + jQuery( '.wppm-setting-section-body' ).html( response );
1747 + }
1748 + );
1749 +}
1750 +
1751 +function wppm_get_ap_settings(current_tab_class){
1752 + jQuery( '.wppm-setting-tab-container button' ).removeClass( 'active' );
1753 + jQuery( '.wppm-setting-tab-container button.' + current_tab_class ).addClass( 'active' );
1754 + jQuery( '.wppm-setting-section-body').html(wppm_admin.loading_html);
1755 + var data = { action: 'wppm_get_ap_settings' ,
1756 + current_tab:current_tab_class
1757 + };
1758 + jQuery.post(
1759 + wppm_admin.ajax_url,
1760 + data,
1761 + function (response) {
1762 + jQuery( '.wppm-setting-section-body' ).html( response );
1763 + }
1764 + );
1765 +}
1766 +
1767 +function wppm_set_ap_settings(){
1768 + var form = jQuery( '.wppm-frm-ap-settings' )[0];
1769 + var dataform = new FormData( form );
1770 + jQuery('.wppm_submit_wait').show();
1771 + jQuery.ajax(
1772 + {
1773 + url: wppm_admin.ajax_url,
1774 + type: 'POST',
1775 + data: dataform,
1776 + processData: false,
1777 + contentType: false
1778 + }
1779 + ).done(
1780 + function (response_str) {
1781 + var response = JSON.parse(response_str);
1782 + jQuery('.wppm_submit_wait').hide();
1783 + if (response.sucess_status=='1') {
1784 + jQuery('#wppm_alert_success .wppm_alert_text').text(response.messege);
1785 + }
1786 + jQuery('#wppm_alert_success').slideDown('fast',function(){});
1787 + setTimeout(function(){ jQuery('#wppm_alert_success').slideUp('fast',function(){}); }, 3000);
1788 + }
1789 + );
1790 +}
1791 +
1792 +function wppm_set_ap_proj_list() {
1793 + var form = jQuery( '.wppm-frm-ap-pl' )[0];
1794 + var dataform = new FormData( form );
1795 + jQuery('.wppm_submit_wait').show();
1796 + jQuery.ajax(
1797 + {
1798 + url: wppm_admin.ajax_url,
1799 + type: 'POST',
1800 + data: dataform,
1801 + processData: false,
1802 + contentType: false
1803 + }
1804 + ).done(
1805 + function (response_str) {
1806 + var response = JSON.parse(response_str);
1807 + jQuery('.wppm_submit_wait').hide();
1808 + if (response.sucess_status=='1') {
1809 + jQuery('#wppm_alert_success .wppm_alert_text').text(response.messege);
1810 + }
1811 + jQuery('#wppm_alert_success').slideDown('fast',function(){});
1812 + setTimeout(function(){ jQuery('#wppm_alert_success').slideUp('fast',function(){}); }, 3000);
1813 + }
1814 + );
1815 +}
1816 +
1817 +function wppm_set_ap_task_list(){
1818 + var form = jQuery( '.wppm-frm-ap-tl' )[0];
1819 + var dataform = new FormData( form );
1820 + jQuery('.wppm_submit_wait').show();
1821 + jQuery.ajax(
1822 + {
1823 + url: wppm_admin.ajax_url,
1824 + type: 'POST',
1825 + data: dataform,
1826 + processData: false,
1827 + contentType: false
1828 + }
1829 + ).done(
1830 + function (response_str) {
1831 + var response = JSON.parse(response_str);
1832 + jQuery('.wppm_submit_wait').hide();
1833 + if (response.sucess_status=='1') {
1834 + jQuery('#wppm_alert_success .wppm_alert_text').text(response.messege);
1835 + }
1836 + jQuery('#wppm_alert_success').slideDown('fast',function(){});
1837 + setTimeout(function(){ jQuery('#wppm_alert_success').slideUp('fast',function(){}); }, 3000);
1838 + }
1839 + );
1840 +}
1841 +
1842 +function wppm_set_ap_individual_proj(){
1843 + var form = jQuery( '.wppm-frm-ap-individual_pl' )[0];
1844 + var dataform = new FormData( form );
1845 + jQuery('.wppm_submit_wait').show();
1846 + jQuery.ajax(
1847 + {
1848 + url: wppm_admin.ajax_url,
1849 + type: 'POST',
1850 + data: dataform,
1851 + processData: false,
1852 + contentType: false
1853 + }
1854 + ).done(
1855 + function (response_str) {
1856 + var response = JSON.parse(response_str);
1857 + jQuery('.wppm_submit_wait').hide();
1858 + if (response.sucess_status=='1') {
1859 + jQuery('#wppm_alert_success .wppm_alert_text').text(response.messege);
1860 + }
1861 + jQuery('#wppm_alert_success').slideDown('fast',function(){});
1862 + setTimeout(function(){ jQuery('#wppm_alert_success').slideUp('fast',function(){}); }, 3000);
1863 + }
1864 + );
1865 +}
1866 +
1867 +function wppm_set_ap_individual_task(){
1868 + var form = jQuery( '.wppm-frm-ap-individual_tl' )[0];
1869 + var dataform = new FormData( form );
1870 + jQuery('.wppm_submit_wait').show();
1871 + jQuery.ajax(
1872 + {
1873 + url: wppm_admin.ajax_url,
1874 + type: 'POST',
1875 + data: dataform,
1876 + processData: false,
1877 + contentType: false
1878 + }
1879 + ).done(
1880 + function (response_str) {
1881 + var response = JSON.parse(response_str);
1882 + jQuery('.wppm_submit_wait').hide();
1883 + if (response.sucess_status=='1') {
1884 + jQuery('#wppm_alert_success .wppm_alert_text').text(response.messege);
1885 + }
1886 + jQuery('#wppm_alert_success').slideDown('fast',function(){});
1887 + setTimeout(function(){ jQuery('#wppm_alert_success').slideUp('fast',function(){}); }, 3000);
1888 + }
1889 + );
1890 +}
1891 +
1892 +function wppm_set_ap_modal_popup(){
1893 + var form = jQuery( '.wppm-frm-ap-modal_popup' )[0];
1894 + var dataform = new FormData( form );
1895 + jQuery('.wppm_submit_wait').show();
1896 + jQuery.ajax(
1897 + {
1898 + url: wppm_admin.ajax_url,
1899 + type: 'POST',
1900 + data: dataform,
1901 + processData: false,
1902 + contentType: false
1903 + }
1904 + ).done(
1905 + function (response_str) {
1906 + var response = JSON.parse(response_str);
1907 + jQuery('.wppm_submit_wait').hide();
1908 + if (response.sucess_status=='1') {
1909 + jQuery('#wppm_alert_success .wppm_alert_text').text(response.messege);
1910 + }
1911 + jQuery('#wppm_alert_success').slideDown('fast',function(){});
1912 + setTimeout(function(){ jQuery('#wppm_alert_success').slideUp('fast',function(){}); }, 3000);
1913 + }
1914 + );
1915 +}
1916 +
1917 +function wppm_set_ap_grid_view(){
1918 + var form = jQuery( '.wppm-frm-ap-grid_view' )[0];
1919 + var dataform = new FormData( form );
1920 + jQuery('.wppm_submit_wait').show();
1921 + jQuery.ajax(
1922 + {
1923 + url: wppm_admin.ajax_url,
1924 + type: 'POST',
1925 + data: dataform,
1926 + processData: false,
1927 + contentType: false
1928 + }
1929 + ).done(
1930 + function (response_str) {
1931 + var response = JSON.parse(response_str);
1932 + jQuery('.wppm_submit_wait').hide();
1933 + if (response.sucess_status=='1') {
1934 + jQuery('#wppm_alert_success .wppm_alert_text').text(response.messege);
1935 + }
1936 + jQuery('#wppm_alert_success').slideDown('fast',function(){});
1937 + setTimeout(function(){ jQuery('#wppm_alert_success').slideUp('fast',function(){}); }, 3000);
1938 + }
1939 + );
1940 +}
1941 +
1942 +function wppm_set_advanced_settings(){
1943 + jQuery('.wppm_submit_wait').show();
1944 + var dataform = new FormData(jQuery('#wppm_frm_advanced_settings')[0]);
1945 + jQuery.ajax({
1946 + url: wppm_admin.ajax_url,
1947 + type: 'POST',
1948 + data: dataform,
1949 + processData: false,
1950 + contentType: false
1951 + })
1952 + .done(function (response_str) {
1953 + var response = JSON.parse(response_str);
1954 + jQuery('.wppm_submit_wait').hide();
1955 + if (response.sucess_status=='1') {
1956 + jQuery('#wppm_alert_success .wppm_alert_text').text(response.messege);
1957 + }
1958 + jQuery('#wppm_alert_success').slideDown('fast',function(){});
1959 + setTimeout(function(){ jQuery('#wppm_alert_success').slideUp('fast',function(){}); }, 3000);
1960 + });
1961 +}
1962 +
1963 +function wppm_get_project_visibility(id){
1964 + wppm_modal_open('Change Visibility');
1965 + var data = {
1966 + action: 'wppm_get_project_visibility',
1967 + id: id
1968 + }
1969 + jQuery.post(wppm_admin.ajax_url, data, function(response_str) {
1970 + var response = JSON.parse(response_str);
1971 + jQuery('#wppm_popup_body').html(response.body);
1972 + jQuery('#wppm_popup_footer').html(response.footer);
1973 + });
1974 +}
1975 +
1976 +function wppm_select_project_visibility(proj_id){
1977 + if(jQuery('input[name="wppm_project_visibility_option"]').is(':checked')){
1978 + var project_visibility = jQuery('input[name="wppm_project_visibility_option"]:checked').val();
1979 + }else{
1980 + var project_visibility = 0;
1981 + }
1982 + var data = {
1983 + action: 'wppm_change_project_visibility',
1984 + project_id:proj_id,
1985 + project_visibility:project_visibility,
1986 + _ajax_nonce:jQuery('#wppm_proj_visibility_ajax_nonce').val()
1987 + };
1988 + jQuery.post(wppm_admin.ajax_url, data, function() {
1989 + });
1990 +}
1991 +
1992 +function wppm_apply_project_filter(is_archieved){
1993 + wppm_project_filter = jQuery('#wppm_project_filter').find(":selected").val();
1994 + jQuery('#wppm_project_container').html(wppm_admin.loading_html);
1995 + var data = {
1996 + action: 'wppm_get_project_list',
1997 + wppm_project_filter:wppm_project_filter,
1998 + page:wppm_admin.page,
1999 + is_archieved:is_archieved
2000 + };
2001 + jQuery.post(wppm_admin.ajax_url, data, function(response) {
2002 + jQuery('#wppm_project_container').html(response);
2003 + });
2004 +}
2005 +
2006 +function getWppmCookie(name) {
2007 + const match = document.cookie.match(new RegExp('(^| )' + name + '=([^;]+)'));
2008 + if (match) return decodeURIComponent(match[2]);
2009 + return null;
2010 +}
2011 +
2012 +function wppm_apply_task_filter(page = 1, listFilters = null) {
2013 + // 🔥 use passed filters OR read from UI
2014 + if (!listFilters) {
2015 + listFilters = {
2016 + created_by: jQuery("#tb-created-by").val() || [],
2017 + assigned: jQuery("#tb-assigned").val() || [],
2018 + priority: jQuery("#tb-priority").val() || [],
2019 + start_date: jQuery("#tb-start-date").val() || "",
2020 + end_date: jQuery("#tb-end-date").val() || ""
2021 + };
2022 + }
2023 + // 🔥 get main filter
2024 + let wppm_task_filter = jQuery('#wppm_task_filter').val();
2025 + jQuery('#wppm_task_container').html(wppm_admin.loading_html);
2026 + jQuery.post(wppm_admin.ajax_url, {
2027 + action: 'wppm_get_task_list',
2028 + wppm_task_filter: wppm_task_filter,
2029 + page: wppm_admin.page,
2030 + page_no: page - 1,
2031 + listFilters: JSON.stringify(listFilters) // ✅ ALWAYS stringify
2032 + }, function (response) {
2033 + jQuery('#wppm_task_container').html(response);
2034 + // 🔥 save cookie
2035 + setListFilterCookie(listFilters);
2036 + // 🔥 sync UI
2037 + setTimeout(function () {
2038 + syncUIWithFilters(listFilters);
2039 + renderActiveFilters(listFilters);
2040 + }, 100);
2041 +
2042 + });
2043 +}
2044 +
2045 +function wppm_tl_reset_filter(page){
2046 + var url = new URL(window.location.href);
2047 + if (url.searchParams.has('wppm_task_filter')) {
2048 + url.searchParams.delete('wppm_task_filter');
2049 + window.location.href = url.toString();
2050 + return false;
2051 + }
2052 + // ✅ close popup
2053 + jQuery("#tb-advanced-panel").removeClass("tb-open");
2054 + jQuery("#tb-backdrop").removeClass("active");
2055 +
2056 + // ✅ clear inputs
2057 + jQuery('#tb-advanced-panel input').val('');
2058 + jQuery('#tb-advanced-panel select').val([]);
2059 +
2060 + // ✅ clear chips
2061 + jQuery("#tb-active-filters").html('');
2062 +
2063 + // ✅ clear advanced filters + cookie BEFORE requesting the list, otherwise
2064 + // this request still sends the stale tb_list_filters cookie and the
2065 + // reset only takes effect on the next click
2066 + resetFilters('list');
2067 +
2068 + jQuery('#wppm_task_container').html(wppm_admin.loading_html);
2069 + var data = {
2070 + action: 'wppm_get_task_list',
2071 + wppm_task_filter:'all',
2072 + task_search:"",
2073 + sort_by:"task_name",
2074 + order:"ASC",
2075 + wppm_proj_filter:0,
2076 + page:page
2077 + };
2078 + jQuery.post(wppm_admin.ajax_url, data, function(response) {
2079 + jQuery('#wppm_task_container').html(response);
2080 + });
2081 +}
2082 +
2083 +function wppm_apply_task_filter_grid_view(page,id,filters){
2084 + wppm_task_filter = jQuery('#wppm_task_filter').find(":selected").val();
2085 + if (!filters) {
2086 + filters = {
2087 + created_by: jQuery("#tb-created-by").val() || [],
2088 + assigned: jQuery("#tb-assigned").val() || [],
2089 + priority: jQuery("#tb-priority").val() || [],
2090 + start_date: jQuery("#tb-start-date").val() || "",
2091 + end_date: jQuery("#tb-end-date").val() || ""
2092 + };
2093 + }
2094 + jQuery('#wppm_task_container').html(wppm_admin.loading_html);
2095 + var data = {
2096 + action: 'wppm_view_project_tasks',
2097 + wppm_task_filter:wppm_task_filter,
2098 + page: wppm_admin.page,
2099 + page_no: (typeof page === 'number' ? page - 1 : 0),
2100 + id:id,
2101 + filters: JSON.stringify(filters)
2102 + };
2103 + jQuery.post(wppm_admin.ajax_url, data, function(response) {
2104 + jQuery('#wppm_task_container').html(response);
2105 + // 🔥 save cookie
2106 + setFilterCookie(filters);
2107 +
2108 + // 🔥 sync UI
2109 + setTimeout(function () {
2110 + syncUIWithFilters(filters);
2111 + renderActiveFilters(filters);
2112 + }, 100);
2113 + });
2114 +}
2115 +
2116 +function wppm_tl_reset_grid_view_filter(page,id){
2117 + var url = new URL(window.location.href);
2118 + if (url.searchParams.has('wppm_task_filter')) {
2119 + url.searchParams.delete('wppm_task_filter');
2120 + window.location.href = url.toString();
2121 + return false;
2122 + }
2123 + // ✅ close popup
2124 + jQuery("#tb-advanced-panel").removeClass("tb-open");
2125 + jQuery("#tb-backdrop").removeClass("active");
2126 +
2127 + // ✅ clear inputs
2128 + jQuery('#tb-advanced-panel input').val('');
2129 + jQuery('#tb-advanced-panel select').val([]);
2130 +
2131 + // ✅ clear chips
2132 + jQuery("#tb-active-filters").html('');
2133 + window.localStorage.removeItem('wppm_task_filter');
2134 +
2135 + // ✅ clear advanced filters + cookie BEFORE requesting the list, otherwise
2136 + // this request still sends the stale filters cookie and the reset only
2137 + // takes effect on the next click
2138 + if(id!=0){
2139 + resetFilters('kanban');
2140 + }else{
2141 + resetFilters('grid');
2142 + }
2143 +
2144 + jQuery('#wppm_task_container').html(wppm_admin.loading_html);
2145 + var data = {
2146 + action: 'wppm_view_project_tasks',
2147 + wppm_task_filter:'all',
2148 + task_search:"",
2149 + sort_by:"task_name",
2150 + order:"ASC",
2151 + wppm_proj_filter:"0",
2152 + page:page,
2153 + id:id
2154 + };
2155 + jQuery.post(wppm_admin.ajax_url, data, function(response) {
2156 + jQuery('#wppm_task_container').html(response);
2157 + });
2158 +}
2159 +function wppm_pl_reset_filter(is_archieved) {
2160 + var url = new URL(window.location.href);
2161 + if (url.searchParams.has('wppm_project_filter')) {
2162 + url.searchParams.delete('wppm_project_filter');
2163 + window.location.href = url.toString();
2164 + return false;
2165 + }
2166 + // close popup
2167 + jQuery("#tb-advanced-panel").removeClass("tb-open");
2168 + jQuery("#tb-backdrop").removeClass("active");
2169 + // clear inputs
2170 + jQuery('#tb-advanced-panel input').val('');
2171 + jQuery('#tb-advanced-panel select').val([]);
2172 + // clear chips
2173 + jQuery("#tb-active-filters").html('');
2174 +
2175 + // clear advanced filters + cookie BEFORE requesting the list, otherwise
2176 + // this request still sends the stale tb_proj_list_filters cookie and the
2177 + // reset only takes effect on the next click
2178 + resetProjectFilters(is_archieved);
2179 +
2180 + jQuery('#wppm_project_container').html(wppm_admin.loading_html);
2181 + var data = {
2182 + action: 'wppm_get_project_list',
2183 + wppm_project_filter: 'all',
2184 + project_search: '',
2185 + sort_by: 'project_name',
2186 + order: 'ASC',
2187 + page: wppm_admin.page,
2188 + is_archieved: is_archieved,
2189 + // send explicit empty filters so the server doesn't fall back to
2190 + // the (possibly not-yet-expired) tb_proj_list_filters cookie
2191 + filters: JSON.stringify({})
2192 + };
2193 + jQuery.post(wppm_admin.ajax_url, data, function(response) {
2194 + jQuery('#wppm_project_container').html(response);
2195 + });
2196 +}
2197 +
2198 +function wppm_tasks_by_select_project(page){
2199 + wppm_proj_filter = jQuery('#wppm_task_list_proj_filter').find(":selected").val();
2200 + jQuery('#wppm_task_container').html(wppm_admin.loading_html);
2201 + var data = {
2202 + action: 'wppm_get_task_list',
2203 + wppm_proj_filter:wppm_proj_filter,
2204 + page:page
2205 + };
2206 + jQuery.post(wppm_admin.ajax_url, data, function(response) {
2207 + jQuery('#wppm_task_container').html(response);
2208 + });
2209 +}
2210 +
2211 +function wppm_tasks_by_select_project_grid_view(page){
2212 + wppm_proj_filter = jQuery('#wppm_task_list_proj_filter').find(":selected").val();
2213 + jQuery('#wppm_task_container').html(wppm_admin.loading_html);
2214 + var data = {
2215 + action: 'wppm_view_project_tasks',
2216 + wppm_proj_filter:wppm_proj_filter,
2217 + page:page
2218 + };
2219 + jQuery.post(wppm_admin.ajax_url, data, function(response) {
2220 + jQuery('#wppm_task_container').html(response);
2221 + });
2222 +}
2223 +
2224 +function wppm_reset_ap_proj_list(){
2225 + jQuery( "#wppm_reset_ap_proj_list_btn" ).text( wppm_admin.please_wait );
2226 + var _ajax_nonce = jQuery("#wppm_reset_ap_proj_list_nonce").val();
2227 + var data = { action: 'wppm_reset_ap_proj_list',_ajax_nonce };
2228 + jQuery.post(
2229 + wppm_admin.ajax_url,
2230 + data,
2231 + function () {
2232 + wppm_get_ap_proj_list('project-list');
2233 + }
2234 + );
2235 +}
2236 +
2237 +function wppm_reset_ap_task_list(){
2238 + jQuery( "#wppm_reset_ap_task_list_btn" ).text( wppm_admin.please_wait );
2239 + var _ajax_nonce = jQuery("#wppm_reset_ap_task_list_ajax_nonce").val();
2240 + var data = { action: 'wppm_reset_ap_task_list',_ajax_nonce };
2241 + jQuery.post(
2242 + wppm_admin.ajax_url,
2243 + data,
2244 + function () {
2245 + wppm_get_ap_task_list('task-list');
2246 + }
2247 + );
2248 +}
2249 +
2250 +function wppm_reset_ap_individual_proj(){
2251 + jQuery( "#wppm_reset_ap_individual_proj_btn" ).text( wppm_admin.please_wait );
2252 + var _ajax_nonce = jQuery( "#wppm_reset_ap_individual_proj_ajax_nonce").val();
2253 + var data = { action: 'wppm_reset_ap_individual_proj',
2254 + _ajax_nonce, };
2255 + jQuery.post(
2256 + wppm_admin.ajax_url,
2257 + data,
2258 + function () {
2259 + wppm_get_ap_individual_proj('individual-project');
2260 + }
2261 + );
2262 +}
2263 +
2264 +function wppm_reset_ap_individual_task(){
2265 + jQuery( "#wppm_reset_ap_individual_task_btn" ).text( wppm_admin.please_wait );
2266 + var _ajax_nonce = jQuery( "#wppm_reset_ap_individual_task_ajax_nonce" ).val();
2267 + var data = { action: 'wppm_reset_ap_individual_task',_ajax_nonce };
2268 + jQuery.post(
2269 + wppm_admin.ajax_url,
2270 + data,
2271 + function () {
2272 + wppm_get_ap_individual_task('individual-task');
2273 + }
2274 + );
2275 +}
2276 +
2277 +function wppm_reset_ap_modal_popup(){
2278 + jQuery( "#wppm_reset_ap_modal_popup_btn" ).text( wppm_admin.please_wait );
2279 + var _ajax_nonce = jQuery( "#wppm_reset_ap_modal_popup_nonce" ).val();
2280 + var data = { action: 'wppm_reset_ap_modal_popup',_ajax_nonce };
2281 + jQuery.post(
2282 + wppm_admin.ajax_url,
2283 + data,
2284 + function () {
2285 + wppm_get_ap_modal_popup('modal-popup');
2286 + }
2287 + );
2288 +}
2289 +
2290 +function wppm_reset_ap_grid_view(){
2291 + jQuery( "#wppm_reset_ap_grid_view_btn" ).text( wppm_admin.please_wait );
2292 + var wppm_reset_grid_ajax_nonce = jQuery( "#wppm_reset_ap_grid_view_ajax_nonce" ).val();
2293 + var data = {
2294 + action: 'wppm_reset_ap_grid_view',
2295 + wppm_reset_grid_ajax_nonce:wppm_reset_grid_ajax_nonce
2296 + };
2297 + jQuery.post(wppm_admin.ajax_url, data, function(response) {
2298 + wppm_get_ap_grid_view('grid-view');
2299 + });
2300 +}
2301 +
2302 +function wppm_reset_ap_settings(){
2303 + jQuery( "#wppm_reset_ap_settings_btn" ).text( wppm_admin.please_wait );
2304 + var _ajax_nonce = jQuery("#wppm_reset_ap_settings_nonce").val();
2305 + var data = { action: 'wppm_reset_ap_settings',_ajax_nonce };
2306 + jQuery.post(
2307 + wppm_admin.ajax_url,
2308 + data,
2309 + function () {
2310 + wppm_get_ap_settings('settings');
2311 + }
2312 + );
2313 +}
2314 +/**
2315 + * Bulk selector change
2316 + */
2317 +function wppm_bulk_select_change() {
2318 + jQuery("#wppm-bulk-actions-btn").show();
2319 + var checked = jQuery(".wppm-bulk-selector").is(":checked");
2320 + jQuery(".wppm-bulk-select").prop("checked", checked);
2321 + if(!checked){
2322 + jQuery("#wppm-bulk-actions-btn").hide();
2323 + }
2324 +}
2325 +
2326 +function wppm_task_bulk_select_change() {
2327 + jQuery("#wppm-task-bulk-actions-btn").show();
2328 + var checked = jQuery(".wppm-bulk-selector").is(":checked");
2329 + jQuery(".wppm-task-bulk-select").prop("checked", checked);
2330 + if(!checked){
2331 + jQuery("#wppm-bulk-actions-btn").hide();
2332 + }
2333 +}
2334 +
2335 +function wppm_bulk_change_status(nonce){
2336 + var items = jQuery(".wppm-bulk-select:checked");
2337 + var checked = items.length === 0 ? false : true;
2338 + jQuery(".wppm-bulk-selector").prop("checked", checked);
2339 + if (items.length != 0) {
2340 + var proj_ids = jQuery(".wppm-bulk-select:checked")
2341 + .map(function () {
2342 + return this.value;
2343 + })
2344 + .get();
2345 + wppm_modal_open('Change Status');
2346 + var data = {
2347 + action: "wppm_get_bulk_change_proj_status",
2348 + proj_ids,
2349 + _ajax_nonce: nonce,
2350 + };
2351 + jQuery.post(wppm_admin.ajax_url, data, function(response_str) {
2352 + var response = JSON.parse(response_str);
2353 + jQuery('#wppm_popup_body').html(response.body);
2354 + jQuery('#wppm_popup_footer').html(response.footer);
2355 + });
2356 + }
2357 +}
2358 +
2359 +function wppm_set_bulk_change_project_status(){
2360 + var dataform = new FormData(jQuery('#frm_get_bulk_project_change_status')[0]);
2361 + wppm_modal_close();
2362 + jQuery('#wppm_project_container').html(wppm_admin.loading_html);
2363 + jQuery.ajax({
2364 + url: wppm_admin.ajax_url,
2365 + type: 'POST',
2366 + data: dataform,
2367 + processData: false,
2368 + contentType: false
2369 + })
2370 + .done(function (response_str) {
2371 + wppm_get_project_list();
2372 + });
2373 +}
2374 +
2375 +function wppm_bulk_change_category(nonce){
2376 + var items = jQuery(".wppm-bulk-select:checked");
2377 + var checked = items.length === 0 ? false : true;
2378 + jQuery(".wppm-bulk-selector").prop("checked", checked);
2379 + if (items.length != 0) {
2380 + var proj_ids = jQuery(".wppm-bulk-select:checked")
2381 + .map(function () {
2382 + return this.value;
2383 + })
2384 + .get();
2385 + wppm_modal_open('Change Category');
2386 + var data = {
2387 + action: "wppm_get_bulk_change_proj_cat",
2388 + proj_ids,
2389 + _ajax_nonce: nonce,
2390 + };
2391 + jQuery.post(wppm_admin.ajax_url, data, function(response_str) {
2392 + var response = JSON.parse(response_str);
2393 + jQuery('#wppm_popup_body').html(response.body);
2394 + jQuery('#wppm_popup_footer').html(response.footer);
2395 + });
2396 + }
2397 +}
2398 +
2399 +function wppm_set_bulk_change_project_category(){
2400 + var dataform = new FormData(jQuery('#frm_get_bulk_project_change_category')[0]);
2401 + wppm_modal_close();
2402 + jQuery('#wppm_project_container').html(wppm_admin.loading_html);
2403 + jQuery.ajax({
2404 + url: wppm_admin.ajax_url,
2405 + type: 'POST',
2406 + data: dataform,
2407 + processData: false,
2408 + contentType: false
2409 + })
2410 + .done(function (response_str) {
2411 + wppm_get_project_list();
2412 + });
2413 +}
2414 +
2415 +function wppm_bulk_assign_users(nonce){
2416 + var items = jQuery(".wppm-bulk-select:checked");
2417 + var checked = items.length === 0 ? false : true;
2418 + jQuery(".wppm-bulk-selector").prop("checked", checked);
2419 + if (items.length != 0) {
2420 + var proj_ids = jQuery(".wppm-bulk-select:checked")
2421 + .map(function () {
2422 + return this.value;
2423 + })
2424 + .get();
2425 + wppm_modal_open('Assign Co-workers');
2426 + var data = {
2427 + action: "wppm_get_bulk_assign_users",
2428 + proj_ids,
2429 + _ajax_nonce: nonce,
2430 + };
2431 + jQuery.post(wppm_admin.ajax_url, data, function(response_str) {
2432 + var response = JSON.parse(response_str);
2433 + jQuery('#wppm_popup_body').html(response.body);
2434 + jQuery('#wppm_popup_footer').html(response.footer);
2435 + });
2436 + }
2437 +}
2438 +
2439 +function wppm_set_bulk_project_users(){
2440 + var dataform = new FormData(jQuery('#frm_get_bulk_project_users')[0]);
2441 + wppm_modal_close();
2442 + jQuery('#wppm_project_container').html(wppm_admin.loading_html);
2443 + jQuery.ajax({
2444 + url: wppm_admin.ajax_url,
2445 + type: 'POST',
2446 + data: dataform,
2447 + processData: false,
2448 + contentType: false
2449 + })
2450 + .done(function (response_str) {
2451 + wppm_get_project_list();
2452 + });
2453 +}
2454 +
2455 +function wppm_bulk_delete_project(nonce){
2456 + var items = jQuery(".wppm-bulk-select:checked");
2457 + var checked = items.length === 0 ? false : true;
2458 + jQuery(".wppm-bulk-selector").prop("checked", checked);
2459 + if (items.length != 0) {
2460 + var proj_ids = jQuery(".wppm-bulk-select:checked")
2461 + .map(function () {
2462 + return this.value;
2463 + })
2464 + .get();
2465 + wppm_modal_open('Delete Project');
2466 + var data = {
2467 + action: "wppm_get_bulk_delete_project",
2468 + proj_ids,
2469 + _ajax_nonce: nonce,
2470 + };
2471 + jQuery.post(wppm_admin.ajax_url, data, function(response_str) {
2472 + var response = JSON.parse(response_str);
2473 + jQuery('#wppm_popup_body').html(response.body);
2474 + jQuery('#wppm_popup_footer').html(response.footer);
2475 + });
2476 + }
2477 +}
2478 +
2479 +function wppm_set_delete_bulk_projects(){
2480 + var dataform = new FormData(jQuery('#frm_delete_bulk_project')[0]);
2481 + wppm_modal_close();
2482 + jQuery('#wppm_project_container').html(wppm_admin.loading_html);
2483 + jQuery.ajax({
2484 + url: wppm_admin.ajax_url,
2485 + type: 'POST',
2486 + data: dataform,
2487 + processData: false,
2488 + contentType: false
2489 + })
2490 + .done(function (response_str) {
2491 + wppm_get_project_list();
2492 + });
2493 +}
2494 +
2495 +function wppm_bulk_change_task_status(nonce){
2496 + var items = jQuery(".wppm-task-bulk-select:checked");
2497 + var checked = items.length === 0 ? false : true;
2498 + jQuery(".wppm-bulk-selector").prop("checked", checked);
2499 + if (items.length != 0) {
2500 + var task_ids = jQuery(".wppm-task-bulk-select:checked")
2501 + .map(function () {
2502 + return this.value;
2503 + })
2504 + .get();
2505 + wppm_task_modal_open('Change Task Status');
2506 + var data = {
2507 + action: "wppm_get_bulk_change_task_status",
2508 + task_ids,
2509 + _ajax_nonce: nonce,
2510 + };
2511 + jQuery.post(wppm_admin.ajax_url, data, function(response_str) {
2512 + var response = JSON.parse(response_str);
2513 + jQuery('#wppm_task_popup_body').html(response.body);
2514 + jQuery('#wppm_task_popup_footer').html(response.footer);
2515 + });
2516 + }
2517 +}
2518 +
2519 +function wppm_set_bulk_change_task_priority(){
2520 + var dataform = new FormData(jQuery('#frm_get_bulk_task_change_priority')[0]);
2521 + wppm_task_modal_close();
2522 + jQuery('#wppm_task_container').html(wppm_admin.loading_html);
2523 + jQuery.ajax({
2524 + url: wppm_admin.ajax_url,
2525 + type: 'POST',
2526 + data: dataform,
2527 + processData: false,
2528 + contentType: false
2529 + })
2530 + .done(function (response_str) {
2531 + wppm_get_task_list();
2532 + });
2533 +}
2534 +
2535 +function wppm_set_bulk_change_task_status(){
2536 + var dataform = new FormData(jQuery('#frm_get_bulk_task_change_status')[0]);
2537 + wppm_task_modal_close();
2538 + jQuery('#wppm_task_container').html(wppm_admin.loading_html);
2539 + jQuery.ajax({
2540 + url: wppm_admin.ajax_url,
2541 + type: 'POST',
2542 + data: dataform,
2543 + processData: false,
2544 + contentType: false
2545 + })
2546 + .done(function (response_str) {
2547 + wppm_get_task_list();
2548 + });
2549 +}
2550 +
2551 +function wppm_bulk_change_task_priority(nonce){
2552 + var items = jQuery(".wppm-task-bulk-select:checked");
2553 + var checked = items.length === 0 ? false : true;
2554 + jQuery(".wppm-bulk-selector").prop("checked", checked);
2555 + if (items.length != 0) {
2556 + var task_ids = jQuery(".wppm-task-bulk-select:checked")
2557 + .map(function () {
2558 + return this.value;
2559 + })
2560 + .get();
2561 + wppm_task_modal_open('Change Task Priority');
2562 + var data = {
2563 + action: "wppm_get_bulk_change_task_priority",
2564 + task_ids,
2565 + _ajax_nonce: nonce
2566 + };
2567 + jQuery.post(wppm_admin.ajax_url, data, function(response_str) {
2568 + var response = JSON.parse(response_str);
2569 + jQuery('#wppm_task_popup_body').html(response.body);
2570 + jQuery('#wppm_task_popup_footer').html(response.footer);
2571 + });
2572 + }
2573 +}
2574 +
2575 +function wppm_bulk_delete_task(nonce){
2576 + var items = jQuery(".wppm-task-bulk-select:checked");
2577 + var checked = items.length === 0 ? false : true;
2578 + jQuery(".wppm-bulk-selector").prop("checked", checked);
2579 + if (items.length != 0) {
2580 + var task_ids = jQuery(".wppm-task-bulk-select:checked")
2581 + .map(function () {
2582 + return this.value;
2583 + })
2584 + .get();
2585 + wppm_task_modal_open('Delete Task');
2586 + var data = {
2587 + action: "wppm_get_bulk_delete_task",
2588 + task_ids,
2589 + _ajax_nonce: nonce,
2590 + };
2591 + jQuery.post(wppm_admin.ajax_url, data, function(response_str) {
2592 + var response = JSON.parse(response_str);
2593 + jQuery('#wppm_task_popup_body').html(response.body);
2594 + jQuery('#wppm_task_popup_footer').html(response.footer);
2595 + });
2596 + }
2597 +}
2598 +
2599 +function wppm_set_delete_bulk_tasks(){
2600 + var dataform = new FormData(jQuery('#frm_delete_bulk_tasks')[0]);
2601 + wppm_task_modal_close();
2602 + jQuery('#wppm_task_container').html(wppm_admin.loading_html);
2603 + jQuery.ajax({
2604 + url: wppm_admin.ajax_url,
2605 + type: 'POST',
2606 + data: dataform,
2607 + processData: false,
2608 + contentType: false
2609 + })
2610 + .done(function (response_str) {
2611 + wppm_get_task_list();
2612 + });
2613 +}
2614 +
2615 +function wppm_print_task(id){
2616 + jQuery('#wppmprint_menu').css('display', 'flex');
2617 +}
2618 +
2619 +function wppm_open_pdf(id){
2620 + window.open(wppm_admin.ajax_url + "?action=wppm_get_task_pdf&id=" + id, "_blank");
2621 +}
2622 +
2623 +function wppm_download_pdf(id){
2624 + window.open(wppm_admin.ajax_url + "?action=wppm_download_pdf&id=" + id, "_blank");
2625 +}
2626 +
2627 +function wppm_archive_task(id,is_archived,project_id){
2628 + if (!confirm(wppm_admin.confirm)) {
2629 + return;
2630 + } else {
2631 + var data = {
2632 + action: 'wppm_archive_task',
2633 + id: id,
2634 + is_archived: is_archived,
2635 + project_id: project_id,
2636 + };
2637 + jQuery.post(wppm_admin.ajax_url, data, function() {
2638 + wppm_open_task(id,project_id);
2639 + });
2640 + }
2641 +}
2642 +
2643 +function wppm_archive_project(project_id,is_archived){
2644 + if (!confirm(wppm_admin.confirm)) {
2645 + return;
2646 + } else {
2647 + var data = {
2648 + action: 'wppm_archive_project',
2649 + project_id: project_id,
2650 + is_archived: is_archived,
2651 + };
2652 + jQuery.post(wppm_admin.ajax_url, data, function() {
2653 + wppm_open_project(project_id);
2654 + });
2655 + }
2656 +}
2657 +
2658 +function wppm_get_print_task_settings(){
2659 + jQuery('.wppm_setting_pills li').removeClass('active');
2660 + jQuery('#wppm_settings_print_task').addClass('active');
2661 + jQuery('.wppm_setting_col2').html(wppm_admin.loading_html);
2662 + var data = {
2663 + action: 'wppm_get_print_task_settings'
2664 + };
2665 + jQuery.post(wppm_admin.ajax_url, data, function(response) {
2666 + jQuery('.wppm_setting_col2').html(response);
2667 + });
2668 +}
2669 +
2670 +function wppm_set_print_task_settings(){
2671 + jQuery('.wppm_submit_wait').show();
2672 + var dataform = new FormData(jQuery('#wppm_print_task_settings')[0]);
2673 + jQuery.ajax({
2674 + url: wppm_admin.ajax_url,
2675 + type: 'POST',
2676 + data: dataform,
2677 + processData: false,
2678 + contentType: false
2679 + })
2680 + .done(function (response_str) {
2681 + var response = JSON.parse(response_str);
2682 + jQuery('.wppm_submit_wait').hide();
2683 + if (response.sucess_status=='1') {
2684 + jQuery('#wppm_alert_success .wppm_alert_text').text(response.messege);
2685 + }
2686 + jQuery('#wppm_alert_success').slideDown('fast',function(){});
2687 + setTimeout(function(){ jQuery('#wppm_alert_success').slideUp('fast',function(){}); }, 3000);
2688 + });
2689 +}
2690 +
2691 +function wppm_edit_checklist_item(item_id,checklist_id,proj_id,task_id){
2692 + wppm_task_modal_open('Edit Checklist Item') ;
2693 + var data = {
2694 + action: 'wppm_edit_checklist_item',
2695 + item_id:item_id,
2696 + checklist_id: checklist_id,
2697 + task_id: task_id,
2698 + proj_id: proj_id,
2699 + _ajax_nonce:jQuery('#wppm_edit_checklist_item_ajax_nonce').val()
2700 + };
2701 + jQuery.post(wppm_admin.ajax_url, data, function(response) {
2702 + var response = JSON.parse(response);
2703 + if(proj_id==0){
2704 + jQuery('#wppm_task_popup_body').html(response.body);
2705 + jQuery('#wppm_task_popup_footer').html(response.footer);
2706 + }else{
2707 + jQuery('#wppm_popup_body').html(response.body);
2708 + jQuery('#wppm_popup_footer').html(response.footer);
2709 + }
2710 + });
2711 +}
2712 +
2713 +function wppm_set_checklist_item_name(item_id,checklist_id,task_id){
2714 + var dataform = new FormData(jQuery('#frm_get_edit_checklist_item')[0]);
2715 + wppm_task_modal_close();
2716 + jQuery('#wppm_task_container').html(wppm_admin.loading_html);
2717 + jQuery.ajax({
2718 + url: wppm_admin.ajax_url,
2719 + type: 'POST',
2720 + data: dataform,
2721 + processData: false,
2722 + contentType: false
2723 + })
2724 + .done(function (response_str) {
2725 + wppm_open_task(task_id);
2726 + });
2727 +}
2728 +
2729 +function wppm_get_project_tasks_kanban_view(proj_id, KanbanFilters = {}) {
2730 + jQuery('#wppm_project_container').html(wppm_admin.loading_html);
2731 + var data = {
2732 + action: 'wppm_get_project_tasks_kanban_view',
2733 + id: proj_id,
2734 + filters: JSON.stringify(KanbanFilters)
2735 + };
2736 + jQuery.post(wppm_admin.ajax_url, data, function(response) {
2737 + jQuery('#wppm_project_container').html(response);
2738 + });
2739 +}
2740 +
2741 +function renderActiveFilters(filters) {
2742 + let box = document.getElementById("tb-active-filters");
2743 + if (!box) {
2744 + return;
2745 + }
2746 + // CLEAR OLD CHIPS
2747 + box.innerHTML = "";
2748 + if (!filters || typeof filters !== "object") {
2749 + return;
2750 + }
2751 + // CREATED BY
2752 + if (Array.isArray(filters.created_by)) {
2753 + filters.created_by.forEach(function(id) {
2754 + let text = jQuery('#tb-created-by option[value="' + id + '"]').text();
2755 + if (text) {
2756 + createChip(text, "created_by", id);
2757 + }
2758 + });
2759 + }
2760 + // ASSIGNED
2761 + if (Array.isArray(filters.assigned)) {
2762 + filters.assigned.forEach(function(id) {
2763 + let text = jQuery('#tb-assigned option[value="' + id + '"]').text();
2764 + if (text) {
2765 + createChip(text, "assigned", id);
2766 + }
2767 + });
2768 + }
2769 +
2770 + // PRIORITY
2771 + if (Array.isArray(filters.priority)) {
2772 + filters.priority.forEach(function(id) {
2773 + let text = jQuery('#tb-priority option[value="' + id + '"]').text();
2774 + if (text) {
2775 + createChip(text, "priority", id);
2776 + }
2777 + });
2778 + }
2779 +
2780 + // CATEGORY (Project List)
2781 + if (Array.isArray(filters.category)) {
2782 + filters.category.forEach(function(id) {
2783 + let text = jQuery('#tb-category option[value="' + id + '"]').text();
2784 + if (text) {
2785 + createChip(text, "category", id);
2786 + }
2787 + });
2788 + }
2789 +
2790 + // DATE CHIP
2791 + if (filters.start_date || filters.end_date) {
2792 + let dateText =
2793 + (filters.start_date || "") +
2794 + " → " +
2795 + (filters.end_date || "");
2796 + createChip(dateText, "date", "");
2797 + }
2798 +}
2799 +
2800 +function renderMulti(filters, key, selector, label) {
2801 + if (!filters || !filters[key]) {
2802 + return;
2803 + }
2804 + let values = filters[key] || [];
2805 + if (!Array.isArray(values) || values.length === 0) {
2806 + return;
2807 + }
2808 + jQuery(selector + " option").each(function () {
2809 + let val = String(jQuery(this).val());
2810 + let text = jQuery(this).text();
2811 + if (values.map(String).includes(val)) {
2812 + createChip(`${label}: ${text}`, key, val);
2813 + }
2814 + });
2815 +}
2816 +
2817 +function createChip(text, key, value) {
2818 + let container = document.getElementById("tb-active-filters");
2819 + if (!container) {
2820 + return;
2821 + }
2822 + let chip = document.createElement("span");
2823 + chip.className = "tb-chip";
2824 + chip.innerHTML = `
2825 + ${key.charAt(0).toUpperCase() + key.slice(1)}: ${text}
2826 + <span
2827 + class="tb-remove"
2828 + data-key="${key}"
2829 + data-value="${value || ''}"
2830 + >
2831 +
2832 + </span>
2833 + `;
2834 + container.appendChild(chip);
2835 +}
2836 +
2837 +function syncUIWithFilters(filters) {
2838 + jQuery("#tb-created-by")
2839 + .val(filters.created_by || [])
2840 + .trigger("change");
2841 +
2842 + jQuery("#tb-assigned")
2843 + .val(filters.assigned || [])
2844 + .trigger("change");
2845 +
2846 + jQuery("#tb-priority")
2847 + .val(filters.priority || [])
2848 + .trigger("change");
2849 +
2850 + jQuery("#tb-category")
2851 + .val(filters.category || [])
2852 + .trigger("change");
2853 +
2854 + jQuery("#tb-start-date")
2855 + .val(filters.start_date || "");
2856 +
2857 + jQuery("#tb-end-date")
2858 + .val(filters.end_date || "");
2859 +}
2860 +
2861 +function resetFilters(view_type) {
2862 + let emptyFilters = {
2863 + created_by: [],
2864 + assigned: [],
2865 + priority: [],
2866 + start_date: "",
2867 + end_date: "",
2868 + id: jQuery('#wppm_proj_id').val() || 0
2869 + };
2870 + // Reset UI fields
2871 + jQuery("#tb-created-by").val(null).trigger("change");
2872 + jQuery("#tb-assigned").val(null).trigger("change");
2873 + jQuery("#tb-priority").val(null).trigger("change");
2874 + jQuery("#tb-start-date").val("");
2875 + jQuery("#tb-end-date").val("");
2876 + if (view_type === 'grid') {
2877 + window.filters = { ...emptyFilters };
2878 + // Delete cookie
2879 + document.cookie =
2880 + "tb_filters=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;";
2881 + // Apply fresh filters
2882 + wppm_apply_task_filter_grid_view('0',emptyFilters.id,window.filters);
2883 + }
2884 + if (view_type === 'list') {
2885 + window.listFilters = { ...emptyFilters };
2886 + // Delete cookie
2887 + document.cookie =
2888 + "tb_list_filters=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;";
2889 + // Apply fresh filters
2890 + wppm_apply_task_filter(1, window.listFilters);
2891 + }
2892 + if (view_type === 'kanban') {
2893 + window.KanbanFilters = { ...emptyFilters };
2894 + // Delete cookie
2895 + document.cookie =
2896 + "tb_kanban_filters=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;";
2897 + // Apply fresh filters
2898 + wppm_get_project_tasks_kanban_view(
2899 + window.KanbanFilters.id,
2900 + window.KanbanFilters
2901 + );
2902 + }
2903 +}
2904 +
2905 +function getFilterCookie() {
2906 + let name = "tb_filters=";
2907 + let arr = document.cookie.split(';');
2908 + for (let i = 0; i < arr.length; i++) {
2909 + let c = arr[i].trim();
2910 + if (c.indexOf(name) === 0) {
2911 + try {
2912 + return JSON.parse(decodeURIComponent(c.substring(name.length)));
2913 + } catch (e) {
2914 + return null;
2915 + }
2916 + }
2917 + }
2918 + return null;
2919 +}
2920 +
2921 +function getListFilterCookie() {
2922 + let name = "tb_list_filters=";
2923 + let arr = document.cookie.split(';');
2924 + for (let i = 0; i < arr.length; i++) {
2925 + let c = arr[i].trim();
2926 + if (c.indexOf(name) === 0) {
2927 + try {
2928 + return JSON.parse(decodeURIComponent(c.substring(name.length)));
2929 + } catch (e) {
2930 + return null;
2931 + }
2932 + }
2933 + }
2934 + return null;
2935 +}
2936 +
2937 +function getKanbanFilterCookie() {
2938 + let name = "tb_kanban_filters=";
2939 + let arr = document.cookie.split(';');
2940 + for (let i = 0; i < arr.length; i++) {
2941 + let c = arr[i].trim();
2942 + if (c.indexOf(name) === 0) {
2943 + try {
2944 + return JSON.parse(decodeURIComponent(c.substring(name.length)));
2945 + } catch (e) {
2946 + return null;
2947 + }
2948 + }
2949 + }
2950 + return null;
2951 +}
2952 +
2953 +function setFilterCookie(filters) {
2954 + document.cookie =
2955 + "tb_filters=" + encodeURIComponent(JSON.stringify(filters)) +
2956 + ";path=/;max-age=" + (60 * 60 * 24);
2957 +}
2958 +
2959 +function setListFilterCookie(listFilters) {
2960 + document.cookie =
2961 + "tb_list_filters=" + encodeURIComponent(JSON.stringify(listFilters)) +
2962 + ";path=/;max-age=" + (60 * 60 * 24);
2963 +}
2964 +
2965 +function setKanbanFilterCookie(KanbanFilters) {
2966 + document.cookie =
2967 + "tb_kanban_filters=" + encodeURIComponent(JSON.stringify(KanbanFilters)) +
2968 + ";path=/;max-age=" + (60 * 60 * 24);
2969 +}
2970 +
2971 +let filterTimeout;
2972 +function triggerFilter(page = 1, filters = {}, view_type = 'list', proj_id = 0) {
2973 + clearTimeout(filterTimeout);
2974 + filterTimeout = setTimeout(function () {
2975 + if (view_type === 'grid') {
2976 + wppm_apply_task_filter_grid_view(
2977 + page,
2978 + proj_id,
2979 + filters
2980 + );
2981 + }
2982 + if (view_type === 'list') {
2983 + wppm_apply_task_filter(
2984 + page,
2985 + filters
2986 + );
2987 + }
2988 + if (view_type === 'kanban') {
2989 + wppm_get_project_tasks_kanban_view(
2990 + proj_id,
2991 + filters
2992 + );
2993 + }
2994 + }, 300);
2995 +}
2996 +
2997 +// ================= PROJECT LIST ADVANCED FILTER =================
2998 +function getProjectListFilterCookie() {
2999 + let name = "tb_proj_list_filters=";
3000 + let arr = document.cookie.split(';');
3001 + for (let i = 0; i < arr.length; i++) {
3002 + let c = arr[i].trim();
3003 + if (c.indexOf(name) === 0) {
3004 + try {
3005 + return JSON.parse(decodeURIComponent(c.substring(name.length)));
3006 + } catch (e) {
3007 + return null;
3008 + }
3009 + }
3010 + }
3011 + return null;
3012 +}
3013 +
3014 +function setProjectListFilterCookie(projectFilters) {
3015 + document.cookie =
3016 + "tb_proj_list_filters=" + encodeURIComponent(JSON.stringify(projectFilters)) +
3017 + ";path=/;max-age=" + (60 * 60 * 24);
3018 +}
3019 +
3020 +function resetProjectFilters(is_archieved) {
3021 + let emptyFilters = {
3022 + created_by: [],
3023 + assigned: [],
3024 + category: [],
3025 + start_date: "",
3026 + end_date: ""
3027 + };
3028 + jQuery("#tb-created-by").val(null).trigger("change");
3029 + jQuery("#tb-assigned").val(null).trigger("change");
3030 + jQuery("#tb-category").val(null).trigger("change");
3031 + jQuery("#tb-start-date").val("");
3032 + jQuery("#tb-end-date").val("");
3033 + window.projectFilters = { ...emptyFilters };
3034 + document.cookie = "tb_proj_list_filters=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;";
3035 + jQuery("#tb-advanced-panel").removeClass("tb-open");
3036 + jQuery("#tb-backdrop").removeClass("active");
3037 + jQuery("#tb-active-filters").html('');
3038 + wppm_apply_project_filter_advanced(1, window.projectFilters, is_archieved);
3039 +}
3040 +
3041 +let projectFilterTimeout;
3042 +function triggerProjectFilter(page, filters, is_archieved) {
3043 + clearTimeout(projectFilterTimeout);
3044 + projectFilterTimeout = setTimeout(function () {
3045 + wppm_apply_project_filter_advanced(page, filters, is_archieved);
3046 + }, 300);
3047 +}
3048 +
3049 +function wppm_apply_project_filter_advanced(page, projectFilters, is_archieved) {
3050 + page = page || 1;
3051 + is_archieved = is_archieved || 0;
3052 + if (!projectFilters) {
3053 + projectFilters = {
3054 + created_by: jQuery("#tb-created-by").val() || [],
3055 + assigned: jQuery("#tb-assigned").val() || [],
3056 + category: jQuery("#tb-category").val() || [],
3057 + start_date: jQuery("#tb-start-date").val() || "",
3058 + end_date: jQuery("#tb-end-date").val() || ""
3059 + };
3060 + }
3061 + let wppm_project_filter_val = jQuery('#wppm_project_filter').val() || 'all';
3062 + jQuery('#wppm_project_container').html(wppm_admin.loading_html);
3063 + jQuery.post(wppm_admin.ajax_url, {
3064 + action: 'wppm_get_project_list',
3065 + wppm_project_filter: wppm_project_filter_val,
3066 + page: wppm_admin.page,
3067 + page_no: page - 1,
3068 + is_archieved: is_archieved,
3069 + filters: JSON.stringify(projectFilters)
3070 + }, function (response) {
3071 + jQuery('#wppm_project_container').html(response);
3072 + setProjectListFilterCookie(projectFilters);
3073 + setTimeout(function () {
3074 + syncUIWithFilters(projectFilters);
3075 + renderActiveFilters(projectFilters);
3076 + }, 100);
3077 + });
3078 +}
3079 +
3080 +function wppm_archieve_project_list(){
3081 + jQuery('#wppm_project_container').html(wppm_admin.loading_html);
3082 + var data = {
3083 + action: 'wppm_archieve_project_list'
3084 + };
3085 + jQuery.post(wppm_admin.ajax_url, data, function(response) {
3086 + jQuery('#wppm_project_container').html(response);
3087 + });
3088 +}
3089 +
3090 +function wppm_get_archieve_project_list(page_no){
3091 + jQuery('#wppm_project_container').html(wppm_admin.loading_html);
3092 + var data = {
3093 + action: 'wppm_get_project_list',
3094 + page_no:page_no,
3095 + is_archieved:1
3096 + };
3097 + jQuery.post(wppm_admin.ajax_url, data, function(response) {
3098 + jQuery('#wppm_project_container').html(response);
3099 + });
3100 +}