PluginProbe
Taskbuilder – Project Management & Task Management Tool With Kanban Board / 3.0.0
Taskbuilder – Project Management & Task Management Tool With Kanban Board v3.0.0
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 +206 -460 6.0.43.0.0 View file →
@@ -5,29 +5,16 @@
5 5 global $wpdb,$wppmfunction,$current_user;
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 -$wppm_date_setting = get_option('wppm_date_setting');
10 -$wppm_deafault_time_duration_project = get_option('wppm_display_time_duration_project');
11 -$wppm_current_user_capability = get_user_meta( $current_user->ID, 'wppm_capability', true );
12 9 $proj_per_page = 20;
13 10 $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 11 $search_tag = isset($_POST['project_search']) ? sanitize_text_field($_POST['project_search']) : '';
16 12 $order = isset($_POST['order']) ? sanitize_text_field($_POST['order']) :"ASC";
17 13 $sort_by = isset($_POST['sort_by']) ? sanitize_text_field($_POST['sort_by']):"project_name";
18 14 $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');
15 +$current_date = date('Y-m-d');
21 16 $wppm_pl_filter = "1=1";
22 -$wppm_hide_completed_status_proj = get_option('wppm_hide_completed_status_proj');
23 -$cu_id = esc_sql($current_user->ID);
24 -$wppm_hide_proj_statuses_from_frontend = get_option('wppm_hide_proj_statuses_from_frontend');
25 -if(!empty($wppm_hide_proj_statuses_from_frontend)){
26 - $wppm_hide_proj_statuses_from_frontend = explode(",",$wppm_hide_proj_statuses_from_frontend);
27 -} else {
28 - $wppm_hide_proj_statuses_from_frontend = '';
29 -}
30 17 $filters = array(
31 18 'sort_by' => $sort_by,
32 19 'order' => $order,
33 20 'search' => $search_tag,
@@ -53,135 +40,75 @@
53 40 'search'=>$search_tag,
54 41 'filter'=>$filter_by
55 42 );
56 43 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';
75 -if($filter_by=='all'){
76 - if($wppm_hide_completed_status_proj == 0){
77 - $wppm_pl_filter = "status!='4'";
78 - }
44 +if($pl_filters_arr['sort_by']=='status'){
45 + $sort_by = 'proj_statuses.name';
79 46 }
80 -if($filter_by=='4'){
47 +if($pl_filters_arr['sort_by']=='category'){
48 + $sort_by = 'proj_categories.name';
49 +}
50 +if($pl_filters_arr['sort_by']=='start_date'){
51 + $sort_by = 'start_date';
52 +}
53 +if($pl_filters_arr['sort_by']=='end_date'){
54 + $sort_by = 'end_date';
55 +}
56 +if($sort_by=='category'){
57 + $sort_by = 'proj_categories.name';
58 +}
59 +if($filter_by=='completed'){
81 60 $wppm_pl_filter = "status='4'";
82 61 }elseif($filter_by=='overdue'){
83 62 $wppm_pl_filter = "status!='4' AND (CAST(end_date AS DATE)) < '$current_date'";
84 63 }elseif($filter_by == 'unassigned'){
85 64 $wppm_pl_filter = "users=''";
86 -}elseif($filter_by == '1'){
65 +}elseif($filter_by == 'new'){
87 66 $wppm_pl_filter = "status='1'";
88 -}elseif($filter_by == '2'){
67 +}elseif($filter_by == 'inprogress'){
89 68 $wppm_pl_filter = "status='2'";
90 -}elseif($filter_by == '3'){
69 +}elseif($filter_by == 'hold'){
91 70 $wppm_pl_filter = "status='3'";
92 71 }elseif($filter_by == 'mine'){
93 72 $wppm_pl_filter = "(FIND_IN_SET('$current_user->ID',users)>0)";
94 73 }
95 -
96 -if(!empty($wppm_hide_proj_statuses_from_frontend) && is_array($wppm_hide_proj_statuses_from_frontend) && ((isset($_POST['is_frontend'])) && (sanitize_text_field($_POST['is_frontend'])==1))){
97 - foreach($wppm_hide_proj_statuses_from_frontend as $status){
98 - $wppm_pl_filter .= " AND status != '$status'";
99 - }
100 -}
101 74 $wppm_project_time = get_option('wppm_project_time');
102 75 $wppm_default_project_date = get_option('wppm_default_project_date');
103 76 $sort_by = apply_filters('wppm_project_list_sort_by_query',$sort_by);
104 77 $order = apply_filters('wppm_project_list_order_query',$order);
105 -$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 - }
78 +$search_tag_text = '%'.$search_tag.'%';
79 +if(!empty($search_tag)){
80 + $search_tag_text = '%'.$search_tag.'%';
81 + $query = ("SELECT Project.*
82 + FROM {$wpdb->prefix}wppm_project AS Project
83 + Left join {$wpdb->prefix}wppm_project_statuses proj_statuses ON Project.status = proj_statuses.id
84 + Left join {$wpdb->prefix}wppm_project_categories proj_categories ON Project.cat_id = proj_categories.id
85 + Left join {$wpdb->base_prefix}users user ON (FIND_IN_SET(user.ID,Project.users)>0) AND (user.display_name LIKE '$search_tag_text')
86 + Left join {$wpdb->prefix}wppm_project_meta proj_meta ON Project.id = proj_meta.project_id
87 + ");
88 + if($current_user->has_cap('manage_options')){
89 + $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'))";
90 + }else{
91 + $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))";
92 + }
93 +}else{
94 + if($sort_by=='project_name'|| $sort_by=='start_date' || $sort_by=='end_date'){
95 + $query = ( "SELECT Project.* FROM {$wpdb->prefix}wppm_project AS Project
96 + Left join {$wpdb->prefix}wppm_project_meta proj_meta ON Project.id = proj_meta.project_id
97 + ");
98 + } else{
99 + $query = ( "SELECT Project.* FROM {$wpdb->prefix}wppm_project AS Project
100 + Left join {$wpdb->prefix}wppm_project_statuses proj_statuses ON Project.status = proj_statuses.id
101 + Left join {$wpdb->prefix}wppm_project_categories proj_categories ON Project.cat_id = proj_categories.id
102 + Left join {$wpdb->prefix}wppm_project_meta proj_meta ON Project.id = proj_meta.project_id
103 + ");
104 + }
105 + if($current_user->has_cap('manage_options')){
106 + $where = " where $wppm_pl_filter";
107 + }else{
108 + $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)))";
109 + }
176 110 }
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 111 $no_of_rows = ( "SELECT count(*) FROM ($query");
185 112 $no_of_rows = apply_filters('wppm_project_list_no_of_rows',$no_of_rows,$wppm_pl_filter,$search_tag);
186 113 $where = apply_filters('wppm_project_list_query_where',$where, $wppm_pl_filter,$search_tag);
187 114 $query .= $where." Group by Project.id ORDER BY $sort_by $order";
@@ -191,138 +118,83 @@
191 118 $limit_start=$page_no*$proj_per_page;
192 119 $limit="\n LIMIT ".$limit_start.",".$proj_per_page." ";
193 120 $query = $query.$limit;
194 121 $wppm_fillter = $wpdb->get_results($query);
195 -$new_status_name = $wpdb->get_var( "SELECT name FROM {$wpdb->prefix}wppm_project_statuses where id='".esc_sql(1)."'" );
196 -$inp_status_name = $wpdb->get_var( "SELECT name FROM {$wpdb->prefix}wppm_project_statuses where id='".esc_sql(2)."'" );
197 -$hold_status_name = $wpdb->get_var( "SELECT name FROM {$wpdb->prefix}wppm_project_statuses where id='".esc_sql(3)."'" );
198 -$completed_status_name = $wpdb->get_var( "SELECT name FROM {$wpdb->prefix}wppm_project_statuses where id='".esc_sql(4)."'" );
199 -$new_style = (!empty($new_status_name))? "display:inline" :"display:none;";
200 -$inp_status_style = (!empty($inp_status_name))? "display:inline" :"display:none;";
201 -$hold_status_style = (!empty($hold_status_name))? "display:inline" :"display:none;";
202 -$complete_status_style = (!empty($completed_status_name))? "display:inline" :"display:none;";
203 122 ?>
204 123 <form id="wppm_project_list_frm">
205 - <div id="wppm-container">
206 - <div id="wppm_project_list_container" class="wppm_bootstrap">
207 - <div class="row">
208 - <div class="col-sm-12" id="wppm_heading_inline">
209 - <span class="wppm-heading-inline">
210 - <?php echo !empty($is_archieved) ? esc_html__('Archived Projects', 'taskbuilder') : esc_html__('Projects', 'taskbuilder'); ?>
211 - </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 } ?>
124 + <div id="wppm_project_list_container" class="wppm_bootstrap">
125 + <div class="row">
126 + <div class="col-sm-6" id="wppm_heading_inline">
127 + <span class="wppm-heading-inline">
128 + <?php echo esc_html_e('Projects','taskbuilder');?>
129 + </span>
130 + <?php if($current_user->has_cap('manage_options')){ ?>
131 + <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">
132 + <?php } ?>
133 + </div>
134 + <div id="wppm_project_and_task_search" class="col-sm-6">
135 + <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">
136 + <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) : "" ?>">
137 + </div>
138 + </div>
139 + <div class="row">
140 + <div class="col-sm-6" id="wppm_project_filter_container">
141 + <div class="wppm-filter-item">
142 + <label for="wppm_project_filter"> <?php echo esc_html_e('Filter','taskbuilder');?></label>
143 + <select id="wppm_project_filter" name="wppm_project_filter" onchange="wppm_apply_project_filter()">
144 + <option value="all"<?php echo ($filter_by == "all")? 'selected':""?>><?php echo esc_html_e('All','taskbuilder');?></option>
145 + <option value="new" <?php echo ($filter_by == "new")? 'selected':""?>><?php echo esc_html_e('New','taskbuilder');?></option>
146 + <option value="inprogress" <?php echo ($filter_by == "inprogress")? 'selected':""?>><?php echo esc_html_e('In Progress','taskbuilder');?></option>
147 + <option value="hold" <?php echo ($filter_by == "hold")? 'selected':""?>><?php echo esc_html_e('Hold','taskbuilder');?></option>
148 + <option value="completed" <?php echo ($filter_by == "completed")? 'selected':""?>><?php echo esc_html_e('Completed','taskbuilder');?></option>
149 + <option value="mine" <?php echo ($filter_by == "mine")? 'selected':""?>><?php echo esc_html_e('Mine','taskbuilder');?></option>
150 + <option value="unassigned" <?php echo ($filter_by == "unassigned")? 'selected':""?>><?php echo esc_html_e('Unassigned','taskbuilder');?></option>
151 + <option value="overdue" <?php echo ($filter_by == "overdue")? 'selected':""?>><?php echo esc_html_e('Overdue','taskbuilder');?></option>
152 + </select>
219 153 </div>
220 - </div>
221 - <div style="display:flex;justify-content:space-between;margin-top:20px;flex-wrap: wrap;">
222 - <div style="display:flex;flex-wrap: wrap;">
223 - <div id="wppm_project_filter_container">
224 - <div class="wppm-bulk-actions" style="margin-bottom: 10px;">
225 - <button
226 - id="wppm-bulk-actions-btn"
227 - class="wppm-button small secondary"
228 - type="button"
229 - style="display:none;padding:14px;font: 13px Helvetica Neue, Arial, Helvetica, sans-serif !important"
230 - data-popover="wppm-bulk-actions">
231 - <?php esc_attr_e( 'Bulk Actions ', 'taskbuilder' ); ?><img style="color:#313042" src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/wppm_chevron_down_icon.svg'); ?>" alt="chevron_down">
232 - </button>
233 - <div id="wppm-bulk-actions" class="gpopover wppm-popover-menu wppm-proj-bulk-actions">
234 - <div class="wppm-popover-menu-item" onclick="wppm_bulk_change_status('<?php echo esc_attr( wp_create_nonce( 'wppm_bulk_change_status' ) ); ?>');">
235 - <span><img style="margin-right:5px;" src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/gps-navigation.svg'); ?>" alt="status"><?php echo esc_html_e('Change Status','taskbuilder'); ?></span>
236 - </div>
237 - <div class="wppm-popover-menu-item" onclick="wppm_bulk_change_category('<?php echo esc_attr( wp_create_nonce( 'wppm_bulk_change_category' ) ); ?>');">
238 - <span><img style="margin-right:5px;" src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/tags.svg'); ?>" alt="category"><?php echo esc_html_e('Change Category','taskbuilder'); ?></span>
239 - </div>
240 - <div class="wppm-popover-menu-item" onclick="wppm_bulk_assign_users('<?php echo esc_attr( wp_create_nonce( 'wppm_bulk_assign_users' ) ); ?>');">
241 - <span><img style="margin-right:5px;" src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/users.svg'); ?>" alt="users"><?php echo esc_html_e('Assign Co-workers','taskbuilder'); ?></span>
242 - </div>
243 - <div class="wppm-popover-menu-item" onclick="wppm_bulk_delete_project('<?php echo esc_attr( wp_create_nonce( 'wppm_bulk_assign_users' ) ); ?>');">
244 - <span><img style="margin-right:5px;" src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/trash-alt-solid.svg'); ?>" alt="delete"><?php echo esc_html_e('Delete','taskbuilder'); ?></span>
245 - </div>
246 - </div>
247 - </div>
248 - <div class="wppm-filter-item">
249 - <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 ?>)">
251 - <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>
256 - <option value="mine" <?php echo ($filter_by == "mine")? 'selected':""?>><?php echo esc_html_e('Mine','taskbuilder');?></option>
257 - <option value="unassigned" <?php echo ($filter_by == "unassigned")? 'selected':""?>><?php echo esc_html_e('Unassigned','taskbuilder');?></option>
258 - <option value="overdue" <?php echo ($filter_by == "overdue")? 'selected':""?>><?php echo esc_html_e('Overdue','taskbuilder');?></option>
259 - </select>
260 - </div>
261 - <div class="wppm_display_submit">
262 - <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>
264 - </div>
265 - </div>
154 + <div class="wppm_display_submit">
155 + <div class="wppm-filter-actions">
156 + <span class="wppm-link" onclick="wppm_pl_reset_filter()"> <?php echo esc_html_e('Reset','taskbuilder');?></span>
266 157 </div>
267 158 </div>
268 - <div id="wppm_project_and_task_search" style="display:flex;justify-content:flex-end;">
269 - <img width="25px" id="wppm_project_search_filter_img" style="position: relative;top: 10px;left: 30px;" height="15px" src="<?php echo esc_url( WPPM_PLUGIN_URL . 'asset/images/search.svg'); ?>" alt="search">
270 - <input type="search" id="wppm_project_search_filter" style="margin-right:10px;" 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) : "" ?>">
271 - </div>
272 159 </div>
273 - <script>
274 - jQuery('#wppm-more-actions-btn, #wppm-bulk-actions-btn').gpopover({width: 200});
275 - </script>
276 - <div class="table-responsive">
277 - <table id="wppm_project_table" class="wppm_table table">
278 - <tr>
279 - <th class="wppm_table_header" style="background-color:<?php echo esc_attr($appearance_settings['list-header-background-color'])?>" onchange="wppm_bulk_select_change()">
280 - <div class="checkbox-container">
281 - <input id="wppm_bulk_select_option" class="wppm-bulk-selector" type="checkbox" onchange="wppm_bulk_select_change();"/>
282 - <label for="wppm_bulk_select_option"></label>
283 - </div>
284 - </th>
285 - <th class="wppm_table_header" style="background-color:<?php echo esc_attr($appearance_settings['list-header-background-color'])?>">
286 - <span id="wppm_proj_name_th" style="color:<?php echo esc_attr($appearance_settings['list-header-text-color'])?>"><?php echo esc_html_e('Project','taskbuilder'); ?></span>
287 - <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">
288 - <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">
289 - </th>
290 - <th class="wppm_table_header" style="background-color:<?php echo esc_attr($appearance_settings['list-header-background-color'])?>">
291 - <span id="wppm_project_status_th" style="color:<?php echo esc_attr($appearance_settings['list-header-text-color'])?>"><?php echo esc_html_e('Status','taskbuilder'); ?></span>
292 - <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">
293 - <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">
294 - </th>
295 - <th class="wppm_table_header" style="background-color:<?php echo esc_attr($appearance_settings['list-header-background-color'])?>">
296 - <span id="wppm_proj_list_users_th" style="color:<?php echo esc_attr($appearance_settings['list-header-text-color'])?>"><?php echo esc_html_e('Users','taskbuilder'); ?></span></th>
297 - <th class="wppm_table_header" style="background-color:<?php echo esc_attr($appearance_settings['list-header-background-color'])?>">
298 - <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 - <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 - <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 - </th>
302 - <?php if($wppm_default_project_date==1 && $wppm_deafault_time_duration_project==0){ ?>
303 - <th class="wppm_table_header" style="background-color:<?php echo esc_attr($appearance_settings['list-header-background-color'])?>">
304 - <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 - <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 - <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">
307 - </th>
308 - <th class="wppm_table_header" style="background-color:<?php echo esc_attr($appearance_settings['list-header-background-color'])?>">
309 - <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 - <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 - <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 - </th>
313 - <?php }
314 - if( $wppm_deafault_time_duration_project==1){ ?>
160 + </div>
161 + <div class="table-responsive">
162 + <table id="wppm_project_table" class="wppm_table table">
163 + <tr>
164 + <th class="wppm_table_header" style="background-color:<?php echo esc_attr($appearance_settings['list-header-background-color'])?>">
165 + <span id="wppm_proj_name_th" style="color:<?php echo esc_attr($appearance_settings['list-header-text-color'])?>"><?php echo esc_html_e('Project','taskbuilder'); ?></span>
166 + <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">
167 + <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">
168 + </th>
169 + <th class="wppm_table_header" style="background-color:<?php echo esc_attr($appearance_settings['list-header-background-color'])?>">
170 + <span id="wppm_project_status_th" style="color:<?php echo esc_attr($appearance_settings['list-header-text-color'])?>"><?php echo esc_html_e('Status','taskbuilder'); ?></span>
171 + <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">
172 + <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">
173 + </th>
174 + <th class="wppm_table_header" style="background-color:<?php echo esc_attr($appearance_settings['list-header-background-color'])?>">
175 + <span id="wppm_proj_list_users_th" style="color:<?php echo esc_attr($appearance_settings['list-header-text-color'])?>"><?php echo esc_html_e('Users','taskbuilder'); ?></span></th>
176 + <th class="wppm_table_header" style="background-color:<?php echo esc_attr($appearance_settings['list-header-background-color'])?>">
177 + <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>
178 + <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">
179 + <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">
180 + </th>
181 + <?php if($wppm_default_project_date==1){ ?>
315 182 <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 }?>
321 - <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 - <th class="wppm_table_header" style="background-color:<?php echo esc_attr($appearance_settings['list-header-background-color'])?>"></th>
323 - </tr>
324 - <tbody>
183 + <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>
184 + <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">
185 + <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">
186 + </th>
187 + <th class="wppm_table_header" style="background-color:<?php echo esc_attr($appearance_settings['list-header-background-color'])?>">
188 + <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>
189 + <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">
190 + <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">
191 + </th>
192 + <?php } ?>
193 + <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>
194 + <th class="wppm_table_header" style="background-color:<?php echo esc_attr($appearance_settings['list-header-background-color'])?>"></th>
195 + </tr>
196 + <tbody>
325 197 <?php
326 198 $total_projects=0;
327 199 $users = array();
328 200 if(!empty($wppm_fillter)){
@@ -327,21 +199,16 @@
327 199 $users = array();
328 200 if(!empty($wppm_fillter)){
329 201 foreach( $wppm_fillter as $project ){
330 202 $total_projects++;
331 - $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);
334 - $status = $wpdb->get_row( "SELECT * FROM {$wpdb->prefix}wppm_project_statuses where id='$pstatus'" );
203 + $status = $wpdb->get_row( "SELECT * FROM {$wpdb->prefix}wppm_project_statuses where id=$project->status" );
335 204 $users = explode(",",$project->users);
336 - $pid= absint($project->id);
337 205 if(isset($project->cat_id)){
338 - $pcat_id = absint($project->cat_id);
339 - $category = $wpdb->get_var( "SELECT name FROM {$wpdb->prefix}wppm_project_categories where id='$pcat_id'" );
206 + $category = $wpdb->get_var( "SELECT name FROM {$wpdb->prefix}wppm_project_categories where id=$project->cat_id" );
340 207 }
341 208 if(isset($project->id)){
342 - if($current_user->has_cap('manage_options') || $wppm_current_user_capability == 'wppm_admin'){
343 - $no_of_tasks = $wpdb->get_var("SELECT count(*) FROM {$wpdb->prefix}wppm_task WHERE project='$pid' ");
209 + if($current_user->has_cap('manage_options')){
210 + $no_of_tasks = $wpdb->get_var("SELECT count(*) FROM {$wpdb->prefix}wppm_task WHERE project=$project->id ");
344 211 }else{
345 212 $query =("SELECT count(*) FROM
346 213 ( SELECT Task.*
347 214 FROM {$wpdb->prefix}wppm_task AS Task
@@ -347,204 +214,101 @@
347 214 FROM {$wpdb->prefix}wppm_task AS Task
348 215 Left join {$wpdb->prefix}wppm_project proj ON Task.project = proj.id
349 216 Left join {$wpdb->prefix}wppm_project_users proj_users ON Task.project = proj_users.proj_id
350 217 Left join {$wpdb->prefix}wppm_project_meta proj_meta ON proj.id = proj_meta.project_id
351 - where Task.project = '$pid' AND ((FIND_IN_SET('$current_user->ID',Task.users)>0) OR (Task.created_by= '$cu_id') OR (proj_users.user_id = '$cu_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) OR ( Task.project = proj.id AND proj.created_by='$cu_id')) Group by Task.id ) AS Task");
218 + 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");
352 219 $no_of_tasks = $wpdb->get_var($query);
353 - }
354 - $no_of_tasks = apply_filters('wppm_no_of_task_proj_list_query',$no_of_tasks,$project->id);
355 220 }
356 - if($wppm_project_time == 1){
221 + }
222 + if($wppm_project_time == 1){
223 + $proj_start_date = $project->start_date;
224 + $proj_end_date = $project->end_date;
225 + } elseif($wppm_project_time == 0){
357 226 $psDate = new DateTime($project->start_date);
358 227 $peDate = new DateTime($project->end_date);
359 - if($project->start_date=='0000-00-00 00:00:00'){
360 - if($wppm_date_setting=='Y-m-d H:i:s'){
361 - $proj_start_date = '0000-00-00 00:00:00';
362 - }elseif($wppm_date_setting=='d-m-Y H:i:s'){
363 - $proj_start_date = '00-00-0000 00:00:00';
364 - }elseif($wppm_date_setting=='m-d-Y H:i:s'){
365 - $proj_start_date = '00-00-0000 00:00:00';
366 - }else{
367 - $proj_start_date = '0000-00-00 00:00:00';
368 - }
369 - }if($project->end_date=='0000-00-00 00:00:00'){
370 - if($wppm_date_setting=='Y-m-d H:i:s'){
371 - $proj_end_date = '0000-00-00 00:00:00';
372 - }elseif($wppm_date_setting=='d-m-Y H:i:s'){
373 - $proj_end_date = '00-00-0000 00:00:00';
374 - }elseif($wppm_date_setting=='m-d-Y H:i:s'){
375 - $proj_end_date = '00-00-0000 00:00:00';
376 - }else{
377 - $proj_end_date = '0000-00-00 00:00:00';
378 - }
379 - }
380 - if($project->start_date!='0000-00-00 00:00:00'){
381 - if(!empty($wppm_date_setting)){
382 - $proj_start_date = $psDate->format($wppm_date_setting);
383 - }else{
384 - $proj_start_date = isset($project->start_date)? $project->start_date:"";
385 - }
386 - }
387 - if($project->end_date!='0000-00-00 00:00:00'){
388 - if(!empty($wppm_date_setting)){
389 - $proj_end_date = $peDate->format($wppm_date_setting);
390 - }else{
391 - $proj_end_date = isset($project->end_date) ? $project->end_date: "" ;
392 - }
393 - }
394 - } elseif($wppm_project_time == 0){
395 - $psDate = new DateTime($project->start_date);
396 - $peDate = new DateTime($project->end_date);
397 - $proj_start_date = $psDate->format('Y-m-d');
398 - $proj_end_date = $peDate->format('Y-m-d');
399 - if($project->start_date=='0000-00-00 00:00:00'){
400 - if($wppm_date_setting=='Y-m-d H:i:s'){
401 - $proj_start_date = '0000-00-00';
402 - }elseif($wppm_date_setting=='d-m-Y H:i:s'){
403 - $proj_start_date = '00-00-0000';
404 - }elseif($wppm_date_setting=='m-d-Y H:i:s'){
405 - $proj_start_date = '00-00-0000';
406 - }else{
407 - $proj_start_date = '0000-00-00';
408 - }
409 - }
410 - if($project->end_date=='0000-00-00 00:00:00'){
411 - if($wppm_date_setting=='Y-m-d H:i:s'){
412 - $proj_end_date = '0000-00-00';
413 - }elseif($wppm_date_setting=='d-m-Y H:i:s'){
414 - $proj_end_date = '00-00-0000';
415 - }elseif($wppm_date_setting=='m-d-Y H:i:s'){
416 - $proj_end_date = '00-00-0000';
417 - }else{
418 - $proj_end_date = '0000-00-00';
419 - }
420 -
421 - }if($project->start_date!='0000-00-00 00:00:00'){
422 - if($wppm_date_setting=='Y-m-d H:i:s'){
423 - $proj_start_date = $psDate->format('Y-m-d');
424 - }elseif($wppm_date_setting=='d-m-Y H:i:s'){
425 - $proj_start_date = $psDate->format('d-m-Y');
426 - }elseif($wppm_date_setting=='m-d-Y H:i:s'){
427 - $proj_start_date = $psDate->format('m-d-Y');
428 - }else{
429 - $proj_start_date = $psDate->format('Y-m-d');
430 - }
431 - }
432 - if($project->end_date!='0000-00-00 00:00:00'){
433 - if($wppm_date_setting=='Y-m-d H:i:s'){
434 - $proj_end_date = $peDate->format('Y-m-d');
435 - }elseif($wppm_date_setting=='d-m-Y H:i:s'){
436 - $proj_end_date = $peDate->format('d-m-Y');
437 - }elseif($wppm_date_setting=='m-d-Y H:i:s'){
438 - $proj_end_date = $peDate->format('m-d-Y');
439 - }else{
440 - $proj_end_date = $peDate->format('Y-m-d');
228 + $proj_start_date = $psDate->format('Y-m-d');
229 + $proj_end_date = $peDate->format('Y-m-d');
230 + }
231 + ?>
232 + <tr onclick="wppm_open_project(<?php echo esc_attr($project->id) ?>)">
233 + <td><?php echo esc_html_e($project->project_name,'taskbuilder') ?></td>
234 + <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>
235 + <td>
236 + <?php
237 + $i=0;
238 + if(!empty(array_filter($users))){
239 + foreach($users as $user){
240 + $i++;
241 + if( $i <= 4 ){
242 + $user_info = get_user_by('id', $user );
243 + if(!empty($user_info)){
244 + ?>
245 + <a href="#" title="<?php echo esc_html_e($user_info->display_name) ?>">
246 + <?php echo get_avatar($user_info->ID, 25, "mysteryman");?>
247 + </a> <?php
441 248 }
442 - }
443 - }
444 - ?>
445 - <tr onclick="if(link)wppm_open_project(<?php echo esc_attr($project->id) ?>)">
446 - <td class="bulk-selector" onmouseover="link=false;" onmouseout="link=true;">
447 - <div class="wppm-pl-item-selector">
448 - <div class="checkbox-container">
449 - <input id="wppm_bulk_select_<?php echo esc_attr($project->id) ?>" class="wppm-bulk-select" type="checkbox" onchange="wppm_bulk_item_select_change();" value="<?php echo esc_attr( $project->id ); ?>"/>
450 - <label for="wppm_bulk_select_<?php echo esc_attr($project->id) ?>"></label>
451 - </div>
452 - </div>
453 - </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>
456 - <td onmouseover="link=true;">
457 - <?php
458 - $i=0;
459 - if(!empty(array_filter($users))){
460 - foreach($users as $user){
461 - $i++;
462 - if( $i <= 4 ){
463 - $user_info = get_user_by('id', $user );
464 - if(!empty($user_info)){
465 - ?>
466 - <a href="#" title="<?php echo esc_html($user_info->display_name) ?>">
467 - <?php echo get_avatar($user_info->ID, 25, "mysteryman");?>
468 - </a> <?php
469 - }
470 - }
471 249 }
472 - } else{
473 - esc_html_e('None','taskbuilder');
474 250 }
475 - if($i > 4){
476 - ?>
477 - <a href="#" class="wppm_avatar">
478 - <span id="wppm_avatar" style="background-color:black;" class="avatar">+<?php echo esc_html($i-4) ?></span>
479 - </a>
480 - <?php } ?>
481 - </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){ ?>
484 - <td onmouseover="link=true;" class="wppm_table_td"><?php echo isset($proj_start_date) ? esc_html($proj_start_date): "" ?></td>
485 - <?php
486 - 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 - $style = "color:#FF0000";
488 - } else {
489 - $style = "color:#2C3E50";
490 - } ?>
491 - <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>
251 + } else{
252 + _e('None','wp_projects');
253 + }
254 + if($i > 4){
255 + ?>
256 + <a href="#" class="wppm_avatar">
257 + <span id="wppm_avatar" style="background-color:black;" class="avatar">+<?php echo esc_html($i-4) ?></span>
258 + </a>
492 259 <?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 - <td onmouseover="link=true;" class="wppm_table_td"><?php echo isset($no_of_tasks) ? esc_html($no_of_tasks):"" ?></td>
503 - <td onmouseover="link=true;" class="wppm_delete_action">
504 - <?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 - <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>
506 - <?php ?>
507 - </td>
508 - </tr>
509 - <?php
510 - }
260 + </td>
261 + <td class="wppm_table_td"><?php echo isset($category) ? esc_html_e($category,'taskbuilder'): "" ?></td>
262 + <?php if($wppm_default_project_date==1){ ?>
263 + <td class="wppm_table_td"><?php echo isset($proj_start_date) ? esc_html($proj_start_date): "" ?></td>
264 + <?php $style = ($project->status!=4 && $proj_end_date < $current_date) ? "color:#FF0000":"color:#2C3E50"; ?>
265 + <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>
266 + <?php } ?>
267 + <td class="wppm_table_td"><?php echo isset($no_of_tasks) ? esc_html($no_of_tasks):"" ?></td>
268 + <td class="wppm_delete_action">
269 + <?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"; ?>
270 + <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>
271 + <?php ?>
272 + </td>
273 + </tr>
274 + <?php
511 275 }
512 - ?>
513 - </tbody>
514 - </table>
515 - <?php
516 - $total_pages=ceil($totalrows/$proj_per_page);
517 - $current_page=$page_no+1;
518 - $prev_page_no=$current_page-1;
519 - $prev_class=($prev_page_no==0)?'disabled':'';
520 - $next_page_no=($total_pages==$current_page)? $current_page-1:$current_page;
521 - $next_class=($total_pages==$current_page)?'disabled':'';
522 - ?>
523 - <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>
524 - <hr style="<?php echo esc_attr($total_pages==0)? '':'display: none;';?>">
276 + }
277 + ?>
278 + </tbody>
279 + </table>
280 + <?php
281 + $total_pages=ceil($totalrows/$proj_per_page);
282 + $current_page=$page_no+1;
283 + $prev_page_no=$current_page-1;
284 + $prev_class=($prev_page_no==0)?'disabled':'';
285 + $next_page_no=($total_pages==$current_page)? $current_page-1:$current_page;
286 + $next_class=($total_pages==$current_page)?'disabled':'';
287 + ?>
288 + <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>
289 + <hr style="<?php echo esc_attr($total_pages==0)? '':'display: none;';?>">
290 + </div>
291 + <div class="row wppm_proj_pagination_container">
292 + <div class="col-sm-4">
293 + <?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')?>
525 294 </div>
526 - <div class="row wppm_proj_pagination_container">
527 - <div class="col-sm-4">
528 - <?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')?>
295 + <div class="col-sm-4">
296 + <div class="wppm_proj_pagination" style="<?php echo esc_attr($total_pages==0)? "display:none;":"display:flex;"?>">
297 + <span class="wppm-pagination-txt">
298 + <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>
299 + </span>
300 + <span
301 + <?php echo esc_html($prev_class) ?>
302 + style="<?php echo (isset($prev_class) && esc_attr($prev_class) == 'disabled') ? 'display:none;':'display:block;'?>">
303 + <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>
304 + </span>
305 + <span
306 + <?php echo esc_attr($next_class) ?>
307 + style="<?php echo (isset($next_class) && $next_class == 'disabled')?'display:none;':'display:block;'?>cursor:pointer;">
308 + <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>
309 + </span>
529 310 </div>
530 - <div class="col-sm-4">
531 - <div class="wppm_proj_pagination" style="<?php echo esc_attr($total_pages==0)? "display:none;":"display:flex;"?>">
532 - <span class="wppm-pagination-txt">
533 - <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>
534 - </span>
535 - <span
536 - <?php echo esc_html($prev_class) ?>
537 - 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>
539 - </span>
540 - <span
541 - <?php echo esc_attr($next_class) ?>
542 - 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>
544 - </span>
545 - </div>
546 - </div>
547 311 </div>
548 312 </div>
549 313 </div>
550 314 </form>
@@ -568,9 +332,9 @@
568 332 jQuery( document ).ready( function( jQuery ) {
569 333 jQuery("input[name='wppm_project_search_filter']").keypress(function(e) {
570 334 //Enter key
571 335 if (e.which == 13) {
572 - wppm_project_search_filter(<?php echo $is_archieved ?>);
336 + wppm_project_search_filter();
573 337 }
574 338 });
575 339 jQuery("#wppm_proj_name_th").hover(function(){
576 340 jQuery('#wppm_chevron_sort_up_project_name_img').show();
@@ -591,12 +355,8 @@
591 355 jQuery("#wppm_project_end_date_th").hover(function(){
592 356 jQuery('#wppm_chevron_sort_up_project_end_date_img').show();
593 357 jQuery('#wppm_chevron_sort_down_project_end_date_img').hide();
594 358 });
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 - });
599 359 jQuery(".wppm_delete_action").on("click", function(e){
600 360 e.preventDefault();
601 361 return false;
602 362 });
@@ -614,22 +374,8 @@
614 374 }
615 375 });
616 376 });
617 377 });
618 - /**
619 - * Bulk item selector change
620 - */
621 -function wppm_bulk_item_select_change() {
622 - jQuery("#wppm-bulk-actions-btn").show();
623 - var items = jQuery(".wppm-bulk-select:checked");
624 - var checked = items.length === 0 ? false : true;
625 - if(checked){
626 - jQuery(".wppm-bulk-selector").prop("checked", checked);
627 - }else{
628 - jQuery("#wppm-bulk-actions-btn").hide();
629 - jQuery(".wppm-bulk-selector").prop("checked", false);
630 - }
631 -}
632 378 </script>
633 379 <?php
634 380 add_action('wp_footer', 'wppm_page_inline_script', 999999999999999999);
635 381 do_action('wppm_after_shortcode_loaded');