PluginProbe
Taskbuilder – Project Management & Task Management Tool With Kanban Board / 4.0.6
Taskbuilder – Project Management & Task Management Tool With Kanban Board v4.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 1.0.6 All 57 releases
← All changes | includes/admin/projects/projects_list.php +75 -148 6.0.24.0.6 View file →
@@ -6,19 +6,16 @@
6 6 $status = $wpdb->get_results( "SELECT * FROM {$wpdb->prefix}wppm_project_statuses" );
7 7 $categories = $wpdb->get_results( "SELECT * FROM {$wpdb->prefix}wppm_project_categories" );
8 8 $appearance_settings = get_option("wppm-ap-project-list");
9 9 $wppm_date_setting = get_option('wppm_date_setting');
10 -$wppm_deafault_time_duration_project = get_option('wppm_display_time_duration_project');
11 10 $wppm_current_user_capability = get_user_meta( $current_user->ID, 'wppm_capability', true );
12 11 $proj_per_page = 20;
13 12 $page_no = (isset($_POST['page_no'])) ? intval(sanitize_text_field($_POST['page_no'])): '0';
14 -$page = isset($_POST['page']) ? sanitize_text_field(wp_unslash($_POST['page'])):"";
15 13 $search_tag = isset($_POST['project_search']) ? sanitize_text_field($_POST['project_search']) : '';
16 14 $order = isset($_POST['order']) ? sanitize_text_field($_POST['order']) :"ASC";
17 15 $sort_by = isset($_POST['sort_by']) ? sanitize_text_field($_POST['sort_by']):"project_name";
18 16 $filter_by = isset($_POST['wppm_project_filter']) ? sanitize_text_field($_POST['wppm_project_filter']) : "all";
19 -$is_archieved = !empty($_POST['is_archieved']) ? 1 : 0;
20 -$current_date = wp_date('Y-m-d');
17 +$current_date = date('Y-m-d');
21 18 $wppm_pl_filter = "1=1";
22 19 $wppm_hide_completed_status_proj = get_option('wppm_hide_completed_status_proj');
23 20 $cu_id = esc_sql($current_user->ID);
24 21 $wppm_hide_proj_statuses_from_frontend = get_option('wppm_hide_proj_statuses_from_frontend');
@@ -53,26 +50,23 @@
53 50 'search'=>$search_tag,
54 51 'filter'=>$filter_by
55 52 );
56 53 setcookie('wppm_proj_filters',wp_json_encode( $filters ),time() + 3600);
57 -
58 -$allowed_sort_by = [
59 - 'project_name' => 'project_name',
60 - 'status' => 'proj_statuses.name',
61 - 'category' => 'proj_categories.name',
62 - 'start_date' => 'start_date',
63 - 'end_date' => 'end_date',
64 - 'TIMESTAMPDIFF(SECOND, start_date, end_date)'=> 'TIMESTAMPDIFF(SECOND, start_date, end_date)'
65 -];
66 -// Resolve sort_by safely
67 -$sort_key = isset($pl_filters_arr['sort_by'])
68 - ? sanitize_text_field($pl_filters_arr['sort_by'])
69 - : 'project_name';
70 -
71 -$sort_by = $allowed_sort_by[$sort_key] ?? 'project_name';
72 -$order = ( isset($pl_filters_arr['order']) && strtoupper($pl_filters_arr['order']) === 'ASC' )
73 - ? 'ASC'
74 - : 'DESC';
54 +if($pl_filters_arr['sort_by']=='status'){
55 + $sort_by = 'proj_statuses.name';
56 +}
57 +if($pl_filters_arr['sort_by']=='category'){
58 + $sort_by = 'proj_categories.name';
59 +}
60 +if($pl_filters_arr['sort_by']=='start_date'){
61 + $sort_by = 'start_date';
62 +}
63 +if($pl_filters_arr['sort_by']=='end_date'){
64 + $sort_by = 'end_date';
65 +}
66 +if($sort_by=='category'){
67 + $sort_by = 'proj_categories.name';
68 +}
75 69 if($filter_by=='all'){
76 70 if($wppm_hide_completed_status_proj == 0){
77 71 $wppm_pl_filter = "status!='4'";
78 72 }
@@ -97,94 +91,51 @@
97 91 foreach($wppm_hide_proj_statuses_from_frontend as $status){
98 92 $wppm_pl_filter .= " AND status != '$status'";
99 93 }
100 94 }
95 +
101 96 $wppm_project_time = get_option('wppm_project_time');
102 97 $wppm_default_project_date = get_option('wppm_default_project_date');
103 98 $sort_by = apply_filters('wppm_project_list_sort_by_query',$sort_by);
104 99 $order = apply_filters('wppm_project_list_order_query',$order);
105 100 $search_tag_text = '%'.$wpdb->esc_like($search_tag).'%';
106 -if (!empty($search_tag)) {
107 - $search_tag_text = '%' . $wpdb->esc_like($search_tag) . '%';
108 - $query = "SELECT Project.*
109 - FROM {$wpdb->prefix}wppm_project AS Project
110 - LEFT JOIN {$wpdb->prefix}wppm_project_statuses proj_statuses ON Project.status = proj_statuses.id
111 - LEFT JOIN {$wpdb->prefix}wppm_project_categories proj_categories ON Project.cat_id = proj_categories.id
112 - LEFT JOIN {$wpdb->base_prefix}users user ON FIND_IN_SET(user.ID, Project.users) > 0
113 - LEFT JOIN {$wpdb->prefix}wppm_project_meta proj_meta ON Project.id = proj_meta.project_id";
114 - // SAFE search condition
115 - $search_sql = $wpdb->prepare(
116 - "(Project.project_name LIKE %s
117 - OR proj_statuses.name LIKE %s
118 - OR proj_categories.name LIKE %s
119 - OR user.display_name LIKE %s)",
120 - $search_tag_text,
121 - $search_tag_text,
122 - $search_tag_text,
123 - $search_tag_text
124 - );
125 - if ($current_user->has_cap('manage_options') || $wppm_current_user_capability == 'wppm_admin') {
126 - // ✅ Admin (safe)
127 - $where = " WHERE $wppm_pl_filter AND $search_sql";
128 - } else {
129 - // ✅ Non-admin (safe)
130 - $where = $wpdb->prepare(
131 - " WHERE $wppm_pl_filter
132 - AND $search_sql
133 - AND (
134 - FIND_IN_SET(%d, Project.users) > 0
135 - OR (
136 - proj_meta.meta_key = 'public_project'
137 - AND proj_meta.meta_value = 1
138 - )
139 - OR Project.created_by = %d
140 - )",
141 - $current_user->ID,
142 - $cu_id
143 - );
144 - }
145 -} else {
146 - if ($sort_by == 'project_name' || $sort_by == 'start_date' || $sort_by == 'end_date') {
147 - $query = "SELECT Project.*
148 - FROM {$wpdb->prefix}wppm_project AS Project
149 - LEFT JOIN {$wpdb->prefix}wppm_project_meta proj_meta ON Project.id = proj_meta.project_id";
150 - } else {
151 - $query = "SELECT Project.*
152 - FROM {$wpdb->prefix}wppm_project AS Project
153 - LEFT JOIN {$wpdb->prefix}wppm_project_statuses proj_statuses ON Project.status = proj_statuses.id
154 - LEFT JOIN {$wpdb->prefix}wppm_project_categories proj_categories ON Project.cat_id = proj_categories.id
155 - LEFT JOIN {$wpdb->prefix}wppm_project_meta proj_meta ON Project.id = proj_meta.project_id";
156 - }
157 - if ($current_user->has_cap('manage_options') || $wppm_current_user_capability == 'wppm_admin') {
158 - $where = " WHERE $wppm_pl_filter";
159 - } else {
160 - $where = $wpdb->prepare(
161 - " WHERE (
162 - $wppm_pl_filter
163 - AND (
164 - FIND_IN_SET(%d, Project.users) > 0
165 - OR (
166 - proj_meta.meta_key = 'public_project'
167 - AND proj_meta.meta_value = 1
168 - )
169 - )
170 - OR Project.created_by = %d
171 - )",
172 - $current_user->ID,
173 - $cu_id
174 - );
175 - }
101 +if(!empty($search_tag)){
102 + $search_tag_text = '%'.$wpdb->esc_like($search_tag).'%';
103 + $query = ("SELECT Project.*
104 + FROM {$wpdb->prefix}wppm_project AS Project
105 + Left join {$wpdb->prefix}wppm_project_statuses proj_statuses ON Project.status = proj_statuses.id
106 + Left join {$wpdb->prefix}wppm_project_categories proj_categories ON Project.cat_id = proj_categories.id
107 + Left join {$wpdb->base_prefix}users user ON (FIND_IN_SET(user.ID,Project.users)>0) AND (user.display_name LIKE '$search_tag_text')
108 + Left join {$wpdb->prefix}wppm_project_meta proj_meta ON Project.id = proj_meta.project_id
109 + ");
110 + if($current_user->has_cap('manage_options') || $wppm_current_user_capability == 'wppm_admin'){
111 + $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'))";
112 + }else{
113 + $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) OR Project.created_by='$cu_id')";
114 + }
115 +}else{
116 + if($sort_by=='project_name'|| $sort_by=='start_date' || $sort_by=='end_date'){
117 + $query = ( "SELECT Project.* FROM {$wpdb->prefix}wppm_project AS Project
118 + Left join {$wpdb->prefix}wppm_project_meta proj_meta ON Project.id = proj_meta.project_id
119 + ");
120 + } else{
121 + $query = ( "SELECT Project.* FROM {$wpdb->prefix}wppm_project AS Project
122 + Left join {$wpdb->prefix}wppm_project_statuses proj_statuses ON Project.status = proj_statuses.id
123 + Left join {$wpdb->prefix}wppm_project_categories proj_categories ON Project.cat_id = proj_categories.id
124 + Left join {$wpdb->prefix}wppm_project_meta proj_meta ON Project.id = proj_meta.project_id
125 + ");
126 + }
127 + if($current_user->has_cap('manage_options') || $wppm_current_user_capability == 'wppm_admin'){
128 + $where = " where $wppm_pl_filter";
129 + }else{
130 + $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)) OR Project.created_by='$cu_id')";
131 + }
176 132 }
177 -$archived_where = '';
178 -if ( isset( $is_archieved ) && $is_archieved === 1 ) {
179 - $archived_where = ' AND Project.is_archived = 1';
180 -} else {
181 - $archived_where = ' AND Project.is_archived = 0';
182 -}
183 -$where .= $archived_where;
184 133 $no_of_rows = ( "SELECT count(*) FROM ($query");
185 134 $no_of_rows = apply_filters('wppm_project_list_no_of_rows',$no_of_rows,$wppm_pl_filter,$search_tag);
186 135 $where = apply_filters('wppm_project_list_query_where',$where, $wppm_pl_filter,$search_tag);
136 +$sort_by = esc_sql($sort_by);
137 +$order = esc_sql($order);
187 138 $query .= $where." Group by Project.id ORDER BY $sort_by $order";
188 139 $no_of_rows .= $where." Group by Project.id) AS Project";
189 140 $totalrows = $wpdb->get_var( $no_of_rows );
190 141 $query = apply_filters('wppm_project_list_query',$query);
@@ -206,17 +157,13 @@
206 157 <div id="wppm_project_list_container" class="wppm_bootstrap">
207 158 <div class="row">
208 159 <div class="col-sm-12" id="wppm_heading_inline">
209 160 <span class="wppm-heading-inline">
210 - <?php echo !empty($is_archieved) ? esc_html__('Archived Projects', 'taskbuilder') : esc_html__('Projects', 'taskbuilder'); ?>
161 + <?php echo esc_html_e('Projects','taskbuilder');?>
211 162 </span>
212 - <?php if($current_user->has_cap('manage_options') || $wppm_current_user_capability == 'wppm_manager'|| $wppm_current_user_capability == 'wppm_admin'){ ?>
213 - <span class="wppm-add-new-btn btn-primary" id="wppm_add_new_project_btn" onclick="wppm_add_new_project()"><span style="margin-right:5px;"><img id="wppm_add_new_project_icon" src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/plus_icon.svg'); ?>" alt="plus_icon"></span><span><?php echo esc_html_e('Add New','taskbuilder');?></span></span>
214 - <?php } ?>
215 - <span class="wppm-add-new-btn btn-primary" id="wppm_project_list" onclick="wppm_get_project_list()" ><span style="margin-right:5px;"><img id ="wppm_project_list_icon" src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/list-symbol.svg'); ?>" alt="list-symbol"></span><span><?php echo esc_html_e('Project List','taskbuilder');?></span></span>
216 - <?php if($current_user->has_cap('manage_options') || $wppm_current_user_capability == 'wppm_manager'|| $wppm_current_user_capability == 'wppm_admin' ){ ?>
217 - <span class="wppm-add-new-btn btn-primary"" id="wppm_archieve_project_btn" title="Archive Project" onclick="wppm_archieve_project_list()"><img src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/archive_project.svg'); ?>" alt="archive"><span style="margin-left:5px;"><span><?php echo esc_html_e('Archive Project','taskbuilder');?></span></span>
218 - <?php } ?>
163 + <?php if($current_user->has_cap('manage_options') || $wppm_current_user_capability == 'wppm_manager'|| $wppm_current_user_capability == 'wppm_admin' ){ ?>
164 + <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">
165 + <?php } ?>
219 166 </div>
220 167 </div>
221 168 <div style="display:flex;justify-content:space-between;margin-top:20px;flex-wrap: wrap;">
222 169 <div style="display:flex;flex-wrap: wrap;">
@@ -246,14 +193,14 @@
246 193 </div>
247 194 </div>
248 195 <div class="wppm-filter-item">
249 196 <label for="wppm_project_filter"> <?php echo esc_html_e('Filter','taskbuilder');?></label>
250 - <select id="wppm_project_filter" name="wppm_project_filter" onchange="wppm_apply_project_filter(<?php echo $is_archieved ?>)">
197 + <select id="wppm_project_filter" name="wppm_project_filter" onchange="wppm_apply_project_filter()">
251 198 <option value="all"<?php echo ($filter_by == "all")? 'selected':""?>><?php echo esc_html_e('All','taskbuilder');?></option>
252 - <option style="<?php echo esc_attr($new_style) ?>" value="1" <?php echo ($filter_by == "1")? 'selected':""?>><?php echo esc_html($new_status_name);?></option>
253 - <option style="<?php echo esc_attr($inp_status_style) ?>" value="2" <?php echo ($filter_by == "2")? 'selected':""?>><?php echo esc_html($inp_status_name);?></option>
254 - <option style="<?php echo esc_attr($hold_status_style) ?>" value="3" <?php echo ($filter_by == "3")? 'selected':""?>><?php echo esc_html($hold_status_name);?></option>
255 - <option style="<?php echo esc_attr($complete_status_style) ?>" value="4" <?php echo ($filter_by == "4")? 'selected':""?>><?php echo esc_html($completed_status_name);?></option>
199 + <option style="<?php echo $new_style ?>" value="1" <?php echo ($filter_by == "1")? 'selected':""?>><?php echo esc_html_e($new_status_name,'taskbuilder');?></option>
200 + <option style="<?php echo $inp_status_style ?>" value="2" <?php echo ($filter_by == "2")? 'selected':""?>><?php echo esc_html_e($inp_status_name,'taskbuilder');?></option>
201 + <option style="<?php echo $hold_status_style ?>" value="3" <?php echo ($filter_by == "3")? 'selected':""?>><?php echo esc_html_e($hold_status_name,'taskbuilder');?></option>
202 + <option style="<?php echo $complete_status_style ?>" value="4" <?php echo ($filter_by == "4")? 'selected':""?>><?php echo esc_html_e($completed_status_name,'taskbuilder');?></option>
256 203 <option value="mine" <?php echo ($filter_by == "mine")? 'selected':""?>><?php echo esc_html_e('Mine','taskbuilder');?></option>
257 204 <option value="unassigned" <?php echo ($filter_by == "unassigned")? 'selected':""?>><?php echo esc_html_e('Unassigned','taskbuilder');?></option>
258 205 <option value="overdue" <?php echo ($filter_by == "overdue")? 'selected':""?>><?php echo esc_html_e('Overdue','taskbuilder');?></option>
259 206 </select>
@@ -259,9 +206,9 @@
259 206 </select>
260 207 </div>
261 208 <div class="wppm_display_submit">
262 209 <div class="wppm-filter-actions">
263 - <span class="wppm-link" onclick="wppm_pl_reset_filter(<?php echo $is_archieved ?>)"> <?php echo esc_html_e('Reset','taskbuilder');?></span>
210 + <span class="wppm-link" onclick="wppm_pl_reset_filter()"> <?php echo esc_html_e('Reset','taskbuilder');?></span>
264 211 </div>
265 212 </div>
266 213 </div>
267 214 </div>
@@ -298,9 +245,9 @@
298 245 <span id="wppm_project_category_th" style="color:<?php echo esc_attr($appearance_settings['list-header-text-color'])?>"><?php echo esc_html_e('Category','taskbuilder'); ?></span>
299 246 <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">
300 247 <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">
301 248 </th>
302 - <?php if($wppm_default_project_date==1 && $wppm_deafault_time_duration_project==0){ ?>
249 + <?php if($wppm_default_project_date==1){ ?>
303 250 <th class="wppm_table_header" style="background-color:<?php echo esc_attr($appearance_settings['list-header-background-color'])?>">
304 251 <span id="wppm_project_start_date_th" style="color:<?php echo esc_attr($appearance_settings['list-header-text-color'])?>"><?php echo esc_html_e('Start Date','taskbuilder'); ?></span>
305 252 <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">
306 253 <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">
@@ -309,16 +256,9 @@
309 256 <span id="wppm_project_end_date_th" style="color:<?php echo esc_attr($appearance_settings['list-header-text-color'])?>"><?php echo esc_html_e('End Date','taskbuilder'); ?></span>
310 257 <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">
311 258 <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">
312 259 </th>
313 - <?php }
314 - if( $wppm_deafault_time_duration_project==1){ ?>
315 - <th class="wppm_table_header" style="background-color:<?php echo esc_attr($appearance_settings['list-header-background-color'])?>">
316 - <span id="wppm_project_time_duration_th" style="color:<?php echo esc_attr($appearance_settings['list-header-text-color'])?>"><?php echo esc_html_e('Duration','taskbuilder'); ?></span>
317 - <img width="16" height="16" onclick="wppm_sort_up_project_list('TIMESTAMPDIFF(SECOND, start_date, end_date)','ASC')" style = "<?php echo ($sort_by == 'TIMESTAMPDIFF(SECOND, start_date, end_date)' && $order == 'DESC') ? 'display:inline': 'display:none;'?>" class="wppm_chevron_img" id="wppm_chevron_sort_up_project_time_duration_img" src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/sort_up_icon.svg'); ?>" alt="chevron_sort_up_icon">
318 - <img width="16" height="16" onclick="wppm_sort_up_project_list('TIMESTAMPDIFF(SECOND, start_date, end_date)','DESC')" style = "<?php echo ($sort_by == 'TIMESTAMPDIFF(SECOND, start_date, end_date)' && $order == 'ASC') ? 'display:inline': 'display:none;'?>" class="wppm_chevron_img" id="wppm_chevron_sort_down_project_time_duration_img" class="wppm_chevron_img" src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/sort_down_icon.svg'); ?>" alt="chevron_sort_down_icon">
319 - </th>
320 - <?php }?>
260 + <?php } ?>
321 261 <th class="wppm_table_header" style="background-color:<?php echo esc_attr($appearance_settings['list-header-background-color'])?>"><span style="color:<?php echo esc_attr($appearance_settings['list-header-text-color'])?>"><?php echo esc_html_e('No. of tasks','taskbuilder'); ?></span></th>
322 262 <th class="wppm_table_header" style="background-color:<?php echo esc_attr($appearance_settings['list-header-background-color'])?>"></th>
323 263 </tr>
324 264 <tbody>
@@ -328,15 +268,14 @@
328 268 if(!empty($wppm_fillter)){
329 269 foreach( $wppm_fillter as $project ){
330 270 $total_projects++;
331 271 $proejctdata = $wppmfunction->get_project($project->id);
332 - $wppm_proj_duration = $wppmfunction->wppm_get_duration($project->start_date,$project->end_date);
333 - $pstatus= absint($project->status);
272 + $pstatus= esc_sql($project->status);
334 273 $status = $wpdb->get_row( "SELECT * FROM {$wpdb->prefix}wppm_project_statuses where id='$pstatus'" );
335 274 $users = explode(",",$project->users);
336 - $pid= absint($project->id);
275 + $pid= esc_sql($project->id);
337 276 if(isset($project->cat_id)){
338 - $pcat_id = absint($project->cat_id);
277 + $pcat_id = esc_sql($project->cat_id);
339 278 $category = $wpdb->get_var( "SELECT name FROM {$wpdb->prefix}wppm_project_categories where id='$pcat_id'" );
340 279 }
341 280 if(isset($project->id)){
342 281 if($current_user->has_cap('manage_options') || $wppm_current_user_capability == 'wppm_admin'){
@@ -450,10 +389,10 @@
450 389 <label for="wppm_bulk_select_<?php echo esc_attr($project->id) ?>"></label>
451 390 </div>
452 391 </div>
453 392 </td>
454 - <td onmouseover="link=true;"><?php echo esc_html($project->project_name) ?></td>
455 - <td onmouseover="link=true;"><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($status->name) ?></span></td>
393 + <td onmouseover="link=true;"><?php echo esc_html_e($project->project_name,'taskbuilder') ?></td>
394 + <td onmouseover="link=true;"><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>
456 395 <td onmouseover="link=true;">
457 396 <?php
458 397 $i=0;
459 398 if(!empty(array_filter($users))){
@@ -462,9 +401,9 @@
462 401 if( $i <= 4 ){
463 402 $user_info = get_user_by('id', $user );
464 403 if(!empty($user_info)){
465 404 ?>
466 - <a href="#" title="<?php echo esc_html($user_info->display_name) ?>">
405 + <a href="#" title="<?php echo esc_html_e($user_info->display_name) ?>">
467 406 <?php echo get_avatar($user_info->ID, 25, "mysteryman");?>
468 407 </a> <?php
469 408 }
470 409 }
@@ -469,9 +408,9 @@
469 408 }
470 409 }
471 410 }
472 411 } else{
473 - esc_html_e('None','taskbuilder');
412 + _e('None','wp_projects');
474 413 }
475 414 if($i > 4){
476 415 ?>
477 416 <a href="#" class="wppm_avatar">
@@ -478,10 +417,11 @@
478 417 <span id="wppm_avatar" style="background-color:black;" class="avatar">+<?php echo esc_html($i-4) ?></span>
479 418 </a>
480 419 <?php } ?>
481 420 </td>
482 - <td onmouseover="link=true;" class="wppm_table_td"><?php echo isset($category) ? esc_html($category): "" ?></td>
483 - <?php if($wppm_default_project_date==1 && $wppm_deafault_time_duration_project==0){ ?>
421 + <td onmouseover="link=true;" class="wppm_table_td"><?php echo isset($category) ? esc_html_e($category,'taskbuilder'): "" ?></td>
422 + <?php if($wppm_default_project_date==1){
423 + ?>
484 424 <td onmouseover="link=true;" class="wppm_table_td"><?php echo isset($proj_start_date) ? esc_html($proj_start_date): "" ?></td>
485 425 <?php
486 426 if(!empty($proj_end_date) && $project->status!=4 && $proj_end_date < $current_date && ($proj_end_date != '0000-00-00 00:00:00' && $proj_end_date != '00-00-0000 00:00:00' && $proj_end_date != '00-00-0000' && $proj_end_date != '0000-00-00')) {
487 427 $style = "color:#FF0000";
@@ -489,17 +429,8 @@
489 429 $style = "color:#2C3E50";
490 430 } ?>
491 431 <td onmouseover="link=true;" class="wppm_table_td"><span style="<?php echo esc_attr($style); ?>"><?php echo isset($proj_end_date) ? esc_html($proj_end_date):"" ?></span></td>
492 432 <?php } ?>
493 - <?php if($wppm_deafault_time_duration_project==1){ ?>
494 - <?php
495 - if(!empty($proj_end_date) && $project->status!=4 && $proj_end_date < $current_date && ($proj_end_date != '0000-00-00 00:00:00' && $proj_end_date != '00-00-0000 00:00:00' && $proj_end_date != '00-00-0000' && $proj_end_date != '0000-00-00')) {
496 - $style = "color:#FF0000";
497 - } else {
498 - $style = "color:#2C3E50";
499 - } ?>
500 - <td onmouseover="link=true;" class="wppm_table_td"><span style="<?php echo esc_attr($style); ?>"><?php echo isset($wppm_proj_duration) ? esc_html($wppm_proj_duration):"" ?></span></td>
501 - <?php } ?>
502 433 <td onmouseover="link=true;" class="wppm_table_td"><?php echo isset($no_of_tasks) ? esc_html($no_of_tasks):"" ?></td>
503 434 <td onmouseover="link=true;" class="wppm_delete_action">
504 435 <?php $style = (($current_user->ID && $current_user->has_cap('manage_options')) || ($wppmfunction->has_project_permission('delete_project',esc_attr($project->id))) || $wppm_current_user_capability == 'wppm_admin' || ($proejctdata['created_by']==$current_user->ID && $wppm_current_user_capability == 'wppm_manager') )? "display:inline":"display:none"; ?>
505 436 <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>
@@ -534,14 +465,14 @@
534 465 </span>
535 466 <span
536 467 <?php echo esc_html($prev_class) ?>
537 468 style="<?php echo (isset($prev_class) && esc_attr($prev_class) == 'disabled') ? 'display:none;':'display:block;'?>">
538 - <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_attr($is_archieved)?>');"><?php echo esc_html_e('PREV','taskbuilder');?></a>
469 + <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>
539 470 </span>
540 471 <span
541 472 <?php echo esc_attr($next_class) ?>
542 473 style="<?php echo (isset($next_class) && $next_class == 'disabled')?'display:none;':'display:block;'?>cursor:pointer;">
543 - <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_attr($is_archieved)?>');"><?php echo esc_html_e('NEXT','taskbuilder');?></a>
474 + <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>
544 475 </span>
545 476 </div>
546 477 </div>
547 478 </div>
@@ -568,9 +499,9 @@
568 499 jQuery( document ).ready( function( jQuery ) {
569 500 jQuery("input[name='wppm_project_search_filter']").keypress(function(e) {
570 501 //Enter key
571 502 if (e.which == 13) {
572 - wppm_project_search_filter(<?php echo $is_archieved ?>);
503 + wppm_project_search_filter();
573 504 }
574 505 });
575 506 jQuery("#wppm_proj_name_th").hover(function(){
576 507 jQuery('#wppm_chevron_sort_up_project_name_img').show();
@@ -590,12 +521,8 @@
590 521 });
591 522 jQuery("#wppm_project_end_date_th").hover(function(){
592 523 jQuery('#wppm_chevron_sort_up_project_end_date_img').show();
593 524 jQuery('#wppm_chevron_sort_down_project_end_date_img').hide();
594 - });
595 - jQuery("#wppm_project_time_duration_th").hover(function(){
596 - jQuery('#wppm_chevron_sort_up_project_time_duration_img').show();
597 - jQuery('#wppm_chevron_sort_down_project_time_duration_img').hide();
598 525 });
599 526 jQuery(".wppm_delete_action").on("click", function(e){
600 527 e.preventDefault();
601 528 return false;