PluginProbe
Taskbuilder – Project Management & Task Management Tool With Kanban Board / 6.0.2
Taskbuilder – Project Management & Task Management Tool With Kanban Board v6.0.2
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 / admin / settings / wppm_get_proj_status_settings.php

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

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