PluginProbe
Taskbuilder – Project Management & Task Management Tool With Kanban Board / 5.0.4
Taskbuilder – Project Management & Task Management Tool With Kanban Board v5.0.4
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 / tasks / open_task / wppm_edit_task_details.php

wppm_edit_task_details.php in Taskbuilder – Project Management & Task Management Tool With Kanban Board 5.0.4, at includes/admin/tasks/open_task/wppm_edit_task_details.php

198 lines 8.6 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 global $wpdb,$wppmfunction,$current_user;
7 $task_id = isset($_POST['task_id']) ? intval(sanitize_text_field(wp_unslash($_POST['task_id']))) : '' ;
8 $proj_id = isset($_POST['proj_id']) ? intval(sanitize_text_field(wp_unslash($_POST['proj_id']))) : '' ;
9 if (!(($current_user->ID && $current_user->has_cap('manage_options')) || $wppmfunction->has_permission('change_task_details',$task_id))) {exit;}
10 $task_data = $wppmfunction->get_task($task_id);
11 $settings = get_option("wppm-ap-modal");
12 $orderby_proj_sql = (sanitize_sql_orderby( "project_name" ));
13 $project_data = $wppmfunction->get_project(intval(sanitize_text_field($task_data['project'])));
14 if($current_user->has_cap('manage_options')){
15 $projects = $wpdb->get_results("SELECT * FROM {$wpdb->prefix}wppm_project ORDER BY $orderby_proj_sql");
16 }else{
17 $sql = $wpdb->prepare(
18 "SELECT Proj.*
19 FROM {$wpdb->prefix}wppm_project AS Proj
20 LEFT JOIN {$wpdb->prefix}wppm_project_meta AS proj_meta
21 ON Proj.id = proj_meta.project_id
22 WHERE FIND_IN_SET(%d, Proj.users)
23 OR (proj_meta.meta_key = 'public_project' AND proj_meta.meta_value = 1)
24 GROUP BY Proj.id",
25 $current_user->ID
26 );
27 // 4️⃣ Append ORDER BY (safe because we whitelisted columns)
28 $sql .= " ORDER BY $orderby_proj_sql";
29
30 // 5️⃣ Execute
31 $projects = $wpdb->get_results($sql);
32 }
33 $priority_id = sanitize_text_field($task_data['priority']);
34 $project_id = sanitize_text_field($task_data['project']);
35
36 $priorities = $wpdb->get_results("SELECT * FROM {$wpdb->prefix}wppm_task_priorities");
37 ob_start();
38 ?>
39 <form id="frm_get_edit_task_deatils" method="post">
40 <div class="row" style="padding-left:2px;">
41 <div class="col-sm-12">
42 <label class="wppm_edit_task_label" for="wppm_edit_task_label"><?php echo esc_html_e('Task','taskbuilder') ?> </label>
43 </div>
44 </div>
45 <div class="row" style="padding-left:2px;">
46 <div class="col-sm-12">
47 <input type="text" class="wppm_edit_task_label form-control" name="wppm_edit_task_label" id="wppm_edit_task_label" value="<?php echo isset($task_data['task_name']) ? esc_attr($task_data['task_name']) :"" ?>">
48 </div>
49 </div>
50 <div class="row" style="padding-left:2px;">
51 <div class="col-sm-12">
52 <label class="wppm_edit_project_label" for="wppm_edit_project_label"><?php esc_html_e('Project:','taskbuilder') ?> </label>
53 </div>
54 </div>
55 <div class="row" style="padding-left:2px;padding-bottom: 10px;">
56 <div class="col-sm-12">
57 <select searchable="search here" onchange="wppm_select_project()" class="form-control" size="40" name="wppm_task_project" id="wppm_task_project">
58 <?php
59 if(!empty($projects)){
60 foreach($projects as $proj) {
61 ?>
62 <option <?php echo esc_attr($proj->id)==esc_attr($project_id) ?'selected="selected"':''?> value="<?php echo esc_attr($proj->id)?>"><?php echo esc_html($proj->project_name);?></option>
63 <?php }
64 } ?>
65 </select>
66 </div>
67 </div>
68 <div class="row" style="padding-left:2px;">
69 <div class="col-sm-12">
70 <label class="wppm_edit_task_start_date" for="wppm_edit_task_start_date"><?php echo esc_html_e('Start Date','taskbuilder') ?> </label>
71 </div>
72 </div>
73 <div class="row" style="padding-left:2px;">
74 <div class="col-sm-12">
75 <input name="wppm_edit_task_start_date" class="form-control" id="wppm_edit_task_start_date" type="text" value="<?php echo isset($task_data['start_date'])? esc_attr($task_data['start_date']):""?>" size="40" aria-required="true"><br>
76 </div>
77 </div>
78 <div class="row" style="padding-left:2px;">
79 <div class="col-sm-12">
80 <label class="wppm_edit_task_end_date" for="wppm_edit_task_end_date"><?php echo esc_html_e('End Date','taskbuilder') ?> </label>
81 </div>
82 </div>
83 <div class="row" style="padding-left:2px;">
84 <div class="col-sm-12">
85 <input name="wppm_edit_task_end_date" class="form-control" id="wppm_edit_task_end_date" type="text" value="<?php echo isset($task_data['end_date']) ? esc_attr($task_data['end_date']):"" ?>" size="40" aria-required="true"><br>
86 </div>
87 </div>
88 <div class="row" style="padding-left:2px;">
89 <div class="col-sm-12">
90 <label class="wppm_edit_task_priority_label" for="wppm_edit_task_priority_label" id="wppm_edit_task_priority_label"><?php echo esc_html_e('Task Priority','taskbuilder');?></label>
91 </div>
92 </div>
93 <div class="row" style="padding-left:2px;">
94 <div class="col-sm-12">
95 <select class="form-control" name="wppm_edit_task_priority" id="wppm_edit_task_priority">
96 <option></option>
97 <?php
98 if(!empty($priorities)){
99 foreach ( $priorities as $priority ) :
100 $selected = $priority_id == $priority->id ? 'selected="selected"' : '';
101 echo '<option '.esc_attr($selected).' value="'.esc_attr($priority->id).'">'.esc_html($priority->name).'</option>';
102 endforeach;
103 }
104 ?>
105 </select>
106 </div>
107 </div>
108 <div class="row" style="padding-left:2px;">
109 <div class="col-sm-12">
110 <label class="wppm_edit_task_description_label" id="wppm_edit_task_description_label">
111 <?php echo esc_html_e('Description','taskbuilder');?>
112 </label>
113 </div>
114 </div>
115 <div class="row" style="padding-left:2px;">
116 <div class="col-sm-12">
117 <textarea id="wppm_edit_task_description" class="form-control" name="wppm_edit_task_description">
118 <?php echo !empty($task_data['description']) ? wp_kses_post(wpautop($task_data['description'])) :""?>
119 </textarea>
120 </div>
121 </div>
122 <?php do_action('wppm_edit_task_details',$task_id,$project_id);?>
123 <input type="hidden" name="action" value="wppm_set_change_task_details" />
124 <input type="hidden" name="_ajax_nonce" value="<?php echo esc_attr(wp_create_nonce('wppm_set_change_task_details'))?>">
125 <input type="hidden" name="user_id" id="user_id" value="">
126 <input type="hidden" name="task_id" value="<?php echo esc_attr($task_id) ?>" />
127 </form>
128 <style>
129 .select2-results__options {
130 color:<?php echo esc_attr( $settings['body-text-color'])?>!important;
131 }
132 </style>
133 <script>
134 jQuery( document ).ready( function( jQuery ) {
135 wppm_select_project();
136 jQuery("#wppm_edit_task_start_date").flatpickr({
137 enableTime: true,
138 dateFormat: "Y-m-d H:i",
139 });
140 jQuery("#wppm_edit_task_end_date").flatpickr({
141 enableTime: true,
142 dateFormat: "Y-m-d H:i"
143 //minDate: startdate
144 });
145 tinymce.remove();
146 tinymce.init({
147 selector:'#wppm_edit_task_description',
148 body_id: 'wppm_edit_task_description',
149 directionality : '<?php //echo 'rtl'; ?>',
150 menubar: false,
151 statusbar: false,
152 height : '200',
153 width : '100%',
154 plugins: [
155 'lists link image directionality paste'
156 ],
157 image_advtab: true,
158 toolbar: 'bold italic underline blockquote | alignleft aligncenter alignright | bullist numlist | rtl | link image',
159 branding: false,
160 autoresize_bottom_margin: 20,
161 browser_spellcheck : true,
162 relative_urls : false,
163 remove_script_host : false,
164 convert_urls : true,
165 paste_as_text: true,
166 content_style:
167 `body {
168 color:<?php echo esc_attr( $settings['body-text-color'])?>!important;
169 }`,
170 setup: function (editor) {
171 }
172 });
173 });
174 jQuery('#wppm_task_project').select2();
175 function wppm_select_project(){
176 jQuery('.wppm_filter_display_element').hide();
177 <?php do_action('wppm_display_cf_by_project_in_edit_task_details') ?>
178 }
179 jQuery('#wppm_edit_project_label').select2();
180
181 </script>
182 <?php
183 $body = ob_get_clean();
184
185 ob_start();
186 ?>
187 <button type="button" class="btn <?php echo ($proj_id!="0") ? 'wppm_popup_close': 'wppm_task_popup_close' ?> " onclick="<?php echo ($proj_id!=0) ? "wppm_modal_close()":"wppm_task_modal_close()"?>"><?php echo esc_html_e('Close','taskbuilder');?></button>
188 <button type="button" class="btn <?php echo ($proj_id!="0") ? 'wppm_popup_action': 'wppm_task_popup_action' ?> " onclick="wppm_set_change_task_details(<?php echo esc_attr($task_id)?>,<?php echo esc_attr($proj_id) ?>);"><?php echo esc_html_e('Save','taskbuilder');?></button>
189 <?php
190 $footer = ob_get_clean();
191
192 $output = array(
193 'body' => $body,
194 'footer' => $footer
195 );
196 echo wp_json_encode( $output );
197 ?>
198