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
taskbuilder / includes / frontend / wppm_tasks_shortcode.php

wppm_tasks_shortcode.php in Taskbuilder – Project Management & Task Management Tool With Kanban Board 6.0.6, at includes/frontend/wppm_tasks_shortcode.php

448 lines 19.9 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 if ( ! defined( 'ABSPATH' ) ) {
3 exit; // Exit if accessed directly
4 }
5
6 if ( ! class_exists( 'WPPM_Tasks_Shortcode' ) ) :
7 final class WPPM_Tasks_Shortcode {
8 public $shortcode_attr ;
9 // constructor
10 public function __construct($attr) {
11 global $wppmfunction;
12 $this->shortcode_attr = !empty($attr)? $wppmfunction->sanitize_array($attr):array();
13 $shortcode_attr = $this->shortcode_attr;
14 $this->wppm_display_tasks();
15 add_action('wp_footer', array($this,'wppm_page_inline_script' ),999999999999999999);
16 }
17
18 public function wppm_display_tasks(){
19 global $wpdb, $wppmfunction;
20 wp_enqueue_script('jquery');
21 wp_enqueue_script('jquery-ui-core');
22 wp_enqueue_script('jquery-ui-sortable');
23 wp_enqueue_script('jquery-ui-datepicker' );
24 wp_enqueue_editor();
25 wp_enqueue_style('wppm-bootstrap-css');
26 wp_enqueue_style('wppm-jquery-ui');
27 wp_enqueue_style('wppm-public-css');
28 wp_enqueue_style('wppm-admin-css');
29 wp_enqueue_style('wppm-modal-css');
30 wp_enqueue_style('wppm-flatpickr-css');
31 wp_enqueue_style('wppm-select2-css');
32 wp_enqueue_style('wppm-gpopover-css');
33 wp_enqueue_style('wppm-dragula-css');
34 wp_enqueue_script('wppm-admin');
35 wp_enqueue_script('wppm-public');
36 wp_enqueue_script('wppm-modal');
37 wp_enqueue_script('wppm-flatpickr-js');
38 wp_enqueue_script('wppm-select2-js');
39 wp_enqueue_script('wppm-gpopover-js');
40 wp_enqueue_script('wppm-dragula-js');
41 $settings = get_option("wppm-ap-modal");
42 ?>
43 <div class="wppm_bootstrap">
44 <div id="wppm_task_container"></div>
45 <div id="wppm_alert_success" class="alert alert-success wppm_alert" style="display:none;" role="alert">
46 <img src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/success.svg'); ?>" alt="success"> <span class="wppm_alert_text"></span>
47 </div>
48 <div id="wppm_alert_error" class="alert alert-danger wppm_alert" style="display:none;" role="alert">
49 <img src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/warning-triangle.svg'); ?>" alt="warning-triangle"> <span class="wppm_alert_text"></span>
50 </div>
51 </div>
52 <!-- Pop-up snippet start -->
53 <div id="wppm_task_popup_background" style="display:none;"></div>
54 <div id="wppm_task_popup_container" style="display:none;">
55 <div class="wppm_bootstrap">
56 <div class="row">
57 <div id="wppm_task_popup" class="col-xs-10 col-xs-offset-1 col-sm-10 col-sm-offset-1 col-md-8 col-md-offset-2 col-lg-6 col-lg-offset-3">
58 <div id="wppm_task_popup_title" class="row" ><h3><?php echo esc_html_e('Modal Title','taskbuilder');?></h3></div>
59 <div id="wppm_task_popup_body" class="row"><?php echo esc_html_e('I am body!','taskbuilder');?></div>
60 <div id="wppm_task_popup_footer" class="row">
61 <button type="button" class="btn wppm_task_popup_close"><?php echo esc_html_e('Close','taskbuilder');?></button>
62 <button type="button" class="btn wppm_task_popup_action"><?php echo esc_html_e('Save Changes','taskbuilder');?></button>
63 </div>
64 </div>
65 </div>
66 </div>
67 </div>
68 <style>
69 #wppm_task_popup_title{
70 background-color: <?php echo esc_attr($settings['header-bg-color'])?>;
71 }
72 #wppm_task_popup_title h3{
73 color:<?php echo esc_attr( $settings['header-text-color'])?>;
74 }
75 #wppm_task_popup_body{
76 background-color: <?php echo esc_attr($settings['body-bg-color'])?>!important;
77 }
78 #wppm_task_popup_body label{
79 color:<?php echo esc_attr( $settings['body-label-color'])?>;
80 }
81 #wppm_task_popup_body input{
82 color:<?php echo esc_attr( $settings['body-text-color'])?>;
83 }
84 #wppm_task_popup_body select{
85 color:<?php echo esc_attr( $settings['body-text-color'])?>;
86 }
87 #wppm_task_popup_body span {
88 color:<?php echo esc_attr( $settings['body-text-color'])?>;
89 }
90 #wppm_task_popup_body .select2-results__options {
91 color:<?php echo esc_attr( $settings['body-text-color'])?>;
92 }
93 </style>
94 <!-- Pop-up snippet end -->
95 <?php
96 do_action('wppm_after_task_shortcode_loaded');
97 }
98
99 public function wppm_page_inline_script() { ?>
100 <script type="text/javascript">
101 jQuery( document ).ready( function( jQuery ) {
102 <?php if(is_user_logged_in()){
103 if( (!((isset($_REQUEST['task-id'])) && (!empty(sanitize_text_field(wp_unslash($_REQUEST['auth-code'] ))))))){
104 if(get_option('wppm_default_task_list_view')==1){ ?>
105 wppm_get_task_list();
106 <?php } else{
107 ?> wppm_view_task_search_filter();
108 <?php }
109 }
110 if((isset($_REQUEST['task-id'])) && (!empty(sanitize_text_field(wp_unslash($_REQUEST['auth-code'] ))))){ ?>
111 wppm_open_task(<?php echo (intval(wp_unslash($_REQUEST['task-id']))); ?>);
112 <?php }
113 }
114 else{ ?>
115 wppm_task_sign_in();
116 <?php } ?>
117 });
118
119 function wppm_get_task_list(page_no){
120 jQuery('#wppm_task_container').show();
121 jQuery('#wppm_task_container').html(wppm_admin.loading_html);
122 var dataform=new FormData(jQuery('#wppm_task_list_frm')[0]);
123 jQuery(document).trigger('wppm_task_list_dataform', [dataform]);
124 <?php //do_action('wppm_task_list_dataform');?>
125 dataform.append("page_no", page_no);
126 dataform.append("action", 'wppm_get_task_list');
127 dataform.append("is_frontend", '1');
128 dataform.append("page",'wppm-tasks');
129 <?php
130 if(!empty($this->shortcode_attr['project'])){
131 ?>
132 dataform.append("wppm_project_attr","<?php echo esc_attr($this->shortcode_attr['project']); ?>");
133 <?php } ?>
134 jQuery.ajax( {
135 url: wppm_admin.ajax_url,
136 type: 'POST',
137 data: dataform,
138 processData: false,
139 contentType: false
140 })
141 .done(function( response ) {
142 jQuery('#wppm_task_container').html(response);
143 });
144 }
145
146 function wppm_add_new_task(proj_id){
147 jQuery('#wppm_task_container').show();
148 jQuery('#wppm_task_container').html(wppm_admin.loading_html);
149 var dataform=new FormData(jQuery('#wppm_task_list_frm')[0]);
150 jQuery(document).trigger('wppm_add_new_task_dataform', [dataform]);
151 dataform.append("proj_id", proj_id);
152 dataform.append("action", 'wppm_add_new_task');
153 jQuery.ajax( {
154 url: wppm_admin.ajax_url,
155 type: 'POST',
156 data: dataform,
157 processData: false,
158 contentType: false
159 })
160 .done(function( response ) {
161 jQuery('#wppm_task_container').html(response);
162 });
163 }
164
165 function wppm_apply_task_filter(){
166 wppm_task_filter = jQuery('#wppm_task_filter').find(":selected").val();
167 var listFilters = {};
168 listFilters.created_by = jQuery("#tb-created-by").val();
169 listFilters.created_by = listFilters.created_by ? listFilters.created_by : [];
170 listFilters.assigned = jQuery("#tb-assigned").val();
171 listFilters.assigned = listFilters.assigned ? listFilters.assigned : [];
172 listFilters.priority = jQuery("#tb-priority").val();
173 listFilters.priority = listFilters.priority ? listFilters.priority : [];
174 listFilters.start_date = jQuery("#tb-start-date").val() || "";
175 listFilters.end_date = jQuery("#tb-end-date").val() || "";
176 jQuery('#wppm_task_container').html(wppm_admin.loading_html);
177 var dataform=new FormData(jQuery('#wppm_task_list_frm')[0]);
178 jQuery(document).trigger('wppm_apply_task_filter_dataform', [dataform]);
179 dataform.append("wppm_task_filter", wppm_task_filter);
180 dataform.append("filters", JSON.stringify(listFilters));
181 dataform.append("is_frontend", '1');
182 dataform.append("action", 'wppm_get_task_list');
183 dataform.append("page",'wppm-tasks');
184 <?php if(!empty($this->shortcode_attr['project'])){ ?>
185 dataform.append("wppm_project_attr","<?php echo esc_attr($this->shortcode_attr['project']); ?>");
186 <?php } ?>
187 jQuery.ajax( {
188 url: wppm_admin.ajax_url,
189 type: 'POST',
190 data: dataform,
191 processData: false,
192 contentType: false
193 })
194 .done(function( response ) {
195 jQuery('#wppm_task_container').html(response);
196 setListFilterCookie(listFilters);
197 setTimeout(function(){
198 syncUIWithFilters(listFilters);
199 renderActiveFilters(listFilters);
200 }, 100);
201 });
202 }
203
204 function wppm_tl_reset_filter(){
205 // clear advanced filters + cookie BEFORE requesting the list,
206 // otherwise this request still sends the stale tb_list_filters
207 // cookie and the reset only takes effect on the next click
208 resetFilters('list');
209
210 jQuery('#wppm_task_container').html(wppm_admin.loading_html);
211 var dataform=new FormData(jQuery('#wppm_task_list_frm')[0]);
212 dataform.append("action", 'wppm_get_task_list');
213 dataform.append("wppm_task_filter", 'all');
214 dataform.append("task_search", '');
215 dataform.append("sort_by", 'task_name');
216 dataform.append("order", 'ASC');
217 dataform.append("wppm_proj_filter",0);
218 dataform.append("is_frontend", '1');
219 dataform.append("page",'wppm-tasks');
220 <?php if(!empty($this->shortcode_attr['project'])){ ?>
221 dataform.append("wppm_project_attr","<?php echo esc_attr($this->shortcode_attr['project']); ?>");
222 <?php } ?>
223 jQuery(document).trigger('wppm_tl_reset_filter_dataform', [dataform]);
224 jQuery.ajax( {
225 url: wppm_admin.ajax_url,
226 type: 'POST',
227 data: dataform,
228 processData: false,
229 contentType: false
230 })
231 .done(function( response ) {
232 jQuery('#wppm_task_container').html(response);
233 });
234 }
235
236 function wppm_task_search_filter(){
237 var task_search = jQuery("#wppm_task_search_filter").val();
238 jQuery('#wppm_task_container').show();
239 jQuery('#wppm_task_container').html(wppm_admin.loading_html);
240 var dataform=new FormData(jQuery('#wppm_task_list_frm')[0]);
241 jQuery(document).trigger('wppm_task_search_filter_dataform', [dataform]);
242 dataform.append("action", 'wppm_get_task_list');
243 dataform.append("is_frontend", '1');
244 dataform.append("page",'wppm-tasks');
245 <?php if(!empty($this->shortcode_attr['project'])){ ?>
246 dataform.append("wppm_project_attr","<?php echo esc_attr($this->shortcode_attr['project']); ?>");
247 <?php } ?>
248 dataform.append("task_search", task_search);
249 jQuery.ajax( {
250 url: wppm_admin.ajax_url,
251 type: 'POST',
252 data: dataform,
253 processData: false,
254 contentType: false
255 })
256 .done(function( response ) {
257 jQuery('#wppm_task_container').html(response);
258 });
259 }
260
261 function wppm_display_grid_view(){
262 var task_search = jQuery("#wppm_view_task_search_filter").val() || '';
263 jQuery('#wppm_task_container').show();
264 jQuery('#wppm_task_container').html(wppm_admin.loading_html);
265 var dataform=new FormData(jQuery('#wppm_view_project_task')[0]);
266 jQuery(document).trigger('wppm_display_grid_view_dataform', [dataform]);
267 dataform.append("action", 'wppm_get_task_list_card_view');
268 dataform.append("task_search", task_search);
269 dataform.append("is_frontend", '1');
270 dataform.append("page",'wppm-tasks');
271 <?php if(!empty($this->shortcode_attr['project'])){ ?>
272 dataform.append("wppm_project_attr","<?php echo esc_attr($this->shortcode_attr['project']); ?>");
273 <?php } ?>
274 jQuery.ajax( {
275 url: wppm_admin.ajax_url,
276 type: 'POST',
277 data: dataform,
278 processData: false,
279 contentType: false
280 })
281 .done(function( response ) {
282 jQuery('#wppm_task_container').html(response);
283 });
284 }
285
286 function wppm_sort_up_task_list(sort_by,order){
287 jQuery('#wppm_task_container').show();
288 jQuery('#wppm_task_container').html(wppm_admin.loading_html);
289 var dataform=new FormData(jQuery('#wppm_task_list_frm')[0]);
290 dataform.append("action", 'wppm_get_task_list');
291 dataform.append("sort_by", sort_by);
292 dataform.append("order", order);
293 dataform.append("is_frontend", '1');
294 jQuery(document).trigger('wppm_sort_up_task_list_dataform', [dataform]);
295 dataform.append("page",'wppm-tasks');
296 <?php if(!empty($this->shortcode_attr['project'])){ ?>
297 dataform.append("wppm_project_attr","<?php echo esc_attr($this->shortcode_attr['project']); ?>");
298 <?php } ?>
299 jQuery.ajax( {
300 url: wppm_admin.ajax_url,
301 type: 'POST',
302 data: dataform,
303 processData: false,
304 contentType: false
305 })
306 .done(function( response ) {
307 jQuery('#wppm_task_container').html(response);
308 });
309 }
310
311 function wppm_view_task_search_filter(page_no){
312 var task_search = jQuery("#wppm_view_task_search_filter").val() || '';
313 jQuery('#wppm_task_container').show();
314 jQuery('#wppm_task_container').html(wppm_admin.loading_html);
315 var dataform=new FormData(jQuery('#wppm_view_project_task')[0]);
316 jQuery(document).trigger('wppm_view_task_search_filter_dataform', [dataform]);
317 dataform.append("action", 'wppm_get_task_list_card_view');
318 dataform.append("task_search", task_search);
319 dataform.append("page_no",page_no);
320 dataform.append("is_frontend", '1');
321 dataform.append("page",'wppm-tasks');
322 <?php if(!empty($this->shortcode_attr['project'])){ ?>
323 dataform.append("wppm_project_attr","<?php echo esc_attr($this->shortcode_attr['project']); ?>");
324 <?php } ?>
325 jQuery.ajax( {
326 url: wppm_admin.ajax_url,
327 type: 'POST',
328 data: dataform,
329 processData: false,
330 contentType: false
331 })
332 .done(function( response ) {
333 jQuery('#wppm_task_container').html(response);
334 });
335 }
336
337 function wppm_apply_task_filter_grid_view(){
338 wppm_task_filter = jQuery('#wppm_task_filter').find(":selected").val();
339 jQuery('#wppm_task_container').html(wppm_admin.loading_html);
340 var dataform=new FormData(jQuery('#wppm_view_project_task')[0]);
341 jQuery(document).trigger('wppm_apply_task_filter_grid_view_dataform', [dataform]);
342 dataform.append("action", 'wppm_view_project_tasks');
343 dataform.append("wppm_task_filter", wppm_task_filter);
344 dataform.append("is_frontend", '1');
345 dataform.append("page",'wppm-tasks');
346 <?php if(!empty($this->shortcode_attr['project'])){ ?>
347 dataform.append("wppm_project_attr","<?php echo esc_attr($this->shortcode_attr['project']); ?>");
348 <?php } ?>
349 jQuery.ajax( {
350 url: wppm_admin.ajax_url,
351 type: 'POST',
352 data: dataform,
353 processData: false,
354 contentType: false
355 })
356 .done(function( response ) {
357 jQuery('#wppm_task_container').html(response);
358 });
359 }
360
361 function wppm_tl_reset_grid_view_filter(){
362 // clear advanced filters + cookie BEFORE requesting the list,
363 // otherwise this request still sends the stale tb_filters cookie
364 // and the advanced filters never actually get reset
365 jQuery("#tb-created-by").val(null).trigger("change");
366 jQuery("#tb-assigned").val(null).trigger("change");
367 jQuery("#tb-priority").val(null).trigger("change");
368 jQuery("#tb-start-date").val("");
369 jQuery("#tb-end-date").val("");
370 jQuery("#tb-advanced-panel").removeClass("tb-open");
371 jQuery("#tb-backdrop").removeClass("active");
372 jQuery("#tb-active-filters").html('');
373 window.filters = { created_by: [], assigned: [], priority: [], start_date: "", end_date: "" };
374 document.cookie = "tb_filters=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;";
375 window.localStorage.removeItem('wppm_task_filter');
376
377 jQuery('#wppm_task_container').html(wppm_admin.loading_html);
378 var dataform=new FormData(jQuery('#wppm_view_project_task')[0]);
379 jQuery(document).trigger('wppm_tl_reset_grid_view_filter_dataform', [dataform]);
380 dataform.append("action", 'wppm_view_project_tasks');
381 dataform.append("task_search", "");
382 dataform.append("wppm_task_filter", "all");
383 dataform.append("sort_by", "task_name");
384 dataform.append("order", "ASC");
385 dataform.append("wppm_proj_filter","0");
386 dataform.append("is_frontend", '1');
387 dataform.append("page",'wppm-tasks');
388 <?php if(!empty($this->shortcode_attr['project'])){ ?>
389 dataform.append("wppm_project_attr","<?php echo esc_attr($this->shortcode_attr['project']); ?>");
390 <?php } ?>
391 jQuery.ajax( {
392 url: wppm_admin.ajax_url,
393 type: 'POST',
394 data: dataform,
395 processData: false,
396 contentType: false
397 })
398 .done(function( response ) {
399 jQuery('#wppm_task_container').html(response);
400 });
401 }
402
403 function wppm_tasks_by_select_project(){
404 wppm_proj_filter = jQuery('#wppm_task_list_proj_filter').find(":selected").val();
405 jQuery('#wppm_task_container').html(wppm_admin.loading_html);
406 var dataform=new FormData(jQuery('#wppm_task_list_frm')[0]);
407 jQuery(document).trigger('wppm_change_proj_tl_filter_dataform', [dataform]);
408 dataform.append("action", 'wppm_get_task_list');
409 dataform.append("wppm_proj_filter",wppm_proj_filter);
410 dataform.append("is_frontend", '1');
411 dataform.append("page",'wppm-tasks');
412 jQuery.ajax( {
413 url: wppm_admin.ajax_url,
414 type: 'POST',
415 data: dataform,
416 processData: false,
417 contentType: false
418 })
419 .done(function( response ) {
420 jQuery('#wppm_task_container').html(response);
421 });
422 }
423
424 function wppm_tasks_by_select_project_grid_view(){
425 wppm_proj_filter = jQuery('#wppm_task_list_proj_filter').find(":selected").val();
426 jQuery('#wppm_task_container').html(wppm_admin.loading_html);
427 var dataform=new FormData(jQuery('#wppm_view_project_task')[0]);
428 jQuery(document).trigger('wppm_change_proj_grid_view_filter_dataform', [dataform]);
429 dataform.append("action", 'wppm_view_project_tasks');
430 dataform.append("wppm_proj_filter",wppm_proj_filter);
431 dataform.append("is_frontend", '1');
432 dataform.append("page",'wppm-tasks');
433 jQuery.ajax( {
434 url: wppm_admin.ajax_url,
435 type: 'POST',
436 data: dataform,
437 processData: false,
438 contentType: false
439 })
440 .done(function( response ) {
441 jQuery('#wppm_task_container').html(response);
442 });
443 }
444 </script>
445 <?php }
446 }
447 endif;
448 $GLOBALS['wppmtaskshortcode'] = new WPPM_Tasks_Shortcode($attr);