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 +810 -105 5.0.46.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 = {
@@ -157,9 +185,9 @@
157 185 wppm_open_project(proj_id);
158 186 });
159 187 }
160 188
161 -function wppm_set_task_users(proj_id){
189 +function wppm_set_task_users(proj_id,project_id){
162 190 var dataform = new FormData(jQuery('#frm_get_task_users')[0]);
163 191 jQuery('#wppm_task_container').html(wppm_admin.loading_html);
164 192 var task_id = jQuery('#wppm_task_id').val();
165 193 jQuery.ajax({
@@ -174,9 +202,9 @@
174 202 wppm_task_modal_close();
175 203 wppm_open_project_tasks(task_id,proj_id);
176 204 }else if((proj_id==0)||(proj_id=="")){
177 205 wppm_task_modal_close();
178 - wppm_open_task(task_id);
206 + wppm_open_task(task_id,project_id);
179 207 }
180 208 });
181 209 }
182 210
@@ -185,8 +213,10 @@
185 213 jQuery('#wppm_project_container').html(wppm_admin.loading_html);
186 214 var dataform=new FormData(jQuery('#wppm_project_list_frm')[0]);
187 215 dataform.append("page_no", page_no);
188 216 dataform.append("action", 'wppm_get_project_list');
217 + dataform.append("page", wppm_admin.page);
218 + dataform.append("wppm_project_filter", wppm_project_filter);
189 219 jQuery.ajax( {
190 220 url: wppm_admin.ajax_url,
191 221 type: 'POST',
192 222 data: dataform,
@@ -197,14 +227,15 @@
197 227 jQuery('#wppm_project_container').html(response);
198 228 });
199 229 }
200 230
201 -function wppm_add_new_task(proj_id){
231 +function wppm_add_new_task(proj_id,project_id){
202 232 jQuery('#wppm_task_container').show();
203 233 jQuery('#wppm_task_container').html(wppm_admin.loading_html);
204 234 var data = {
205 235 action: 'wppm_add_new_task',
206 - proj_id:proj_id
236 + proj_id:proj_id,
237 + project_id:project_id
207 238 };
208 239 jQuery.post(wppm_admin.ajax_url, data, function(response) {
209 240 jQuery('#wppm_task_container').html(response);
210 241 });
@@ -209,16 +240,18 @@
209 240 jQuery('#wppm_task_container').html(response);
210 241 });
211 242 }
212 243
213 -function wppm_get_task_list(page_no){
244 +function wppm_get_task_list(page_no,id){
214 245 jQuery('#wppm_task_container').show();
215 - //window.history.replaceState( {}, null, 'admin.php?page=wppm-tasks&section=task-list' );
246 + // window.history.replaceState( {}, null, 'admin.php?page=wppm-tasks&section=task-list' );
216 247 jQuery('#wppm_task_container').html(wppm_admin.loading_html);
217 248 var data = {
218 249 action: 'wppm_get_task_list',
219 250 page_no:page_no,
220 - page:wppm_admin.page
251 + page:wppm_admin.page,
252 + project_id:id,
253 + wppm_task_filter:wppm_task_filter
221 254 };
222 255 jQuery.post(wppm_admin.ajax_url, data, function(response) {
223 256 jQuery('#wppm_task_container').html(response);
224 257 });
@@ -310,9 +343,9 @@
310 343 jQuery('#wppm_task_container').html(response);
311 344 });
312 345 }
313 346
314 -function wppm_view_task_search_filter(page_no,page){
347 +function wppm_view_task_search_filter(page_no,page,proj_id){
315 348 var task_search = jQuery("#wppm_view_task_search_filter").val() || '';
316 349 jQuery('#wppm_task_container').show();
317 350 jQuery('#wppm_task_container').html(wppm_admin.loading_html);
318 351
@@ -319,9 +352,10 @@
319 352 var data = {
320 353 action: 'wppm_get_task_list_card_view',
321 354 task_search:task_search,
322 355 page_no:page_no,
323 - page:page
356 + page:page,
357 + project_id:proj_id
324 358 };
325 359 jQuery.post(wppm_admin.ajax_url, data, function(response) {
326 360 jQuery('#wppm_task_container').html(response);
327 361 });
@@ -326,15 +360,17 @@
326 360 jQuery('#wppm_task_container').html(response);
327 361 });
328 362 }
329 363
330 -function wppm_open_task(id){
364 +function wppm_open_task(id,proj_id){
331 365 jQuery('#wppm_task_container').show();
332 366 jQuery('#wppm_task_container').html(wppm_admin.loading_html);
333 367 var data = {
334 368 action: 'wppm_open_task',
335 369 id:id,
336 - auth_code: wppm_admin.auth_code
370 + auth_code: wppm_admin.auth_code,
371 + page:wppm_admin.page,
372 + project_id:proj_id
337 373 };
338 374 jQuery.post(wppm_admin.ajax_url, data, function(response) {
339 375 jQuery('#wppm_task_container').html(response);
340 376 });
@@ -339,8 +375,20 @@
339 375 jQuery('#wppm_task_container').html(response);
340 376 });
341 377 }
342 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 +
343 391 function wppm_open_project_tasks(id,proj_id){
344 392 wppm_modal_open('Open Tasks');
345 393 jQuery('#wppm_task_container').show();
346 394 jQuery('#wppm_task_container').html(wppm_admin.loading_html);
@@ -463,8 +511,101 @@
463 511 wppm_open_task(task_id);
464 512 });
465 513 }
466 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 +
467 608 function wppm_open_individual_task(id){
468 609 jQuery('#wppm_project_container').show();
469 610 jQuery('#wppm_project_container').html(wppm_admin.loading_html);
470 611 var data = {
@@ -475,9 +616,10 @@
475 616 jQuery('#wppm_project_container').html(response);
476 617 });
477 618 }
478 619
479 -function wppm_display_grid_view(page){
620 +
621 +function wppm_display_grid_view(page,id){
480 622 var task_search = jQuery("#wppm_view_task_search_filter").val() || '';
481 623 jQuery('#wppm_task_container').show();
482 624 jQuery('#wppm_task_container').html(wppm_admin.loading_html);
483 625 var data = {
@@ -482,9 +624,11 @@
482 624 jQuery('#wppm_task_container').html(wppm_admin.loading_html);
483 625 var data = {
484 626 action: 'wppm_get_task_list_card_view',
485 627 task_search: task_search,
486 - page:page
628 + wppm_task_filter: wppm_task_filter,
629 + page:page,
630 + id:id
487 631 };
488 632 jQuery.post(wppm_admin.ajax_url, data, function(response) {
489 633 jQuery('#wppm_task_container').html(response);
490 634 });
@@ -555,9 +699,9 @@
555 699 jQuery('.wppm_setting_col2').html(response);
556 700 });
557 701 }
558 702
559 -function wppm_edit_task_status(id,proj_id){
703 +function wppm_edit_task_status(id,proj_id,project_id){
560 704 if(proj_id==0){
561 705 wppm_task_modal_open('Edit');
562 706 }else{
563 707 wppm_modal_open('Edit');
@@ -564,9 +708,10 @@
564 708 }
565 709 var data = {
566 710 action: 'wppm_edit_task_status',
567 711 task_id: id,
568 - proj_id:proj_id
712 + proj_id:proj_id,
713 + project_id:project_id
569 714 }
570 715 jQuery.post(wppm_admin.ajax_url, data, function(response_str) {
571 716 var response = JSON.parse(response_str);
572 717 if(proj_id==0){
@@ -578,9 +723,9 @@
578 723 }
579 724 });
580 725 }
581 726
582 -function wppm_edit_task_users(task_id,proj_id){
727 +function wppm_edit_task_users(task_id,proj_id,project_id){
583 728 if(proj_id==0){
584 729 wppm_task_modal_open('Add Users');
585 730 }else{
586 731 wppm_modal_open('Add Users');
@@ -587,9 +732,10 @@
587 732 }
588 733 var data = {
589 734 action: 'wppm_get_task_users',
590 735 task_id: task_id,
591 - proj_id:proj_id
736 + proj_id:proj_id,
737 + project_id:project_id
592 738 }
593 739 jQuery.post(wppm_admin.ajax_url, data, function(response_str) {
594 740 var response = JSON.parse(response_str);
595 741 if(proj_id==0){
@@ -601,9 +747,9 @@
601 747 }
602 748 });
603 749 }
604 750
605 -function wppm_edit_task_details(id,proj_id){
751 +function wppm_edit_task_details(id,proj_id,project_id){
606 752 if(proj_id==0){
607 753 wppm_task_modal_open('Edit Task Details');
608 754 }else{
609 755 wppm_modal_open('Edit Task Details');
@@ -610,9 +756,10 @@
610 756 }
611 757 var data = {
612 758 action: 'wppm_edit_task_details',
613 759 task_id: id,
614 - proj_id:proj_id
760 + proj_id:proj_id,
761 + project_id:project_id
615 762 }
616 763 jQuery.post(wppm_admin.ajax_url, data, function(response_str) {
617 764 var response = JSON.parse(response_str);
618 765 if(proj_id==0){
@@ -624,9 +771,9 @@
624 771 }
625 772 });
626 773 }
627 774
628 -function wppm_set_change_task_status(task_id,proj_id){
775 +function wppm_set_change_task_status(task_id,proj_id,project_id){
629 776 var dataform = new FormData(jQuery('#frm_get_task_change_status')[0]);
630 777 if(proj_id == 0){
631 778 wppm_task_modal_close();
632 779 }else{
@@ -643,15 +790,15 @@
643 790 .done(function (response_str) {
644 791 if((proj_id!=0)||(proj_id!="")){
645 792 wppm_open_project_tasks(task_id,proj_id);
646 793 }else if((proj_id==0)||(proj_id=="")){
647 - wppm_open_task(task_id);
794 + wppm_open_task(task_id,project_id);
648 795 }
649 796
650 797 });
651 798 }
652 799
653 -function wppm_edit_task_creator(task_id,proj_id){
800 +function wppm_edit_task_creator(task_id,proj_id,project_id){
654 801 if(proj_id==0){
655 802 wppm_task_modal_open('Edit Task Creator');
656 803 }else{
657 804 wppm_modal_open('Edit Task Creator');
@@ -658,9 +805,10 @@
658 805 }
659 806 var data = {
660 807 action: 'wppm_edit_task_creator',
661 808 task_id: task_id,
662 - proj_id: proj_id
809 + proj_id: proj_id,
810 + project_id: project_id
663 811 }
664 812 jQuery.post(wppm_admin.ajax_url, data, function(response_str) {
665 813 var response = JSON.parse(response_str);
666 814 if(proj_id==0){
@@ -672,9 +820,9 @@
672 820 }
673 821 });
674 822 }
675 823
676 -function wppm_set_change_raised_by(task_id,proj_id){
824 +function wppm_set_change_raised_by(task_id,proj_id,project_id){
677 825 var dataform = new FormData(jQuery('#frm_get_task_creator')[0]);
678 826 if(proj_id==0){
679 827 wppm_task_modal_close();
680 828 }else{
@@ -691,37 +839,42 @@
691 839 .done(function (response_str) {
692 840 if((proj_id!=0)||(proj_id!="")){
693 841 wppm_open_project_tasks(task_id,proj_id);
694 842 }else if((proj_id==0)||(proj_id=="")){
695 - wppm_open_task(task_id);
843 + wppm_open_task(task_id,project_id);
696 844 }
697 845 });
698 846 }
699 847
700 -function wppm_set_change_task_details(task_id,proj_id){
701 - var dataform = new FormData(jQuery('#frm_get_edit_task_deatils')[0]);
702 - var description = tinyMCE.get('wppm_edit_task_description').getContent().trim();
703 - dataform.append('wppm_edit_task_description', description);
704 - if(proj_id==0){
705 - wppm_task_modal_close();
706 - }else{
707 - wppm_modal_close();
708 - }
709 - jQuery('#wppm_task_container').html(wppm_admin.loading_html);
710 - jQuery.ajax({
711 - url: wppm_admin.ajax_url,
712 - type: 'POST',
713 - data: dataform,
714 - processData: false,
715 - contentType: false
716 - })
717 - .done(function (response_str) {
718 - if((proj_id!=0)||(proj_id!="")){
719 - wppm_open_project_tasks(task_id,proj_id);
720 - }else if((proj_id==0)||(proj_id=="")){
721 - 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();
722 856 }
723 - });
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 + });
724 877 }
725 878
726 879 function wppm_edit_thread(comment_id,task_id,proj_id){
727 880 if(proj_id==0){
@@ -1021,9 +1174,9 @@
1021 1174 wppm_get_project_list();
1022 1175 });
1023 1176 }
1024 1177
1025 -function wppm_get_delete_task(id,proj_id){
1178 +function wppm_get_delete_task(id,proj_id,project_id){
1026 1179 if(proj_id==0){
1027 1180 wppm_task_modal_open('Delete Task');
1028 1181 }else{
1029 1182 wppm_modal_open('Delete Task');
@@ -1030,9 +1183,10 @@
1030 1183 }
1031 1184 var data = {
1032 1185 action: 'wppm_get_delete_task',
1033 1186 id: id,
1034 - proj_id:proj_id
1187 + proj_id:proj_id,
1188 + project_id:project_id
1035 1189 }
1036 1190 jQuery.post(wppm_admin.ajax_url, data, function(response_str) {
1037 1191 var response = JSON.parse(response_str);
1038 1192 if(proj_id==0){
@@ -1044,9 +1198,9 @@
1044 1198 }
1045 1199 });
1046 1200 }
1047 1201
1048 -function wppm_set_delete_task(proj_id){
1202 +function wppm_set_delete_task(proj_id,project_id){
1049 1203 var dataform = new FormData(jQuery('#frm_delete_task')[0]);
1050 1204 if(proj_id==0){
1051 1205 wppm_task_modal_close();
1052 1206 }else{
@@ -1059,12 +1213,16 @@
1059 1213 processData: false,
1060 1214 contentType: false
1061 1215 })
1062 1216 .done(function (response_str) {
1063 - if(proj_id==0){
1064 - wppm_get_task_list();
1217 + if(project_id!=0){
1218 + wppm_get_project_tasks_kanban_view(project_id);
1065 1219 }else{
1066 - wppm_get_project_tasks(proj_id);
1220 + if(proj_id==0){
1221 + wppm_get_task_list();
1222 + }else{
1223 + wppm_get_project_tasks(proj_id);
1224 + }
1067 1225 }
1068 1226 });
1069 1227 }
1070 1228
@@ -1190,20 +1348,49 @@
1190 1348 jQuery('#wppm_popup_body').html(response_str);
1191 1349 });
1192 1350 }
1193 1351
1194 -function wppm_load_prev_page(prev_page_no,page_no,sort_by, order){
1195 - if(prev_page_no!=0){
1196 - page_no=prev_page_no-1;
1197 - wppm_get_project_list(page_no,sort_by,order);
1198 - }
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;
1199 1371 }
1200 1372
1201 -function wppm_load_next_page(next_page_no,page_no,sort_by,order){
1202 - if(next_page_no!=page_no){
1203 - page_no = next_page_no;
1204 - wppm_get_project_list(page_no,sort_by,order);
1205 - }
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;
1206 1393 }
1207 1394
1208 1395 function wppm_load_prev_task_page(prev_page_no,page_no, sort_by, order){
1209 1396 if(prev_page_no!=0){
@@ -1282,15 +1469,17 @@
1282 1469 jQuery('#wppm_project_container').html(response);
1283 1470 });
1284 1471 }
1285 1472
1286 -function wppm_project_search_filter(){
1473 +function wppm_project_search_filter(is_archieved){
1287 1474 var project_search = jQuery("#wppm_project_search_filter").val();
1288 1475 jQuery('#wppm_project_container').show();
1289 1476 jQuery('#wppm_project_container').html(wppm_admin.loading_html);
1290 1477 var data = {
1291 1478 action: 'wppm_get_project_list',
1292 - project_search:project_search
1479 + project_search:project_search,
1480 + page: wppm_admin.page,
1481 + is_archieved:is_archieved
1293 1482 };
1294 1483 jQuery.post(wppm_admin.ajax_url, data, function(response) {
1295 1484 jQuery('#wppm_project_container').html(response);
1296 1485 });
@@ -1295,9 +1484,9 @@
1295 1484 jQuery('#wppm_project_container').html(response);
1296 1485 });
1297 1486 }
1298 1487
1299 -function wppm_clone_task(id,proj_id){
1488 +function wppm_clone_task(id,proj_id,project_id){
1300 1489 if(proj_id==0){
1301 1490 wppm_task_modal_open('Clone Task');
1302 1491 }else{
1303 1492 wppm_modal_open('Clone Task');
@@ -1304,9 +1493,10 @@
1304 1493 }
1305 1494 var data = {
1306 1495 action: 'wppm_clone_task',
1307 1496 id: id,
1308 - proj_id: proj_id
1497 + proj_id: proj_id,
1498 + project_id: project_id
1309 1499 }
1310 1500 jQuery.post(wppm_admin.ajax_url, data, function(response_str) {
1311 1501 var response = JSON.parse(response_str);
1312 1502 if(proj_id==0){
@@ -1318,9 +1508,9 @@
1318 1508 }
1319 1509 });
1320 1510 }
1321 1511
1322 -function wppm_set_clone_task(proj_id){
1512 +function wppm_set_clone_task(proj_id,project_id){
1323 1513 var dataform = new FormData(jQuery('#frm_edit_clone_task_name')[0]);
1324 1514 if(proj_id==0){
1325 1515 wppm_task_modal_close();
1326 1516 }else{
@@ -1333,12 +1523,16 @@
1333 1523 processData: false,
1334 1524 contentType: false
1335 1525 })
1336 1526 .done(function (response_str) {
1337 - if(proj_id==0){
1338 - wppm_get_task_list();
1527 + if(project_id!=0){
1528 + wppm_get_project_tasks_kanban_view(project_id);
1339 1529 }else{
1340 - wppm_get_project_tasks(proj_id);
1530 + if(proj_id==0){
1531 + wppm_get_task_list();
1532 + }else{
1533 + wppm_get_project_tasks(proj_id);
1534 + }
1341 1535 }
1342 1536 });
1343 1537 }
1344 1538
@@ -1361,9 +1555,10 @@
1361 1555 jQuery('#wppm_project_container').html(wppm_admin.loading_html);
1362 1556 var data = {
1363 1557 action: 'wppm_get_project_list',
1364 1558 sort_by:sort_by,
1365 - order:order
1559 + order:order,
1560 + page: wppm_admin.page
1366 1561 };
1367 1562 jQuery.post(wppm_admin.ajax_url, data, function(response) {
1368 1563 jQuery('#wppm_project_container').html(response);
1369 1564 });
@@ -1793,14 +1988,16 @@
1793 1988 jQuery.post(wppm_admin.ajax_url, data, function() {
1794 1989 });
1795 1990 }
1796 1991
1797 -function wppm_apply_project_filter(){
1992 +function wppm_apply_project_filter(is_archieved){
1798 1993 wppm_project_filter = jQuery('#wppm_project_filter').find(":selected").val();
1799 1994 jQuery('#wppm_project_container').html(wppm_admin.loading_html);
1800 1995 var data = {
1801 1996 action: 'wppm_get_project_list',
1802 - wppm_project_filter:wppm_project_filter
1997 + wppm_project_filter:wppm_project_filter,
1998 + page:wppm_admin.page,
1999 + is_archieved:is_archieved
1803 2000 };
1804 2001 jQuery.post(wppm_admin.ajax_url, data, function(response) {
1805 2002 jQuery('#wppm_project_container').html(response);
1806 2003 });
@@ -1805,22 +2002,70 @@
1805 2002 jQuery('#wppm_project_container').html(response);
1806 2003 });
1807 2004 }
1808 2005
1809 -function wppm_apply_task_filter(page){
1810 - wppm_task_filter = jQuery('#wppm_task_filter').find(":selected").val();
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();
1811 2025 jQuery('#wppm_task_container').html(wppm_admin.loading_html);
1812 - var data = {
2026 + jQuery.post(wppm_admin.ajax_url, {
1813 2027 action: 'wppm_get_task_list',
1814 - wppm_task_filter:wppm_task_filter,
1815 - page:page
1816 - };
1817 - jQuery.post(wppm_admin.ajax_url, data, function(response) {
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) {
1818 2033 jQuery('#wppm_task_container').html(response);
1819 - });
2034 + // 🔥 save cookie
2035 + setListFilterCookie(listFilters);
2036 + // 🔥 sync UI
2037 + setTimeout(function () {
2038 + syncUIWithFilters(listFilters);
2039 + renderActiveFilters(listFilters);
2040 + }, 100);
2041 +
2042 + });
1820 2043 }
1821 2044
1822 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 +
1823 2068 jQuery('#wppm_task_container').html(wppm_admin.loading_html);
1824 2069 var data = {
1825 2070 action: 'wppm_get_task_list',
1826 2071 wppm_task_filter:'all',
@@ -1831,25 +2076,72 @@
1831 2076 page:page
1832 2077 };
1833 2078 jQuery.post(wppm_admin.ajax_url, data, function(response) {
1834 2079 jQuery('#wppm_task_container').html(response);
1835 - });
2080 + });
1836 2081 }
1837 2082
1838 -function wppm_apply_task_filter_grid_view(page){
2083 +function wppm_apply_task_filter_grid_view(page,id,filters){
1839 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 + }
1840 2094 jQuery('#wppm_task_container').html(wppm_admin.loading_html);
1841 2095 var data = {
1842 2096 action: 'wppm_view_project_tasks',
1843 2097 wppm_task_filter:wppm_task_filter,
1844 - page:page
2098 + page: wppm_admin.page,
2099 + page_no: (typeof page === 'number' ? page - 1 : 0),
2100 + id:id,
2101 + filters: JSON.stringify(filters)
1845 2102 };
1846 2103 jQuery.post(wppm_admin.ajax_url, data, function(response) {
1847 - jQuery('#wppm_task_container').html(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);
1848 2113 });
1849 2114 }
1850 2115
1851 -function wppm_tl_reset_grid_view_filter(page){
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 +
1852 2144 jQuery('#wppm_task_container').html(wppm_admin.loading_html);
1853 2145 var data = {
1854 2146 action: 'wppm_view_project_tasks',
1855 2147 wppm_task_filter:'all',
@@ -1856,27 +2148,52 @@
1856 2148 task_search:"",
1857 2149 sort_by:"task_name",
1858 2150 order:"ASC",
1859 2151 wppm_proj_filter:"0",
1860 - page:page
2152 + page:page,
2153 + id:id
1861 2154 };
1862 2155 jQuery.post(wppm_admin.ajax_url, data, function(response) {
1863 2156 jQuery('#wppm_task_container').html(response);
1864 - });
2157 + });
1865 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('');
1866 2174
1867 -function wppm_pl_reset_filter(){
1868 - jQuery('#wppm_project_container').html(wppm_admin.loading_html);
1869 - var data = {
1870 - action: 'wppm_get_project_list',
1871 - wppm_project_filter:'all',
1872 - project_search:"",
1873 - sort_by:"project_name",
1874 - order:"ASC"
1875 - };
1876 - jQuery.post(wppm_admin.ajax_url, data, function(response) {
1877 - jQuery('#wppm_project_container').html(response);
1878 - });
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 + });
1879 2196 }
1880 2197
1881 2198 function wppm_tasks_by_select_project(page){
1882 2199 wppm_proj_filter = jQuery('#wppm_task_list_proj_filter').find(":selected").val();
@@ -2306,9 +2623,9 @@
2306 2623 function wppm_download_pdf(id){
2307 2624 window.open(wppm_admin.ajax_url + "?action=wppm_download_pdf&id=" + id, "_blank");
2308 2625 }
2309 2626
2310 -function wppm_archive_task(id,is_archived){
2627 +function wppm_archive_task(id,is_archived,project_id){
2311 2628 if (!confirm(wppm_admin.confirm)) {
2312 2629 return;
2313 2630 } else {
2314 2631 var data = {
@@ -2313,16 +2630,32 @@
2313 2630 } else {
2314 2631 var data = {
2315 2632 action: 'wppm_archive_task',
2316 2633 id: id,
2317 - is_archived: is_archived
2634 + is_archived: is_archived,
2635 + project_id: project_id,
2318 2636 };
2319 2637 jQuery.post(wppm_admin.ajax_url, data, function() {
2320 - wppm_open_task(id);
2638 + wppm_open_task(id,project_id);
2321 2639 });
2322 2640 }
2323 2641 }
2324 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 +
2325 2658 function wppm_get_print_task_settings(){
2326 2659 jQuery('.wppm_setting_pills li').removeClass('active');
2327 2660 jQuery('#wppm_settings_print_task').addClass('active');
2328 2661 jQuery('.wppm_setting_col2').html(wppm_admin.loading_html);
@@ -2392,4 +2725,376 @@
2392 2725 wppm_open_task(task_id);
2393 2726 });
2394 2727 }
2395 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 +}