PluginProbe
Taskbuilder – Project Management & Task Management Tool With Kanban Board / 2.0.8
Taskbuilder – Project Management & Task Management Tool With Kanban Board v2.0.8
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
← All changes | includes/admin/projects/projects_list.php +176 -52 1.0.42.0.8 View file →
@@ -7,56 +7,112 @@
7 7 $categories = $wpdb->get_results( "SELECT * FROM {$wpdb->prefix}wppm_project_categories" );
8 8 $proj_per_page = 20;
9 9 $page_no = (isset($_POST['page_no'])) ? intval(sanitize_text_field($_POST['page_no'])): '0';
10 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 +}
11 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.'%';
12 78 if(!empty($search_tag)){
13 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 + ");
14 87 if($current_user->has_cap('manage_options')){
15 - $query = ("SELECT Project.*
16 - FROM {$wpdb->prefix}wppm_project AS Project
17 - Left join {$wpdb->prefix}wppm_project_statuses proj_statuses ON Project.status = proj_statuses.id
18 - Left join {$wpdb->prefix}wppm_project_categories proj_categories ON Project.cat_id = proj_categories.id
19 - Left join {$wpdb->base_prefix}users user ON (FIND_IN_SET(user.ID,Project.users)>0) AND (user.display_name LIKE '$search_tag_text')
20 - where 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')
21 - Group by Project.id");
22 - $no_of_rows = ("SELECT count(*) FROM
23 - (SELECT Project.*
24 - FROM {$wpdb->prefix}wppm_project AS Project
25 - Left join {$wpdb->prefix}wppm_project_statuses proj_statuses ON Project.status = proj_statuses.id
26 - Left join {$wpdb->prefix}wppm_project_categories proj_categories ON Project.cat_id = proj_categories.id
27 - Left join {$wpdb->base_prefix}users user ON (FIND_IN_SET(user.ID,Project.users)>0) AND (user.display_name LIKE '$search_tag_text')
28 - where 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') Group by Project.id) AS Project" );
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'))";
29 89 }else{
30 - $query = ("SELECT Project.*
31 - FROM {$wpdb->prefix}wppm_project AS Project
32 - Left join {$wpdb->prefix}wppm_project_statuses proj_statuses ON Project.status = proj_statuses.id
33 - Left join {$wpdb->prefix}wppm_project_categories proj_categories ON Project.cat_id = proj_categories.id
34 - Left join {$wpdb->base_prefix}users user ON (FIND_IN_SET(user.ID,Project.users)>0) AND (user.display_name LIKE '$search_tag_text')
35 - where (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)
36 - Group by Project.id");
37 - $no_of_rows = ("SELECT count(*) FROM
38 - (SELECT Project.*
39 - FROM {$wpdb->prefix}wppm_project AS Project
40 - Left join {$wpdb->prefix}wppm_project_statuses proj_statuses ON Project.status = proj_statuses.id
41 - Left join {$wpdb->prefix}wppm_project_categories proj_categories ON Project.cat_id = proj_categories.id
42 - Left join {$wpdb->base_prefix}users user ON (FIND_IN_SET(user.ID,Project.users)>0) AND (user.display_name LIKE '$search_tag_text')
43 - where (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) Group by Project.id) AS Project" );
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))";
44 91 }
45 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 + }
46 104 if($current_user->has_cap('manage_options')){
47 - $query = ( "SELECT * FROM {$wpdb->prefix}wppm_project" );
48 - $no_of_rows = ( "SELECT count(*) FROM {$wpdb->prefix}wppm_project" );
105 + $where = " where $wppm_pl_filter";
49 106 }else{
50 - $query = ( "SELECT * FROM {$wpdb->prefix}wppm_project
51 - where (FIND_IN_SET('$current_user->ID',users)>0)
52 - ");
53 - $no_of_rows = ( "SELECT count(*) FROM {$wpdb->prefix}wppm_project
54 - where (FIND_IN_SET('$current_user->ID',users)>0)
55 - ");
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)))";
56 108 }
57 109 }
58 -$no_of_rows = apply_filters('wppm_project_list_no_of_rows',$no_of_rows);
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";
59 115 $totalrows = $wpdb->get_var( $no_of_rows );
60 116 $query = apply_filters('wppm_project_list_query',$query);
61 117 $limit_start=$page_no*$proj_per_page;
62 118 $limit="\n LIMIT ".$limit_start.",".$proj_per_page." ";
@@ -78,17 +134,61 @@
78 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">
79 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) : "" ?>">
80 136 </div>
81 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>
82 160 <div class="table-responsive">
83 161 <table id="wppm_project_table" class="wppm_table table">
84 162 <tr>
85 - <th class="wppm_table_header"><?php echo esc_html_e('Project','taskbuilder'); ?></th>
86 - <th class="wppm_table_header"><?php echo esc_html_e('Status','taskbuilder'); ?></th>
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>
87 173 <th class="wppm_table_header"><?php echo esc_html_e('Users','taskbuilder'); ?></th>
88 - <th class="wppm_table_header"><?php echo esc_html_e('Category','taskbuilder'); ?></th>
89 - <th class="wppm_table_header" ><?php echo esc_html_e('Start Date','taskbuilder'); ?></th>
90 - <th class="wppm_table_header"><?php echo esc_html_e('End Date','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 } ?>
91 191 <th class="wppm_table_header"><?php echo esc_html_e('No. of tasks','taskbuilder'); ?></th>
92 192 <th class="wppm_table_header"></th>
93 193 </tr>
94 194 <tbody>
@@ -111,9 +211,10 @@
111 211 ( SELECT Task.*
112 212 FROM {$wpdb->prefix}wppm_task AS Task
113 213 Left join {$wpdb->prefix}wppm_project proj ON Task.project = proj.id
114 214 Left join {$wpdb->prefix}wppm_project_users proj_users ON Task.project = proj_users.proj_id
115 - 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 ))Group by Task.id ) AS Task");
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");
116 217 $no_of_tasks = $wpdb->get_var($query);
117 218 }
118 219 }
119 220 if($wppm_project_time == 1){
@@ -119,12 +220,12 @@
119 220 if($wppm_project_time == 1){
120 221 $proj_start_date = $project->start_date;
121 222 $proj_end_date = $project->end_date;
122 223 } elseif($wppm_project_time == 0){
123 - $psDate = new DateTime($project->start_date);
124 - $peDate = new DateTime($project->end_date);
125 - $proj_start_date = $psDate->format('Y-m-d');
126 - $proj_end_date = $peDate->format('Y-m-d');
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');
127 228 }
128 229 ?>
129 230 <tr onclick="wppm_open_project(<?php echo esc_attr($project->id) ?>)">
130 231 <td><?php echo esc_html_e($project->project_name,'taskbuilder') ?></td>
@@ -155,10 +256,13 @@
155 256 </a>
156 257 <?php } ?>
157 258 </td>
158 259 <td class="wppm_table_td"><?php echo isset($category) ? esc_html_e($category,'taskbuilder'): "" ?></td>
159 - <td class="wppm_table_td"><?php echo isset($proj_start_date) ? esc_html($proj_start_date): "" ?></td>
160 - <td class="wppm_table_td"><?php echo isset($proj_end_date) ? esc_html($proj_end_date):"" ?></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 + <?php $style = ($project->status!=4 && $proj_end_date < $current_date) ? "color:#FF0000":"color:#2C3E50"; ?>
263 + <td class="wppm_table_td"><span style="<?php echo esc_attr($style); ?>"><?php echo isset($proj_end_date) ? esc_html($proj_end_date):"" ?></td></span>
264 + <?php } ?>
161 265 <td class="wppm_table_td"><?php echo isset($no_of_tasks) ? esc_html($no_of_tasks):"" ?></td>
162 266 <td class="wppm_delete_action">
163 267 <?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"; ?>
164 268 <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>
@@ -193,14 +297,14 @@
193 297 </span>
194 298 <span
195 299 <?php echo esc_html($prev_class) ?>
196 300 style="<?php echo (isset($prev_class) && esc_attr($prev_class) == 'disabled') ? 'display:none;':'display:block;'?>">
197 - <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_html_e('PREV','taskbuilder');?></a>
301 + <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>
198 302 </span>
199 303 <span
200 304 <?php echo esc_attr($next_class) ?>
201 305 style="<?php echo (isset($next_class) && $next_class == 'disabled')?'display:none;':'display:block;'?>cursor:pointer;">
202 - <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($limit_start)?>);"><?php echo esc_html_e('NEXT','taskbuilder');?></a>
306 + <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>
203 307 </span>
204 308 </div>
205 309 </div>
206 310 </div>
@@ -213,8 +317,28 @@
213 317 if (e.which == 13) {
214 318 wppm_project_search_filter();
215 319 }
216 320 });
321 + jQuery("#wppm_proj_name_th").hover(function(){
322 + jQuery('#wppm_chevron_sort_up_project_name_img').show();
323 + jQuery('#wppm_chevron_sort_down_project_name_img').hide();
324 + });
325 + jQuery("#wppm_project_status_th").hover(function(){
326 + jQuery('#wppm_chevron_sort_up_project_status_img').show();
327 + jQuery('#wppm_chevron_sort_down_project_status_img').hide();
328 + });
329 + jQuery("#wppm_project_category_th").hover(function(){
330 + jQuery('#wppm_chevron_sort_up_project_cat_img').show();
331 + jQuery('#wppm_chevron_sort_down_project_cat_img').hide();
332 + });
333 + jQuery("#wppm_project_start_date_th").hover(function(){
334 + jQuery('#wppm_chevron_sort_up_project_start_date_img').show();
335 + jQuery('#wppm_chevron_sort_down_project_start_date_img').hide();
336 + });
337 + jQuery("#wppm_project_end_date_th").hover(function(){
338 + jQuery('#wppm_chevron_sort_up_project_end_date_img').show();
339 + jQuery('#wppm_chevron_sort_down_project_end_date_img').hide();
340 + });
217 341 jQuery(".wppm_delete_action").on("click", function(e){
218 342 e.preventDefault();
219 343 return false;
220 344 });
@@ -234,9 +358,9 @@
234 358 });
235 359 });
236 360 </script>
237 361 <?php
238 -add_action('wp_footer', 'wppm_page_inline_script', 99999999999999999999);
362 +add_action('wp_footer', 'wppm_page_inline_script', 999999999999999999);
239 363 do_action('wppm_after_shortcode_loaded');
240 364 if(!function_exists('wppm_page_inline_script')) {
241 365 function wppm_page_inline_script() { ?>
242 366 <script type="text/javascript">