PluginProbe
Taskbuilder – Project Management & Task Management Tool With Kanban Board / 3.0.6
Taskbuilder – Project Management & Task Management Tool With Kanban Board v3.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 +86 -222 5.0.63.0.6 View file →
@@ -5,10 +5,8 @@
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 9 $wppm_current_user_capability = get_user_meta( $current_user->ID, 'wppm_capability', true );
12 10 $proj_per_page = 20;
13 11 $page_no = (isset($_POST['page_no'])) ? intval(sanitize_text_field($_POST['page_no'])): '0';
14 12 $search_tag = isset($_POST['project_search']) ? sanitize_text_field($_POST['project_search']) : '';
@@ -14,18 +12,10 @@
14 12 $search_tag = isset($_POST['project_search']) ? sanitize_text_field($_POST['project_search']) : '';
15 13 $order = isset($_POST['order']) ? sanitize_text_field($_POST['order']) :"ASC";
16 14 $sort_by = isset($_POST['sort_by']) ? sanitize_text_field($_POST['sort_by']):"project_name";
17 15 $filter_by = isset($_POST['wppm_project_filter']) ? sanitize_text_field($_POST['wppm_project_filter']) : "all";
18 -$current_date = wp_date('Y-m-d');
16 +$current_date = date('Y-m-d');
19 17 $wppm_pl_filter = "1=1";
20 -$wppm_hide_completed_status_proj = get_option('wppm_hide_completed_status_proj');
21 -$cu_id = esc_sql($current_user->ID);
22 -$wppm_hide_proj_statuses_from_frontend = get_option('wppm_hide_proj_statuses_from_frontend');
23 -if(!empty($wppm_hide_proj_statuses_from_frontend)){
24 - $wppm_hide_proj_statuses_from_frontend = explode(",",$wppm_hide_proj_statuses_from_frontend);
25 -} else {
26 - $wppm_hide_proj_statuses_from_frontend = '';
27 -}
28 18 $filters = array(
29 19 'sort_by' => $sort_by,
30 20 'order' => $order,
31 21 'search' => $search_tag,
@@ -51,53 +41,38 @@
51 41 'search'=>$search_tag,
52 42 'filter'=>$filter_by
53 43 );
54 44 setcookie('wppm_proj_filters',wp_json_encode( $filters ),time() + 3600);
55 -
56 -$allowed_sort_by = [
57 - 'project_name' => 'project_name',
58 - 'status' => 'proj_statuses.name',
59 - 'category' => 'proj_categories.name',
60 - 'start_date' => 'start_date',
61 - 'end_date' => 'end_date',
62 - 'TIMESTAMPDIFF(SECOND, start_date, end_date)'=> 'TIMESTAMPDIFF(SECOND, start_date, end_date)'
63 -];
64 -// Resolve sort_by safely
65 -$sort_key = isset($pl_filters_arr['sort_by'])
66 - ? sanitize_text_field($pl_filters_arr['sort_by'])
67 - : 'project_name';
68 -
69 -$sort_by = $allowed_sort_by[$sort_key] ?? 'project_name';
70 -$order = ( isset($pl_filters_arr['order']) && strtoupper($pl_filters_arr['order']) === 'ASC' )
71 - ? 'ASC'
72 - : 'DESC';
73 -if($filter_by=='all'){
74 - if($wppm_hide_completed_status_proj == 0){
75 - $wppm_pl_filter = "status!='4'";
76 - }
45 +if($pl_filters_arr['sort_by']=='status'){
46 + $sort_by = 'proj_statuses.name';
77 47 }
78 -if($filter_by=='4'){
48 +if($pl_filters_arr['sort_by']=='category'){
49 + $sort_by = 'proj_categories.name';
50 +}
51 +if($pl_filters_arr['sort_by']=='start_date'){
52 + $sort_by = 'start_date';
53 +}
54 +if($pl_filters_arr['sort_by']=='end_date'){
55 + $sort_by = 'end_date';
56 +}
57 +if($sort_by=='category'){
58 + $sort_by = 'proj_categories.name';
59 +}
60 +if($filter_by=='completed'){
79 61 $wppm_pl_filter = "status='4'";
80 62 }elseif($filter_by=='overdue'){
81 63 $wppm_pl_filter = "status!='4' AND (CAST(end_date AS DATE)) < '$current_date'";
82 64 }elseif($filter_by == 'unassigned'){
83 65 $wppm_pl_filter = "users=''";
84 -}elseif($filter_by == '1'){
66 +}elseif($filter_by == 'new'){
85 67 $wppm_pl_filter = "status='1'";
86 -}elseif($filter_by == '2'){
68 +}elseif($filter_by == 'inprogress'){
87 69 $wppm_pl_filter = "status='2'";
88 -}elseif($filter_by == '3'){
70 +}elseif($filter_by == 'hold'){
89 71 $wppm_pl_filter = "status='3'";
90 72 }elseif($filter_by == 'mine'){
91 73 $wppm_pl_filter = "(FIND_IN_SET('$current_user->ID',users)>0)";
92 74 }
93 -
94 -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))){
95 - foreach($wppm_hide_proj_statuses_from_frontend as $status){
96 - $wppm_pl_filter .= " AND status != '$status'";
97 - }
98 -}
99 -
100 75 $wppm_project_time = get_option('wppm_project_time');
101 76 $wppm_default_project_date = get_option('wppm_default_project_date');
102 77 $sort_by = apply_filters('wppm_project_list_sort_by_query',$sort_by);
103 78 $order = apply_filters('wppm_project_list_order_query',$order);
@@ -113,9 +88,9 @@
113 88 ");
114 89 if($current_user->has_cap('manage_options') || $wppm_current_user_capability == 'wppm_admin'){
115 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'))";
116 91 }else{
117 - $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')";
92 + $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='$current_user->ID')";
118 93 }
119 94 }else{
120 95 if($sort_by=='project_name'|| $sort_by=='start_date' || $sort_by=='end_date'){
121 96 $query = ( "SELECT Project.* FROM {$wpdb->prefix}wppm_project AS Project
@@ -130,9 +105,9 @@
130 105 }
131 106 if($current_user->has_cap('manage_options') || $wppm_current_user_capability == 'wppm_admin'){
132 107 $where = " where $wppm_pl_filter";
133 108 }else{
134 - $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')";
109 + $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='$current_user->ID')";
135 110 }
136 111 }
137 112 $no_of_rows = ( "SELECT count(*) FROM ($query");
138 113 $no_of_rows = apply_filters('wppm_project_list_no_of_rows',$no_of_rows,$wppm_pl_filter,$search_tag);
@@ -144,22 +119,14 @@
144 119 $limit_start=$page_no*$proj_per_page;
145 120 $limit="\n LIMIT ".$limit_start.",".$proj_per_page." ";
146 121 $query = $query.$limit;
147 122 $wppm_fillter = $wpdb->get_results($query);
148 -$new_status_name = $wpdb->get_var( "SELECT name FROM {$wpdb->prefix}wppm_project_statuses where id='".esc_sql(1)."'" );
149 -$inp_status_name = $wpdb->get_var( "SELECT name FROM {$wpdb->prefix}wppm_project_statuses where id='".esc_sql(2)."'" );
150 -$hold_status_name = $wpdb->get_var( "SELECT name FROM {$wpdb->prefix}wppm_project_statuses where id='".esc_sql(3)."'" );
151 -$completed_status_name = $wpdb->get_var( "SELECT name FROM {$wpdb->prefix}wppm_project_statuses where id='".esc_sql(4)."'" );
152 -$new_style = (!empty($new_status_name))? "display:inline" :"display:none;";
153 -$inp_status_style = (!empty($inp_status_name))? "display:inline" :"display:none;";
154 -$hold_status_style = (!empty($hold_status_name))? "display:inline" :"display:none;";
155 -$complete_status_style = (!empty($completed_status_name))? "display:inline" :"display:none;";
156 123 ?>
157 124 <form id="wppm_project_list_frm">
158 125 <div id="wppm-container">
159 126 <div id="wppm_project_list_container" class="wppm_bootstrap">
160 127 <div class="row">
161 - <div class="col-sm-12" id="wppm_heading_inline">
128 + <div class="col-sm-6" id="wppm_heading_inline">
162 129 <span class="wppm-heading-inline">
163 130 <?php echo esc_html_e('Projects','taskbuilder');?>
164 131 </span>
165 132 <?php if($current_user->has_cap('manage_options') || $wppm_current_user_capability == 'wppm_manager'|| $wppm_current_user_capability == 'wppm_admin' ){ ?>
@@ -165,60 +132,62 @@
165 132 <?php if($current_user->has_cap('manage_options') || $wppm_current_user_capability == 'wppm_manager'|| $wppm_current_user_capability == 'wppm_admin' ){ ?>
166 133 <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">
167 134 <?php } ?>
168 135 </div>
136 + <div id="wppm_project_and_task_search" class="col-sm-6">
137 + <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">
138 + <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) : "" ?>">
139 + </div>
169 140 </div>
170 - <div style="display:flex;justify-content:space-between;margin-top:20px;flex-wrap: wrap;">
171 - <div style="display:flex;flex-wrap: wrap;">
172 - <div id="wppm_project_filter_container">
173 - <div class="wppm-bulk-actions" style="margin-bottom: 10px;">
174 - <button
175 - id="wppm-bulk-actions-btn"
176 - class="wppm-button small secondary"
177 - type="button"
178 - style="display:none;padding:14px;font: 13px Helvetica Neue, Arial, Helvetica, sans-serif !important"
179 - data-popover="wppm-bulk-actions">
180 - <?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">
181 - </button>
182 - <div id="wppm-bulk-actions" class="gpopover wppm-popover-menu wppm-proj-bulk-actions">
183 - <div class="wppm-popover-menu-item" onclick="wppm_bulk_change_status('<?php echo esc_attr( wp_create_nonce( 'wppm_bulk_change_status' ) ); ?>');">
184 - <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>
141 + <div class="row">
142 + <div class="col-sm-6" id="wppm_project_filter_container">
143 + <div class="wppm-filter-item">
144 + <label for="wppm_project_filter"> <?php echo esc_html_e('Filter','taskbuilder');?></label>
145 + <select id="wppm_project_filter" name="wppm_project_filter" onchange="wppm_apply_project_filter()">
146 + <option value="all"<?php echo ($filter_by == "all")? 'selected':""?>><?php echo esc_html_e('All','taskbuilder');?></option>
147 + <option value="new" <?php echo ($filter_by == "new")? 'selected':""?>><?php echo esc_html_e('New','taskbuilder');?></option>
148 + <option value="inprogress" <?php echo ($filter_by == "inprogress")? 'selected':""?>><?php echo esc_html_e('In Progress','taskbuilder');?></option>
149 + <option value="hold" <?php echo ($filter_by == "hold")? 'selected':""?>><?php echo esc_html_e('Hold','taskbuilder');?></option>
150 + <option value="completed" <?php echo ($filter_by == "completed")? 'selected':""?>><?php echo esc_html_e('Completed','taskbuilder');?></option>
151 + <option value="mine" <?php echo ($filter_by == "mine")? 'selected':""?>><?php echo esc_html_e('Mine','taskbuilder');?></option>
152 + <option value="unassigned" <?php echo ($filter_by == "unassigned")? 'selected':""?>><?php echo esc_html_e('Unassigned','taskbuilder');?></option>
153 + <option value="overdue" <?php echo ($filter_by == "overdue")? 'selected':""?>><?php echo esc_html_e('Overdue','taskbuilder');?></option>
154 + </select>
155 + </div>
156 + <div class="wppm_display_submit">
157 + <div class="wppm-filter-actions">
158 + <span class="wppm-link" onclick="wppm_pl_reset_filter()"> <?php echo esc_html_e('Reset','taskbuilder');?></span>
159 + </div>
160 + </div>
161 + </div>
162 + </div>
163 + <div class="row">
164 + <div class="col-sm-12">
165 + <div class="wppm-bulk-actions">
166 + <button
167 + id="wppm-bulk-actions-btn"
168 + class="wppm-button small secondary"
169 + type="button"
170 + style="display:none"
171 + data-popover="wppm-bulk-actions">
172 + <?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">
173 + </button>
174 + <div id="wppm-bulk-actions" class="gpopover wppm-popover-menu wppm-proj-bulk-actions">
175 + <div class="wppm-popover-menu-item" onclick="wppm_bulk_change_status('<?php echo esc_attr( wp_create_nonce( 'wppm_bulk_change_status' ) ); ?>');">
176 + <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>
177 + </div>
178 + <div class="wppm-popover-menu-item" onclick="wppm_bulk_change_category('<?php echo esc_attr( wp_create_nonce( 'wppm_bulk_change_category' ) ); ?>');">
179 + <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>
180 + </div>
181 + <div class="wppm-popover-menu-item" onclick="wppm_bulk_assign_users('<?php echo esc_attr( wp_create_nonce( 'wppm_bulk_assign_users' ) ); ?>');">
182 + <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>
183 + </div>
184 + <div class="wppm-popover-menu-item" onclick="wppm_bulk_delete_project('<?php echo esc_attr( wp_create_nonce( 'wppm_bulk_assign_users' ) ); ?>');">
185 + <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>
186 + </div>
185 187 </div>
186 - <div class="wppm-popover-menu-item" onclick="wppm_bulk_change_category('<?php echo esc_attr( wp_create_nonce( 'wppm_bulk_change_category' ) ); ?>');">
187 - <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>
188 - </div>
189 - <div class="wppm-popover-menu-item" onclick="wppm_bulk_assign_users('<?php echo esc_attr( wp_create_nonce( 'wppm_bulk_assign_users' ) ); ?>');">
190 - <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>
191 - </div>
192 - <div class="wppm-popover-menu-item" onclick="wppm_bulk_delete_project('<?php echo esc_attr( wp_create_nonce( 'wppm_bulk_assign_users' ) ); ?>');">
193 - <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>
194 - </div>
195 - </div>
196 188 </div>
197 - <div class="wppm-filter-item">
198 - <label for="wppm_project_filter"> <?php echo esc_html_e('Filter','taskbuilder');?></label>
199 - <select id="wppm_project_filter" name="wppm_project_filter" onchange="wppm_apply_project_filter()">
200 - <option value="all"<?php echo ($filter_by == "all")? 'selected':""?>><?php echo esc_html_e('All','taskbuilder');?></option>
201 - <option style="<?php echo esc_attr($new_style) ?>" value="1" <?php echo ($filter_by == "1")? 'selected':""?>><?php echo esc_html($new_status_name);?></option>
202 - <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>
203 - <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>
204 - <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>
205 - <option value="mine" <?php echo ($filter_by == "mine")? 'selected':""?>><?php echo esc_html_e('Mine','taskbuilder');?></option>
206 - <option value="unassigned" <?php echo ($filter_by == "unassigned")? 'selected':""?>><?php echo esc_html_e('Unassigned','taskbuilder');?></option>
207 - <option value="overdue" <?php echo ($filter_by == "overdue")? 'selected':""?>><?php echo esc_html_e('Overdue','taskbuilder');?></option>
208 - </select>
209 - </div>
210 - <div class="wppm_display_submit">
211 - <div class="wppm-filter-actions">
212 - <span class="wppm-link" onclick="wppm_pl_reset_filter()"> <?php echo esc_html_e('Reset','taskbuilder');?></span>
213 - </div>
214 - </div>
215 189 </div>
216 - </div>
217 - <div id="wppm_project_and_task_search" style="display:flex;justify-content:flex-end;">
218 - <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">
219 - <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) : "" ?>">
220 - </div>
221 190 </div>
222 191 <script>
223 192 jQuery('#wppm-more-actions-btn, #wppm-bulk-actions-btn').gpopover({width: 200});
224 193 </script>
@@ -224,9 +193,9 @@
224 193 </script>
225 194 <div class="table-responsive">
226 195 <table id="wppm_project_table" class="wppm_table table">
227 196 <tr>
228 - <th class="wppm_table_header" style="background-color:<?php echo esc_attr($appearance_settings['list-header-background-color'])?>" onchange="wppm_bulk_select_change()">
197 + <th style="width: 45px;" onchange="wppm_bulk_select_change()">
229 198 <div class="checkbox-container">
230 199 <input id="wppm_bulk_select_option" class="wppm-bulk-selector" type="checkbox" onchange="wppm_bulk_select_change();"/>
231 200 <label for="wppm_bulk_select_option"></label>
232 201 </div>
@@ -247,9 +216,9 @@
247 216 <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>
248 217 <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">
249 218 <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">
250 219 </th>
251 - <?php if($wppm_default_project_date==1 && $wppm_deafault_time_duration_project==0){ ?>
220 + <?php if($wppm_default_project_date==1){ ?>
252 221 <th class="wppm_table_header" style="background-color:<?php echo esc_attr($appearance_settings['list-header-background-color'])?>">
253 222 <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>
254 223 <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">
255 224 <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">
@@ -258,16 +227,9 @@
258 227 <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>
259 228 <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">
260 229 <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">
261 230 </th>
262 - <?php }
263 - if( $wppm_deafault_time_duration_project==1){ ?>
264 - <th class="wppm_table_header" style="background-color:<?php echo esc_attr($appearance_settings['list-header-background-color'])?>">
265 - <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>
266 - <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">
267 - <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">
268 - </th>
269 - <?php }?>
231 + <?php } ?>
270 232 <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>
271 233 <th class="wppm_table_header" style="background-color:<?php echo esc_attr($appearance_settings['list-header-background-color'])?>"></th>
272 234 </tr>
273 235 <tbody>
@@ -277,9 +239,8 @@
277 239 if(!empty($wppm_fillter)){
278 240 foreach( $wppm_fillter as $project ){
279 241 $total_projects++;
280 242 $proejctdata = $wppmfunction->get_project($project->id);
281 - $wppm_proj_duration = $wppmfunction->wppm_get_duration($project->start_date,$project->end_date);
282 243 $pstatus= esc_sql($project->status);
283 244 $status = $wpdb->get_row( "SELECT * FROM {$wpdb->prefix}wppm_project_statuses where id='$pstatus'" );
284 245 $users = explode(",",$project->users);
285 246 $pid= esc_sql($project->id);
@@ -296,100 +257,21 @@
296 257 FROM {$wpdb->prefix}wppm_task AS Task
297 258 Left join {$wpdb->prefix}wppm_project proj ON Task.project = proj.id
298 259 Left join {$wpdb->prefix}wppm_project_users proj_users ON Task.project = proj_users.proj_id
299 260 Left join {$wpdb->prefix}wppm_project_meta proj_meta ON proj.id = proj_meta.project_id
300 - 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");
261 + where Task.project = '$pid' 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) OR ( Task.project = proj.id AND proj.created_by='$current_user->ID')) Group by Task.id ) AS Task");
301 262 $no_of_tasks = $wpdb->get_var($query);
302 263 }
303 264 $no_of_tasks = apply_filters('wppm_no_of_task_proj_list_query',$no_of_tasks,$project->id);
304 265 }
305 266 if($wppm_project_time == 1){
306 - $psDate = new DateTime($project->start_date);
307 - $peDate = new DateTime($project->end_date);
308 - if($project->start_date=='0000-00-00 00:00:00'){
309 - if($wppm_date_setting=='Y-m-d H:i:s'){
310 - $proj_start_date = '0000-00-00 00:00:00';
311 - }elseif($wppm_date_setting=='d-m-Y H:i:s'){
312 - $proj_start_date = '00-00-0000 00:00:00';
313 - }elseif($wppm_date_setting=='m-d-Y H:i:s'){
314 - $proj_start_date = '00-00-0000 00:00:00';
315 - }else{
316 - $proj_start_date = '0000-00-00 00:00:00';
317 - }
318 - }if($project->end_date=='0000-00-00 00:00:00'){
319 - if($wppm_date_setting=='Y-m-d H:i:s'){
320 - $proj_end_date = '0000-00-00 00:00:00';
321 - }elseif($wppm_date_setting=='d-m-Y H:i:s'){
322 - $proj_end_date = '00-00-0000 00:00:00';
323 - }elseif($wppm_date_setting=='m-d-Y H:i:s'){
324 - $proj_end_date = '00-00-0000 00:00:00';
325 - }else{
326 - $proj_end_date = '0000-00-00 00:00:00';
327 - }
328 - }
329 - if($project->start_date!='0000-00-00 00:00:00'){
330 - if(!empty($wppm_date_setting)){
331 - $proj_start_date = $psDate->format($wppm_date_setting);
332 - }else{
333 - $proj_start_date = isset($project->start_date)? $project->start_date:"";
334 - }
335 - }
336 - if($project->end_date!='0000-00-00 00:00:00'){
337 - if(!empty($wppm_date_setting)){
338 - $proj_end_date = $peDate->format($wppm_date_setting);
339 - }else{
340 - $proj_end_date = isset($project->end_date) ? $project->end_date: "" ;
341 - }
342 - }
267 + $proj_start_date = $project->start_date;
268 + $proj_end_date = $project->end_date;
343 269 } elseif($wppm_project_time == 0){
344 270 $psDate = new DateTime($project->start_date);
345 271 $peDate = new DateTime($project->end_date);
346 272 $proj_start_date = $psDate->format('Y-m-d');
347 273 $proj_end_date = $peDate->format('Y-m-d');
348 - if($project->start_date=='0000-00-00 00:00:00'){
349 - if($wppm_date_setting=='Y-m-d H:i:s'){
350 - $proj_start_date = '0000-00-00';
351 - }elseif($wppm_date_setting=='d-m-Y H:i:s'){
352 - $proj_start_date = '00-00-0000';
353 - }elseif($wppm_date_setting=='m-d-Y H:i:s'){
354 - $proj_start_date = '00-00-0000';
355 - }else{
356 - $proj_start_date = '0000-00-00';
357 - }
358 - }
359 - if($project->end_date=='0000-00-00 00:00:00'){
360 - if($wppm_date_setting=='Y-m-d H:i:s'){
361 - $proj_end_date = '0000-00-00';
362 - }elseif($wppm_date_setting=='d-m-Y H:i:s'){
363 - $proj_end_date = '00-00-0000';
364 - }elseif($wppm_date_setting=='m-d-Y H:i:s'){
365 - $proj_end_date = '00-00-0000';
366 - }else{
367 - $proj_end_date = '0000-00-00';
368 - }
369 -
370 - }if($project->start_date!='0000-00-00 00:00:00'){
371 - if($wppm_date_setting=='Y-m-d H:i:s'){
372 - $proj_start_date = $psDate->format('Y-m-d');
373 - }elseif($wppm_date_setting=='d-m-Y H:i:s'){
374 - $proj_start_date = $psDate->format('d-m-Y');
375 - }elseif($wppm_date_setting=='m-d-Y H:i:s'){
376 - $proj_start_date = $psDate->format('m-d-Y');
377 - }else{
378 - $proj_start_date = $psDate->format('Y-m-d');
379 - }
380 - }
381 - if($project->end_date!='0000-00-00 00:00:00'){
382 - if($wppm_date_setting=='Y-m-d H:i:s'){
383 - $proj_end_date = $peDate->format('Y-m-d');
384 - }elseif($wppm_date_setting=='d-m-Y H:i:s'){
385 - $proj_end_date = $peDate->format('d-m-Y');
386 - }elseif($wppm_date_setting=='m-d-Y H:i:s'){
387 - $proj_end_date = $peDate->format('m-d-Y');
388 - }else{
389 - $proj_end_date = $peDate->format('Y-m-d');
390 - }
391 - }
392 274 }
393 275 ?>
394 276 <tr onclick="if(link)wppm_open_project(<?php echo esc_attr($project->id) ?>)">
395 277 <td class="bulk-selector" onmouseover="link=false;" onmouseout="link=true;">
@@ -399,10 +281,10 @@
399 281 <label for="wppm_bulk_select_<?php echo esc_attr($project->id) ?>"></label>
400 282 </div>
401 283 </div>
402 284 </td>
403 - <td onmouseover="link=true;"><?php echo esc_html($project->project_name) ?></td>
404 - <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>
285 + <td onmouseover="link=true;"><?php echo esc_html_e($project->project_name,'taskbuilder') ?></td>
286 + <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>
405 287 <td onmouseover="link=true;">
406 288 <?php
407 289 $i=0;
408 290 if(!empty(array_filter($users))){
@@ -411,9 +293,9 @@
411 293 if( $i <= 4 ){
412 294 $user_info = get_user_by('id', $user );
413 295 if(!empty($user_info)){
414 296 ?>
415 - <a href="#" title="<?php echo esc_html($user_info->display_name) ?>">
297 + <a href="#" title="<?php echo esc_html_e($user_info->display_name) ?>">
416 298 <?php echo get_avatar($user_info->ID, 25, "mysteryman");?>
417 299 </a> <?php
418 300 }
419 301 }
@@ -418,9 +300,9 @@
418 300 }
419 301 }
420 302 }
421 303 } else{
422 - esc_html_e('None','taskbuilder');
304 + _e('None','wp_projects');
423 305 }
424 306 if($i > 4){
425 307 ?>
426 308 <a href="#" class="wppm_avatar">
@@ -427,28 +309,14 @@
427 309 <span id="wppm_avatar" style="background-color:black;" class="avatar">+<?php echo esc_html($i-4) ?></span>
428 310 </a>
429 311 <?php } ?>
430 312 </td>
431 - <td onmouseover="link=true;" class="wppm_table_td"><?php echo isset($category) ? esc_html($category): "" ?></td>
432 - <?php if($wppm_default_project_date==1 && $wppm_deafault_time_duration_project==0){ ?>
313 + <td onmouseover="link=true;" class="wppm_table_td"><?php echo isset($category) ? esc_html_e($category,'taskbuilder'): "" ?></td>
314 + <?php if($wppm_default_project_date==1){ ?>
433 315 <td onmouseover="link=true;" class="wppm_table_td"><?php echo isset($proj_start_date) ? esc_html($proj_start_date): "" ?></td>
434 - <?php
435 - 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')) {
436 - $style = "color:#FF0000";
437 - } else {
438 - $style = "color:#2C3E50";
439 - } ?>
440 - <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>
316 + <?php $style = ($project->status!=4 && $proj_end_date < $current_date) ? "color:#FF0000":"color:#2C3E50"; ?>
317 + <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):"" ?></td></span>
441 318 <?php } ?>
442 - <?php if($wppm_deafault_time_duration_project==1){ ?>
443 - <?php
444 - 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')) {
445 - $style = "color:#FF0000";
446 - } else {
447 - $style = "color:#2C3E50";
448 - } ?>
449 - <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>
450 - <?php } ?>
451 319 <td onmouseover="link=true;" class="wppm_table_td"><?php echo isset($no_of_tasks) ? esc_html($no_of_tasks):"" ?></td>
452 320 <td onmouseover="link=true;" class="wppm_delete_action">
453 321 <?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"; ?>
454 322 <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>
@@ -539,12 +407,8 @@
539 407 });
540 408 jQuery("#wppm_project_end_date_th").hover(function(){
541 409 jQuery('#wppm_chevron_sort_up_project_end_date_img').show();
542 410 jQuery('#wppm_chevron_sort_down_project_end_date_img').hide();
543 - });
544 - jQuery("#wppm_project_time_duration_th").hover(function(){
545 - jQuery('#wppm_chevron_sort_up_project_time_duration_img').show();
546 - jQuery('#wppm_chevron_sort_down_project_time_duration_img').hide();
547 411 });
548 412 jQuery(".wppm_delete_action").on("click", function(e){
549 413 e.preventDefault();
550 414 return false;