PluginProbe
Taskbuilder – Project Management & Task Management Tool With Kanban Board / 2.0.5
Taskbuilder – Project Management & Task Management Tool With Kanban Board v2.0.5
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 1.0.6 All 57 releases
taskbuilder / includes / admin / settings / wppm_get_task_status_settings.php

wppm_get_task_status_settings.php in Taskbuilder – Project Management & Task Management Tool With Kanban Board 2.0.5, at includes/admin/settings/wppm_get_task_status_settings.php

174 lines 6.8 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 <?php
7 if ( ! defined( 'ABSPATH' ) ) {
8 exit; // Exit if accessed directly
9 }
10
11 global $current_user, $wpdb, $wppmfunction;
12 if (!($current_user->ID && $current_user->has_cap('manage_options'))) {
13 exit;
14 }
15 $statuses = $wpdb->get_results( "SELECT * FROM {$wpdb->prefix}wppm_task_statuses ORDER BY load_order ASC" );
16 $status_arr = $wpdb->get_results( "SELECT id FROM {$wpdb->prefix}wppm_task_statuses" );
17 $status_ids=array();
18 if(!empty($status_arr)){
19 foreach($status_arr as $key=>$val){
20 $statuses_array= json_decode(json_encode($val));
21 $status_ids[] = $statuses_array->id;
22 }
23 $status_ids = $wppmfunction->sanitize_array($status_ids);
24 }
25 ?>
26 <div id="wppm_task_statuses_container">
27 <div class="wppm-help-container">
28 <a href="https://taskbuilder.net/docs/task-statuses/" target="_blank"><?php echo esc_attr__( 'Click here', 'taskbuilder' )?></a> <?php echo esc_attr__( 'to see the documentation!', 'taskbuilder' )?>
29 </div>
30 <span class="wppm-title">
31 <?php echo esc_html_e('Task Statuses','taskbuilder');?>
32 <span style="margin-left:10px;" class="wppm_btn btn-primary wppm-add-new-btn" onclick="wppm_get_add_task_status();"><?php echo esc_html_e('+Add New','taskbuilder');?></span>
33 </span>
34 <div class="wppm_padding_space"></div>
35 <ul class="wppm-sortable">
36 <?php
37 if(!empty($statuses)){
38 foreach ($statuses as $status){
39 $color=$status->color;
40 $background_color=$status->bg_color;
41 ?>
42 <li class="ui-state-default" data-id="<?php echo esc_attr($status->id)?>">
43 <div class="wppm-flex-container"style="background-color:<?php echo esc_attr($background_color)?>;color:<?php echo esc_attr($color)?>;">
44 <div class="wppm-sortable-handle"><img src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/filter.svg'); ?>" alt="filter"></div>
45 <div class="wppm-sortable-label"><?php echo esc_html_e($status->name,'taskbuilder')?></div>
46 <div class="wppm-sortable-edit" onclick="wppm_get_edit_task_status(<?php echo esc_attr($status->id)?>);"><img src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/edit1.svg'); ?>" alt="edit"></div>
47 <div class="wppm-sortable-delete" onclick="wppm_delete_task_status(<?php echo esc_attr($status->id)?>);"><img src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/trash.svg'); ?>" alt="delete"></div>
48 </div>
49 </li>
50
51 <?php }
52 }
53 ?>
54 </ul>
55 <div>
56 <script>
57 jQuery(function(){
58 jQuery( ".wppm-sortable" ).sortable({ handle: '.wppm-sortable-handle' });
59 jQuery( ".wppm-sortable" ).on("sortupdate",function(event,ui){
60 var keys = jQuery(this).sortable( "toArray", {attribute: 'data-id'} );
61 var status_order = <?php echo json_encode($status_ids); ?>;
62 var result = {};
63 for (var i = 0; i < keys.length; i++){
64 result[keys[i]] = status_order[i];
65 }
66 var data = {
67 action: 'wppm_set_task_status_order',
68 load_orders : result
69 };
70 jQuery.post(wppm_admin.ajax_url, data, function(response_str) {
71 var response = JSON.parse(response_str);
72 if (response.sucess_status==1) {
73 jQuery('#wppm_alert_success .wppm_alert_text').text(response.messege);
74 }
75 jQuery('#wppm_alert_success').slideDown('fast',function(){});
76 setTimeout(function(){ jQuery('#wppm_alert_success').slideUp('fast',function(){}); }, 3000);
77 });
78 });
79 });
80
81 function wppm_set_add_task_status(){
82 var status_name = jQuery('#wppm_task_status_name').val().trim();
83 if (status_name.length == 0) {
84 jQuery('#wppm_task_status_name').val('').focus();
85 return;
86 }
87 var status_color = jQuery('#wppm_task_status_color').val().trim();
88 if (status_color.length == 0) {
89 status_color = '#ffffff';
90 }
91 var status_bg_color = jQuery('#wppm_task_status_bg_color').val().trim();
92 if (status_bg_color.length == 0) {
93 status_bg_color = '#1E90FF';
94 }
95 jQuery('.wppm_popup_action').text('<?php _e('Please wait ...','taskbuilder')?>');
96 jQuery('.wppm_popup_action, #wppm_popup_body input').attr("disabled", "disabled");
97 var data = {
98 action: 'wppm_set_add_task_status',
99 status_name : status_name,
100 status_color: status_color,
101 status_bg_color: status_bg_color
102 };
103 jQuery.post(wppm_admin.ajax_url, data, function(response_str) {
104 wppm_modal_close();
105 var response = JSON.parse(response_str);
106 wppm_get_task_status_settings();
107 if (response.sucess_status=='1') {
108 jQuery('#wppm_alert_success .wppm_alert_text').text(response.messege);
109 jQuery('#wppm_alert_success').slideDown('fast',function(){});
110 setTimeout(function(){ jQuery('#wppm_alert_success').slideUp('fast',function(){}); }, 3000);
111 wppm_get_task_status_settings();
112 } else {
113 jQuery('#wppm_alert_error .wppm_alert_text').text(response.messege);
114 jQuery('#wppm_alert_error').slideDown('fast',function(){});
115 setTimeout(function(){ jQuery('#wppm_alert_error').slideUp('fast',function(){}); }, 3000);
116 }
117 })
118 }
119
120 function wppm_get_edit_task_status(status_id){
121 wppm_modal_open(wppm_admin.edit_status);
122 var data = {
123 action : 'wppm_get_edit_task_status',
124 status_id:status_id
125 };
126 jQuery.post(wppm_admin.ajax_url, data, function(response_str) {
127 var response = JSON.parse(response_str);
128 jQuery('#wppm_popup_body').html(response.body);
129 jQuery('#wppm_popup_footer').html(response.footer);
130 jQuery('#wppm_proj_status_name').focus();
131 })
132 }
133
134 function wppm_set_edit_task_status(status_id){
135 var status_name = jQuery('#wppm_edit_task_status_name').val().trim();
136 if (status_name.length == 0) {
137 jQuery('#wppm_edit_task_status_name').val('').focus();
138 return;
139 }
140 var status_color = jQuery('#wppm_edit_task_status_color').val().trim();
141 if (status_color.length == 0) {
142 status_color = '#ffffff';
143 }
144 var status_bg_color = jQuery('#wppm_edit_task_status_bg_color').val().trim();
145 if (status_bg_color.length == 0) {
146 status_bg_color = '#1E90FF';
147 }
148 jQuery('.wppm_popup_action').text('<?php _e('Please wait ...','taskbuilder')?>');
149 jQuery('.wppm_popup_action, #wppm_popup_body input').attr("disabled", "disabled");
150 var data = {
151 action : 'wppm_set_edit_task_status',
152 status_id:status_id,
153 status_name:status_name,
154 status_color: status_color,
155 status_bg_color: status_bg_color
156 };
157 jQuery.post(wppm_admin.ajax_url, data, function(response_str) {
158 wppm_modal_close();
159 var response = JSON.parse(response_str);
160 wppm_get_task_status_settings();
161 if (response.sucess_status=='1') {
162 jQuery('#wppm_alert_success .wppm_alert_text').text(response.messege);
163 jQuery('#wppm_alert_success').slideDown('fast',function(){});
164 setTimeout(function(){ jQuery('#wppm_alert_success').slideUp('fast',function(){}); }, 3000);
165 wppm_get_task_status_settings();
166 } else {
167 jQuery('#wppm_alert_error .wppm_alert_text').text(response.messege);
168 jQuery('#wppm_alert_error').slideDown('fast',function(){});
169 setTimeout(function(){ jQuery('#wppm_alert_error').slideUp('fast',function(){}); }, 3000);
170 }
171 });
172 }
173 </script>
174