PluginProbe
Taskbuilder – Project Management & Task Management Tool With Kanban Board / 2.0.7
Taskbuilder – Project Management & Task Management Tool With Kanban Board v2.0.7
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 / projects / projects_list.php

projects_list.php in Taskbuilder – Project Management & Task Management Tool With Kanban Board 2.0.7, at includes/admin/projects/projects_list.php

372 lines 23.5 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 global $wpdb,$wppmfunction,$current_user;
6 $status = $wpdb->get_results( "SELECT * FROM {$wpdb->prefix}wppm_project_statuses" );
7 $categories = $wpdb->get_results( "SELECT * FROM {$wpdb->prefix}wppm_project_categories" );
8 $proj_per_page = 20;
9 $page_no = (isset($_POST['page_no'])) ? intval(sanitize_text_field($_POST['page_no'])): '0';
10 $search_tag = isset($_POST['project_search']) ? sanitize_text_field($_POST['project_search']) : '';
11 $order = isset($_POST['order']) ? sanitize_text_field($_POST['order']) :"ASC";
12 $sort_by = isset($_POST['sort_by']) ? sanitize_text_field($_POST['sort_by']):"project_name";
13 $filter_by = isset($_POST['wppm_project_filter']) ? sanitize_text_field($_POST['wppm_project_filter']) : "all";
14 $current_date = date('Y-m-d');
15 $wppm_pl_filter = "1=1";
16 $filters = array(
17 'sort_by' => $sort_by,
18 'order' => $order,
19 'search' => $search_tag,
20 'filter'=>$filter_by
21 );
22 $pl_filters = isset( $_COOKIE['wppm_proj_filters'] ) ? sanitize_text_field( wp_unslash( $_COOKIE['wppm_proj_filters'] ) ) : $filters;
23 if(!is_array($pl_filters)){
24 $pl_filters = json_decode($pl_filters);
25 $pl_filters_arr = (array) $pl_filters;
26 } else{
27 $pl_filters_arr = $filters;
28 }
29 $search_tag = isset($_POST['project_search']) ? sanitize_text_field($_POST['project_search']) : $pl_filters_arr['search'];
30 $order = isset($_POST['order']) ? sanitize_text_field($_POST['order']) :$pl_filters_arr['order'];
31 $sort_by = isset($_POST['sort_by']) ? sanitize_text_field($_POST['sort_by']):$pl_filters_arr['sort_by'];
32 $filter_by = isset($_POST['wppm_project_filter']) ? sanitize_text_field($_POST['wppm_project_filter']) : $pl_filters_arr['filter'];
33 if($sort_by == ""){
34 $sort_by = 'project_name';
35 }
36 $filters = array(
37 'sort_by' => $sort_by,
38 'order' => $order,
39 'search'=>$search_tag,
40 'filter'=>$filter_by
41 );
42 setcookie('wppm_proj_filters',wp_json_encode( $filters ),time() + 3600);
43 if($pl_filters_arr['sort_by']=='status'){
44 $sort_by = 'proj_statuses.name';
45 }
46 if($pl_filters_arr['sort_by']=='category'){
47 $sort_by = 'proj_categories.name';
48 }
49 if($pl_filters_arr['sort_by']=='start_date'){
50 $sort_by = 'start_date';
51 }
52 if($pl_filters_arr['sort_by']=='end_date'){
53 $sort_by = 'end_date';
54 }
55 if($sort_by=='category'){
56 $sort_by = 'proj_categories.name';
57 }
58 if($filter_by=='completed'){
59 $wppm_pl_filter = "status='4'";
60 }elseif($filter_by=='overdue'){
61 $wppm_pl_filter = "status!='4' AND (CAST(end_date AS DATE)) < '$current_date'";
62 }elseif($filter_by == 'unassigned'){
63 $wppm_pl_filter = "users=''";
64 }elseif($filter_by == 'new'){
65 $wppm_pl_filter = "status='1'";
66 }elseif($filter_by == 'inprogress'){
67 $wppm_pl_filter = "status='2'";
68 }elseif($filter_by == 'hold'){
69 $wppm_pl_filter = "status='3'";
70 }elseif($filter_by == 'mine'){
71 $wppm_pl_filter = "(FIND_IN_SET('$current_user->ID',users)>0)";
72 }
73 $wppm_project_time = get_option('wppm_project_time');
74 $wppm_default_project_date = get_option('wppm_default_project_date');
75 $sort_by = apply_filters('wppm_project_list_sort_by_query',$sort_by);
76 $order = apply_filters('wppm_project_list_order_query',$order);
77 $search_tag_text = '%'.$search_tag.'%';
78 if(!empty($search_tag)){
79 $search_tag_text = '%'.$search_tag.'%';
80 $query = ("SELECT Project.*
81 FROM {$wpdb->prefix}wppm_project AS Project
82 Left join {$wpdb->prefix}wppm_project_statuses proj_statuses ON Project.status = proj_statuses.id
83 Left join {$wpdb->prefix}wppm_project_categories proj_categories ON Project.cat_id = proj_categories.id
84 Left join {$wpdb->base_prefix}users user ON (FIND_IN_SET(user.ID,Project.users)>0) AND (user.display_name LIKE '$search_tag_text')
85 Left join {$wpdb->prefix}wppm_project_meta proj_meta ON Project.id = proj_meta.project_id
86 ");
87 if($current_user->has_cap('manage_options')){
88 $where = " where $wppm_pl_filter AND (Project.project_name LIKE '$search_tag_text' OR proj_statuses.name LIKE '$search_tag_text' OR proj_categories.name LIKE '$search_tag_text' OR ( user.display_name LIKE '$search_tag_text'))";
89 }else{
90 $where = " where $wppm_pl_filter AND (Project.project_name LIKE '$search_tag_text' OR proj_statuses.name LIKE '$search_tag_text' OR proj_categories.name LIKE '$search_tag_text' OR ( user.display_name LIKE '$search_tag_text')) AND ((FIND_IN_SET('$current_user->ID',Project.users)>0) OR (Project.id = proj_meta.project_id AND proj_meta.meta_key='public_project' AND proj_meta.meta_value=1))";
91 }
92 }else{
93 if($sort_by=='project_name'|| $sort_by=='start_date' || $sort_by=='end_date'){
94 $query = ( "SELECT Project.* FROM {$wpdb->prefix}wppm_project AS Project
95 Left join {$wpdb->prefix}wppm_project_meta proj_meta ON Project.id = proj_meta.project_id
96 ");
97 } else{
98 $query = ( "SELECT Project.* FROM {$wpdb->prefix}wppm_project AS Project
99 Left join {$wpdb->prefix}wppm_project_statuses proj_statuses ON Project.status = proj_statuses.id
100 Left join {$wpdb->prefix}wppm_project_categories proj_categories ON Project.cat_id = proj_categories.id
101 Left join {$wpdb->prefix}wppm_project_meta proj_meta ON Project.id = proj_meta.project_id
102 ");
103 }
104 if($current_user->has_cap('manage_options')){
105 $where = " where $wppm_pl_filter";
106 }else{
107 $where = " where ($wppm_pl_filter AND (FIND_IN_SET('$current_user->ID',Project.users)>0 OR (Project.id = proj_meta.project_id AND proj_meta.meta_key='public_project' AND proj_meta.meta_value=1)))";
108 }
109 }
110 $no_of_rows = ( "SELECT count(*) FROM ($query");
111 $no_of_rows = apply_filters('wppm_project_list_no_of_rows',$no_of_rows,$wppm_pl_filter,$search_tag);
112 $where = apply_filters('wppm_project_list_query_where',$where, $wppm_pl_filter,$search_tag);
113 $query .= $where." Group by Project.id ORDER BY $sort_by $order";
114 $no_of_rows .= $where." Group by Project.id) AS Project";
115 $totalrows = $wpdb->get_var( $no_of_rows );
116 $query = apply_filters('wppm_project_list_query',$query);
117 $limit_start=$page_no*$proj_per_page;
118 $limit="\n LIMIT ".$limit_start.",".$proj_per_page." ";
119 $query = $query.$limit;
120 $wppm_fillter = $wpdb->get_results($query);
121 ?>
122 <form id="wppm_project_list_frm">
123 <div id="wppm_project_list_container" class="wppm_bootstrap">
124 <div class="row">
125 <div class="col-sm-6" id="wppm_heading_inline">
126 <span class="wppm-heading-inline">
127 <?php echo esc_html_e('Projects','taskbuilder');?>
128 </span>
129 <?php if($current_user->has_cap('manage_options')){ ?>
130 <img width="25" height="30" id="wppm_add_new_project_btn" class="wppm_add_new_project_btn" onclick="wppm_add_new_project()" src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/add.svg'); ?>" alt="add">
131 <?php } ?>
132 </div>
133 <div id="wppm_project_and_task_search" class="col-sm-6">
134 <img width="25px" id="wppm_project_search_filter_img" height="15px" src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/search.svg'); ?>" alt="search">
135 <input type="search" id="wppm_project_search_filter" name="wppm_project_search_filter" class="form-control form-control-sm" aria-controls="selection-datatable" placeholder="<?php echo esc_attr__('Search','taskbuilder');?>" value="<?php echo (!empty($search_tag)) ? esc_attr($search_tag) : "" ?>">
136 </div>
137 </div>
138 <div class="row">
139 <div class="col-sm-6" id="wppm_project_filter_container">
140 <div class="wppm-filter-item">
141 <label for="wppm_project_filter"> <?php echo esc_html_e('Filter','taskbuilder');?></label>
142 <select id="wppm_project_filter" name="wppm_project_filter" onchange="wppm_apply_project_filter()">
143 <option value="all"<?php echo ($filter_by == "all")? 'selected':""?>><?php echo esc_html_e('All','taskbuilder');?></option>
144 <option value="new" <?php echo ($filter_by == "new")? 'selected':""?>><?php echo esc_html_e('New','taskbuilder');?></option>
145 <option value="inprogress" <?php echo ($filter_by == "inprogress")? 'selected':""?>><?php echo esc_html_e('In Progress','taskbuilder');?></option>
146 <option value="hold" <?php echo ($filter_by == "hold")? 'selected':""?>><?php echo esc_html_e('Hold','taskbuilder');?></option>
147 <option value="completed" <?php echo ($filter_by == "completed")? 'selected':""?>><?php echo esc_html_e('Completed','taskbuilder');?></option>
148 <option value="mine" <?php echo ($filter_by == "mine")? 'selected':""?>><?php echo esc_html_e('Mine','taskbuilder');?></option>
149 <option value="unassigned" <?php echo ($filter_by == "unassigned")? 'selected':""?>><?php echo esc_html_e('Unassigned','taskbuilder');?></option>
150 <option value="overdue" <?php echo ($filter_by == "overdue")? 'selected':""?>><?php echo esc_html_e('Overdue','taskbuilder');?></option>
151 </select>
152 </div>
153 <div class="wppm_display_submit">
154 <div class="wppm-filter-actions">
155 <span class="wppm-link" onclick="wppm_pl_reset_filter()"> <?php echo esc_html_e('Reset','taskbuilder');?></span>
156 </div>
157 </div>
158 </div>
159 </div>
160 <div class="table-responsive">
161 <table id="wppm_project_table" class="wppm_table table">
162 <tr>
163 <th class="wppm_table_header">
164 <span id="wppm_proj_name_th"><?php echo esc_html_e('Project','taskbuilder'); ?></span>
165 <img width="16" height="16" onclick="wppm_sort_up_project_list('project_name','ASC')" style = "<?php echo ($sort_by == 'project_name' && $order == 'DESC') ? 'display:inline': 'display:none;'?>" class="wppm_chevron_img" id="wppm_chevron_sort_up_project_name_img" src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/sort_up_icon.svg'); ?>" alt="chevron_sort_up_icon">
166 <img width="16" height="16" onclick="wppm_sort_up_project_list('project_name','DESC')" style = "<?php echo ($sort_by == 'project_name' && $order == 'ASC') ? 'display:inline': 'display:none;'?>" class="wppm_chevron_img" id="wppm_chevron_sort_down_project_name_img" src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/sort_down_icon.svg'); ?>" alt="chevron_sort_down_icon">
167 </th>
168 <th class="wppm_table_header">
169 <span id="wppm_project_status_th"><?php echo esc_html_e('Status','taskbuilder'); ?></span>
170 <img width="16" height="16" onclick="wppm_sort_up_project_list('status','ASC')" style = "<?php echo ($sort_by == 'proj_statuses.name' && $order == 'DESC') ? 'display:inline': 'display:none;'?>" class="wppm_chevron_img" id="wppm_chevron_sort_up_project_status_img" src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/sort_up_icon.svg'); ?>" alt="chevron_sort_up_icon">
171 <img width="16" height="16" onclick="wppm_sort_up_project_list('status','DESC')" style = "<?php echo ($sort_by == 'proj_statuses.name' && $order == 'ASC') ? 'display:inline': 'display:none;'?>" class="wppm_chevron_img" id="wppm_chevron_sort_down_project_status_img" class="wppm_chevron_img" src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/sort_down_icon.svg'); ?>" alt="chevron_sort_down_icon">
172 </th>
173 <th class="wppm_table_header"><?php echo esc_html_e('Users','taskbuilder'); ?></th>
174 <th class="wppm_table_header">
175 <span id="wppm_project_category_th"><?php echo esc_html_e('Category','taskbuilder'); ?></span>
176 <img width="16" height="16" onclick="wppm_sort_up_project_list('category','ASC')" style = "<?php echo ($sort_by == 'proj_categories.name' && $order == 'DESC') ? 'display:inline': 'display:none;'?>" class="wppm_chevron_img" id="wppm_chevron_sort_up_project_cat_img" src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/sort_up_icon.svg'); ?>" alt="chevron_sort_up_icon">
177 <img width="16" height="16" onclick="wppm_sort_up_project_list('category','DESC')" style = "<?php echo ($sort_by == 'proj_categories.name' && $order == 'ASC') ? 'display:inline': 'display:none;'?>" class="wppm_chevron_img" id="wppm_chevron_sort_down_project_cat_img" class="wppm_chevron_img" src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/sort_down_icon.svg'); ?>" alt="chevron_sort_down_icon">
178 </th>
179 <?php if($wppm_default_project_date==1){ ?>
180 <th class="wppm_table_header">
181 <span id="wppm_project_start_date_th"><?php echo esc_html_e('Start Date','taskbuilder'); ?></span>
182 <img width="16" height="16" onclick="wppm_sort_up_project_list('start_date','ASC')" style = "<?php echo ($sort_by == 'start_date' && $order == 'DESC') ? 'display:inline': 'display:none;'?>" class="wppm_chevron_img" id="wppm_chevron_sort_up_project_start_date_img" src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/sort_up_icon.svg'); ?>" alt="chevron_sort_up_icon">
183 <img width="16" height="16" onclick="wppm_sort_up_project_list('start_date','DESC')" style = "<?php echo ($sort_by == 'start_date' && $order == 'ASC') ? 'display:inline': 'display:none;'?>" class="wppm_chevron_img" id="wppm_chevron_sort_down_project_start_date_img" class="wppm_chevron_img" src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/sort_down_icon.svg'); ?>" alt="chevron_sort_down_icon">
184 </th>
185 <th class="wppm_table_header">
186 <span id="wppm_project_end_date_th"><?php echo esc_html_e('End Date','taskbuilder'); ?></span>
187 <img width="16" height="16" onclick="wppm_sort_up_project_list('end_date','ASC')" style = "<?php echo ($sort_by == 'end_date' && $order == 'DESC') ? 'display:inline': 'display:none;'?>" class="wppm_chevron_img" id="wppm_chevron_sort_up_project_end_date_img" src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/sort_up_icon.svg'); ?>" alt="chevron_sort_up_icon">
188 <img width="16" height="16" onclick="wppm_sort_up_project_list('end_date','DESC')" style = "<?php echo ($sort_by == 'end_date' && $order == 'ASC') ? 'display:inline': 'display:none;'?>" class="wppm_chevron_img" id="wppm_chevron_sort_down_project_end_date_img" class="wppm_chevron_img" src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/sort_down_icon.svg'); ?>" alt="chevron_sort_down_icon">
189 </th>
190 <?php } ?>
191 <th class="wppm_table_header"><?php echo esc_html_e('No. of tasks','taskbuilder'); ?></th>
192 <th class="wppm_table_header"></th>
193 </tr>
194 <tbody>
195 <?php
196 $total_projects=0;
197 $users = array();
198 if(!empty($wppm_fillter)){
199 foreach( $wppm_fillter as $project ){
200 $total_projects++;
201 $status = $wpdb->get_row( "SELECT * FROM {$wpdb->prefix}wppm_project_statuses where id=$project->status" );
202 $users = explode(",",$project->users);
203 if(isset($project->cat_id)){
204 $category = $wpdb->get_var( "SELECT name FROM {$wpdb->prefix}wppm_project_categories where id=$project->cat_id" );
205 }
206 if(isset($project->id)){
207 if($current_user->has_cap('manage_options')){
208 $no_of_tasks = $wpdb->get_var("SELECT count(*) FROM {$wpdb->prefix}wppm_task WHERE project=$project->id ");
209 }else{
210 $query =("SELECT count(*) FROM
211 ( SELECT Task.*
212 FROM {$wpdb->prefix}wppm_task AS Task
213 Left join {$wpdb->prefix}wppm_project proj ON Task.project = proj.id
214 Left join {$wpdb->prefix}wppm_project_users proj_users ON Task.project = proj_users.proj_id
215 Left join {$wpdb->prefix}wppm_project_meta proj_meta ON proj.id = proj_meta.project_id
216 where Task.project = $project->id AND ((FIND_IN_SET('$current_user->ID',Task.users)>0) OR (Task.created_by= '$current_user->ID') OR (proj_users.user_id = '$current_user->ID' AND proj_users.role_id = 1 ) OR (proj.id = proj_meta.project_id AND proj_meta.meta_key='public_project' AND proj_meta.meta_value=1)) Group by Task.id ) AS Task");
217 $no_of_tasks = $wpdb->get_var($query);
218 }
219 }
220 if($wppm_project_time == 1){
221 $proj_start_date = $project->start_date;
222 $proj_end_date = $project->end_date;
223 } elseif($wppm_project_time == 0){
224 $psDate = new DateTime($project->start_date);
225 $peDate = new DateTime($project->end_date);
226 $proj_start_date = $psDate->format('Y-m-d');
227 $proj_end_date = $peDate->format('Y-m-d');
228 }
229 ?>
230 <tr onclick="wppm_open_project(<?php echo esc_attr($project->id) ?>)">
231 <td><?php echo esc_html_e($project->project_name,'taskbuilder') ?></td>
232 <td><span class="wppm_td_project_status" style="background-color:<?php echo esc_attr($status->bg_color);?>; color: <?php echo esc_attr($status->color); ?>"><?php echo esc_html_e($status->name,'taskbuilder') ?></span></td>
233 <td>
234 <?php
235 $i=0;
236 if(!empty(array_filter($users))){
237 foreach($users as $user){
238 $i++;
239 if( $i <= 4 ){
240 $user_info = get_user_by('id', $user );
241 if(!empty($user_info)){
242 ?>
243 <a href="#" title="<?php echo esc_html_e($user_info->display_name) ?>">
244 <?php echo get_avatar($user_info->ID, 25, "mysteryman");?>
245 </a> <?php
246 }
247 }
248 }
249 } else{
250 _e('None','wp_projects');
251 }
252 if($i > 4){
253 ?>
254 <a href="#" class="wppm_avatar">
255 <span id="wppm_avatar" style="background-color:black;" class="avatar">+<?php echo esc_html($i-4) ?></span>
256 </a>
257 <?php } ?>
258 </td>
259 <td class="wppm_table_td"><?php echo isset($category) ? esc_html_e($category,'taskbuilder'): "" ?></td>
260 <?php if($wppm_default_project_date==1){ ?>
261 <td class="wppm_table_td"><?php echo isset($proj_start_date) ? esc_html($proj_start_date): "" ?></td>
262 <td class="wppm_table_td"><?php echo isset($proj_end_date) ? esc_html($proj_end_date):"" ?></td>
263 <?php } ?>
264 <td class="wppm_table_td"><?php echo isset($no_of_tasks) ? esc_html($no_of_tasks):"" ?></td>
265 <td class="wppm_delete_action">
266 <?php $style = (($current_user->ID && $current_user->has_cap('manage_options')) || ($wppmfunction->has_project_permission('delete_project',esc_attr($project->id))))? "display:inline":"display:none"; ?>
267 <span style="<?php echo esc_attr($style); ?>" onclick="wppm_delete_project(<?php echo esc_attr($project->id) ?>)"><img src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/trash.svg'); ?>" alt="delete"></span>
268 <?php ?>
269 </td>
270 </tr>
271 <?php
272 }
273 }
274 ?>
275 </tbody>
276 </table>
277 <?php
278 $total_pages=ceil($totalrows/$proj_per_page);
279 $current_page=$page_no+1;
280 $prev_page_no=$current_page-1;
281 $prev_class=($prev_page_no==0)?'disabled':'';
282 $next_page_no=($total_pages==$current_page)? $current_page-1:$current_page;
283 $next_class=($total_pages==$current_page)?'disabled':'';
284 ?>
285 <div class="wppm_project_result" style="<?php echo esc_attr($total_pages==0)? '':'display: none;';?>"><?php echo esc_html_e('Your search request returned no results.','taskbuilder');?></div>
286 <hr style="<?php echo esc_attr($total_pages==0)? '':'display: none;';?>">
287 </div>
288 <div class="row wppm_proj_pagination_container">
289 <div class="col-sm-4">
290 <?php echo esc_html_e('Total:','taskbuilder'); ?>&nbsp;<?php echo esc_html($total_projects) ?>&nbsp;<?php echo esc_html_e('of','taskbuilder') ?>&nbsp;<?php echo esc_html($totalrows) ?>&nbsp;<?php echo esc_html_e('Projects','taskbuilder')?>
291 </div>
292 <div class="col-sm-4">
293 <div class="wppm_proj_pagination" style="<?php echo esc_attr($total_pages==0)? "display:none;":"display:flex;"?>">
294 <span class="wppm-pagination-txt">
295 <span><?php echo esc_html($current_page); ?>&nbsp;<?php echo esc_html_e('of','taskbuilder');?>&nbsp;<?php echo esc_html($total_pages); ?>&nbsp;<?php echo esc_html_e('Page','taskbuilder'); ?></span>
296 </span>
297 <span
298 <?php echo esc_html($prev_class) ?>
299 style="<?php echo (isset($prev_class) && esc_attr($prev_class) == 'disabled') ? 'display:none;':'display:block;'?>">
300 <a class="wppm_pagination_prev" onclick="return wppm_load_prev_page(<?php echo esc_attr($prev_page_no) ?>,<?php echo esc_attr($page_no) ?>,'<?php echo esc_attr($sort_by)?>','<?php echo esc_attr($order) ?>');"><?php echo esc_html_e('PREV','taskbuilder');?></a>
301 </span>
302 <span
303 <?php echo esc_attr($next_class) ?>
304 style="<?php echo (isset($next_class) && $next_class == 'disabled')?'display:none;':'display:block;'?>cursor:pointer;">
305 <a class="wppm_pagination_next" onclick="return wppm_load_next_page('<?php echo esc_attr($next_page_no) ?>','<?php echo esc_attr($page_no) ?>','<?php echo esc_attr($sort_by)?>','<?php echo esc_attr($order) ?>');"><?php echo esc_html_e('NEXT','taskbuilder');?></a>
306 </span>
307 </div>
308 </div>
309 </div>
310 </div>
311 </form>
312 <script type="text/javascript">
313 jQuery( document ).ready( function( jQuery ) {
314 jQuery("input[name='wppm_project_search_filter']").keypress(function(e) {
315 //Enter key
316 if (e.which == 13) {
317 wppm_project_search_filter();
318 }
319 });
320 jQuery("#wppm_proj_name_th").hover(function(){
321 jQuery('#wppm_chevron_sort_up_project_name_img').show();
322 jQuery('#wppm_chevron_sort_down_project_name_img').hide();
323 });
324 jQuery("#wppm_project_status_th").hover(function(){
325 jQuery('#wppm_chevron_sort_up_project_status_img').show();
326 jQuery('#wppm_chevron_sort_down_project_status_img').hide();
327 });
328 jQuery("#wppm_project_category_th").hover(function(){
329 jQuery('#wppm_chevron_sort_up_project_cat_img').show();
330 jQuery('#wppm_chevron_sort_down_project_cat_img').hide();
331 });
332 jQuery("#wppm_project_start_date_th").hover(function(){
333 jQuery('#wppm_chevron_sort_up_project_start_date_img').show();
334 jQuery('#wppm_chevron_sort_down_project_start_date_img').hide();
335 });
336 jQuery("#wppm_project_end_date_th").hover(function(){
337 jQuery('#wppm_chevron_sort_up_project_end_date_img').show();
338 jQuery('#wppm_chevron_sort_down_project_end_date_img').hide();
339 });
340 jQuery(".wppm_delete_action").on("click", function(e){
341 e.preventDefault();
342 return false;
343 });
344
345 jQuery('#wppm_project_list_frm').on('submit', function (e) {
346 var dataform = new FormData(jQuery('#wppm_project_list_frm')[0]);
347 jQuery.ajax({
348 url: wppm_admin.ajax_url,
349 type: 'POST',
350 data: dataform,
351 processData: false,
352 contentType: false,
353 success: function () {
354 alert('form was submitted');
355 }
356 });
357 });
358 });
359 </script>
360 <?php
361 add_action('wp_footer', 'wppm_page_inline_script', 999999999999999999);
362 do_action('wppm_after_shortcode_loaded');
363 if(!function_exists('wppm_page_inline_script')) {
364 function wppm_page_inline_script() { ?>
365 <script type="text/javascript">
366 jQuery( document ).ready( function( jQuery ) {
367 wppm_get_project_list();
368 });
369 </script>
370 <?php }
371 }
372 ?>