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_public_projects_tasks.php

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

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